/*
** Automatically generated from `hlds_pred.m'
** by the Mercury compiler,
** version rotd-2026-06-08
** configured for x86_64-pc-linux-gnu.
** Do not edit.
**
** The autoconfigured grade settings governing
** the generation of this C file were
**
** TAG_BITS=2
** UNBOXED_FLOAT=no
** UNBOXED_INT64S=no
** PREGENERATED_DIST=yes
** HIGHLEVEL_CODE=yes
**
** END_OF_C_GRADE_INFO
*/


// :- module hlds.hlds_pred.
// :- implementation.

/*
INIT mercury__hlds__hlds_pred__init
ENDINIT
*/

#include "hlds.hlds_pred.mih"


#include "analysis.mih"
#include "array.mih"
#include "assoc_list.mih"
#include "backend_libs.mih"
#include "bag.mih"
#include "bimap.mih"
#include "bitmap.mih"
#include "bool.mih"
#include "builtin.mih"
#include "char.mih"
#include "check_hlds.mih"
#include "construct.mih"
#include "cord.mih"
#include "counter.mih"
#include "deconstruct.mih"
#include "digraph.mih"
#include "edit_seq.mih"
#include "enum.mih"
#include "getopt.mih"
#include "hlds.mih"
#include "int.mih"
#include "integer.mih"
#include "io.mih"
#include "libs.mih"
#include "list.mih"
#include "map.mih"
#include "maybe.mih"
#include "mdbcomp.mih"
#include "mode_robdd.mih"
#include "multi_map.mih"
#include "one_or_more.mih"
#include "one_or_more_map.mih"
#include "ops.mih"
#include "pair.mih"
#include "parse_tree.mih"
#include "pretty_printer.mih"
#include "private_builtin.mih"
#include "queue.mih"
#include "recompilation.mih"
#include "require.mih"
#include "robdd.mih"
#include "set.mih"
#include "set_ordlist.mih"
#include "set_tree234.mih"
#include "sparse_bitset.mih"
#include "stack.mih"
#include "stream.mih"
#include "string.mih"
#include "term.mih"
#include "term_context.mih"
#include "time.mih"
#include "transform_hlds.mih"
#include "tree234.mih"
#include "type_desc.mih"
#include "unit.mih"
#include "univ.mih"
#include "varset.mih"
#include "analysis.framework.mih"
#include "analysis.operations.mih"
#include "backend_libs.builtin_ops.mih"
#include "check_hlds.mode_constraint_robdd.mih"
#include "check_hlds.mode_errors.mih"
#include "check_hlds.mode_info.mih"
#include "check_hlds.proc_requests.mih"
#include "hlds.const_struct.mih"
#include "hlds.goal_form.mih"
#include "hlds.goal_mode.mih"
#include "hlds.goal_util.mih"
#include "hlds.goal_vars.mih"
#include "hlds.hlds_args.mih"
#include "hlds.hlds_class.mih"
#include "hlds.hlds_clauses.mih"
#include "hlds.hlds_cons.mih"
#include "hlds.hlds_data.mih"
#include "hlds.hlds_dependency_graph.mih"
#include "hlds.hlds_goal.mih"
#include "hlds.hlds_inst_mode.mih"
#include "hlds.hlds_llds.mih"
#include "hlds.hlds_markers.mih"
#include "hlds.hlds_module.mih"
#include "hlds.hlds_promise.mih"
#include "hlds.hlds_rtti.mih"
#include "hlds.inst_graph.mih"
#include "hlds.instmap.mih"
#include "hlds.pred_name.mih"
#include "hlds.pred_table.mih"
#include "hlds.special_pred.mih"
#include "hlds.status.mih"
#include "hlds.type_util.mih"
#include "libs.compiler_util.mih"
#include "libs.dependency_graph.mih"
#include "libs.file_util.mih"
#include "libs.globals.mih"
#include "libs.lp_rational.mih"
#include "libs.op_mode.mih"
#include "libs.optdb_help.mih"
#include "libs.optimization_options.mih"
#include "libs.option_categories.mih"
#include "libs.options.mih"
#include "libs.polyhedron.mih"
#include "libs.rat.mih"
#include "libs.trace_params.mih"
#include "mdbcomp.builtin_modules.mih"
#include "mdbcomp.feedback.mih"
#include "mdbcomp.goal_path.mih"
#include "mdbcomp.prim_data.mih"
#include "mdbcomp.program_representation.mih"
#include "mdbcomp.rtti_access.mih"
#include "mdbcomp.sym_name.mih"
#include "mode_robdd.tfeirn.mih"
#include "parse_tree.d_file_deps.mih"
#include "parse_tree.error_spec.mih"
#include "parse_tree.file_names.mih"
#include "parse_tree.find_module.mih"
#include "parse_tree.module_qual.mih"
#include "parse_tree.prog_data.mih"
#include "parse_tree.prog_data_event.mih"
#include "parse_tree.prog_data_foreign.mih"
#include "parse_tree.prog_data_pragma.mih"
#include "parse_tree.prog_data_used_modules.mih"
#include "parse_tree.prog_foreign.mih"
#include "parse_tree.prog_item.mih"
#include "parse_tree.prog_parse_tree.mih"
#include "parse_tree.prog_rename.mih"
#include "parse_tree.prog_type.mih"
#include "parse_tree.prog_type_scan.mih"
#include "parse_tree.prog_util.mih"
#include "parse_tree.set_of_var.mih"
#include "parse_tree.var_db.mih"
#include "parse_tree.var_table.mih"
#include "parse_tree.vartypes.mih"
#include "recompilation.record_uses.mih"
#include "string.format.mih"
#include "string.parse_util.mih"
#include "transform_hlds.term_constr_data.mih"
#include "transform_hlds.term_constr_errors.mih"
#include "transform_hlds.term_constr_main_types.mih"
#include "transform_hlds.term_errors.mih"
#include "transform_hlds.term_norm.mih"
#include "transform_hlds.term_util.mih"
#include "mdbcomp.feedback.feedback_info.mih"
#include "parse_tree.module_qual.mq_info.mih"




static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_arg_info_0_0[2];

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_arg_info_0_0[2];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_arg_info_0_0;

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_arg_info_0_0[1];

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_arg_info_0[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_arg_info_0[1];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_arg_info_0[1];

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_arg_loc_0_0[2];

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_arg_loc_0_0[2];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_arg_loc_0_0;

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_arg_loc_0_0[1];

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_arg_loc_0[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_arg_loc_0[1];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_arg_loc_0[1];

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0;

static const MR_FA_TypeInfo_Struct2 hlds__hlds_pred__tree234__ti_tree234_2term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0bool__type_ctor_info_bool_0;

static const MR_FA_TypeInfo_Struct2 hlds__hlds_pred__pair__ti_pair_2tree234__ti_tree234_2term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0bool__type_ctor_info_bool_0tree234__ti_tree234_2term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0bool__type_ctor_info_bool_0;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_call_id_0_0[1];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_call_id_0_0;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_call_id_0_1[2];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_call_id_0_1;

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_call_id_0_0[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_call_id_0_1[1];

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_call_id_0[2];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_call_id_0[2];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_call_id_0[2];

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_call_site_static_data_0_0[5];

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_call_site_static_data_0_0[5];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_call_site_static_data_0_0;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_call_site_static_data_0_1[3];

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_call_site_static_data_0_1[3];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_call_site_static_data_0_1;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_call_site_static_data_0_2[3];

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_call_site_static_data_0_2[3];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_call_site_static_data_0_2;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_call_site_static_data_0_3[3];

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_call_site_static_data_0_3[3];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_call_site_static_data_0_3;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_call_site_static_data_0_4[3];

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_call_site_static_data_0_4[3];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_call_site_static_data_0_4;

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_call_site_static_data_0_0[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_call_site_static_data_0_1[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_call_site_static_data_0_2[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_call_site_static_data_0_3[2];

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_call_site_static_data_0[4];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_call_site_static_data_0[5];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_call_site_static_data_0[5];

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_can_process_0_0;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_can_process_0_1;

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_can_process_0[2];

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_can_process_0[2];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_can_process_0[2];

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_cur_user_decl_info_0_0[3];

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_cur_user_decl_info_0_0[3];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_cur_user_decl_info_0_0;

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_cur_user_decl_info_0_0[1];

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_cur_user_decl_info_0[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_cur_user_decl_info_0[1];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_cur_user_decl_info_0[1];

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_decl_section_0_0;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_decl_section_0_1;

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_decl_section_0[2];

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_decl_section_0[2];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_decl_section_0[2];

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__list__ti_list_1term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_deep_original_body_0_0[5];

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_deep_original_body_0_0[5];

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_deep_original_body_0_0[5];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_deep_original_body_0_0;

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_deep_original_body_0_0[1];

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_deep_original_body_0[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_deep_original_body_0[1];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_deep_original_body_0[1];

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_deep_recursion_info_0;

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_hlds_deep_layout_0;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_deep_profile_proc_info_0_0[3];

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_deep_profile_proc_info_0_0[3];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_deep_profile_proc_info_0_0;

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_deep_profile_proc_info_0_0[1];

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_deep_profile_proc_info_0[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_deep_profile_proc_info_0[1];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_deep_profile_proc_info_0[1];

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_deep_profile_role_0_0[1];

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_deep_profile_role_0_0[1];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_deep_profile_role_0_0;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_deep_profile_role_0_1[1];

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_deep_profile_role_0_1[1];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_deep_profile_role_0_1;

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_deep_profile_role_0_0[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_deep_profile_role_0_1[1];

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_deep_profile_role_0[2];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_deep_profile_role_0[2];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_deep_profile_role_0[2];

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__list__ti_list_1hlds__hlds_pred__type_ctor_info_visible_scc_data_0;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_deep_recursion_info_0_0[2];

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_deep_recursion_info_0_0[2];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_deep_recursion_info_0_0;

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_deep_recursion_info_0_0[1];

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_deep_recursion_info_0[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_deep_recursion_info_0[1];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_deep_recursion_info_0[1];

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_detism_decl_0_0;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_detism_decl_0_1;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_detism_decl_0_2;

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_detism_decl_0[3];

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_detism_decl_0[3];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_detism_decl_0[3];

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__term__ti_var_1parse_tree__prog_data__type_ctor_info_tvar_type_0;

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__list__ti_list_1term__ti_var_1parse_tree__prog_data__type_ctor_info_tvar_type_0;

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__one_or_more__ti_one_or_more_1parse_tree__prog_data_pragma__type_ctor_info_format_string_values_0;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_format_call_info_0_0[2];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_format_call_info_0_0;

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_format_call_info_0_0[1];

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_format_call_info_0[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_format_call_info_0[1];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_format_call_info_0[1];

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_generic_call_id_0_0[3];

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_generic_call_id_0_0[3];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_generic_call_id_0_0;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_generic_call_id_0_1[2];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_generic_call_id_0_1;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_generic_call_id_0_2[1];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_generic_call_id_0_2;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_generic_call_id_0_3[1];

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_generic_call_id_0_3[1];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_generic_call_id_0_3;

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_generic_call_id_0_0[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_generic_call_id_0_1[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_generic_call_id_0_2[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_generic_call_id_0_3[1];

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_generic_call_id_0[4];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_generic_call_id_0[4];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_generic_call_id_0[4];

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_goal_type_0_0[1];

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_goal_type_0_0[1];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_goal_type_0_0;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_goal_type_0_1[1];

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_goal_type_0_1[1];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_goal_type_0_1;

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_goal_type_0_0[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_goal_type_0_1[1];

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_goal_type_0[2];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_goal_type_0[2];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_goal_type_0[2];

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_has_mutual_tail_rec_call_0_0;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_has_mutual_tail_rec_call_0_1;

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_has_mutual_tail_rec_call_0[2];

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_has_mutual_tail_rec_call_0[2];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_has_mutual_tail_rec_call_0[2];

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_has_parallel_conj_0_0;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_has_parallel_conj_0_1;

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_has_parallel_conj_0[2];

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_has_parallel_conj_0[2];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_has_parallel_conj_0[2];

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_has_self_tail_rec_call_0_0;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_has_self_tail_rec_call_0_1;

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_has_self_tail_rec_call_0[2];

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_has_self_tail_rec_call_0[2];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_has_self_tail_rec_call_0[2];

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_has_tail_rec_call_0_0[2];

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_has_tail_rec_call_0_0[2];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_has_tail_rec_call_0_0;

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_has_tail_rec_call_0_0[1];

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_has_tail_rec_call_0[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_has_tail_rec_call_0[1];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_has_tail_rec_call_0[1];

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_has_user_event_0_0;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_has_user_event_0_1;

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_has_user_event_0[2];

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_has_user_event_0[2];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_has_user_event_0[2];

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_hlds_deep_excp_vars_0_0[3];

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_hlds_deep_excp_vars_0_0[3];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_hlds_deep_excp_vars_0_0;

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_hlds_deep_excp_vars_0_0[1];

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_hlds_deep_excp_vars_0[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_hlds_deep_excp_vars_0[1];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_hlds_deep_excp_vars_0[1];

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_hlds_deep_layout_0_0[2];

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_hlds_deep_layout_0_0[2];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_hlds_deep_layout_0_0;

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_hlds_deep_layout_0_0[1];

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_hlds_deep_layout_0[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_hlds_deep_layout_0[1];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_hlds_deep_layout_0[1];

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__list__ti_list_1hlds__hlds_pred__type_ctor_info_call_site_static_data_0;

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__list__ti_list_1mdbcomp__program_representation__type_ctor_info_coverage_point_info_0;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_hlds_proc_static_0_0[5];

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_hlds_proc_static_0_0[5];

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_hlds_proc_static_0_0[5];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_hlds_proc_static_0_0;

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_hlds_proc_static_0_0[1];

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_hlds_proc_static_0[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_hlds_proc_static_0[1];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_hlds_proc_static_0[1];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_implementation_language_0_0;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_implementation_language_0_1[1];

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_implementation_language_0_1[1];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_implementation_language_0_1;

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_implementation_language_0_0[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_implementation_language_0_1[1];

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_implementation_language_0[2];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_implementation_language_0[2];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_implementation_language_0[2];

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__list__ti_list_1parse_tree__prog_data__type_ctor_info_mer_type_0;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_imported_reuse_0_0[3];

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_imported_reuse_0_0[3];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_imported_reuse_0_0;

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_imported_reuse_0_0[1];

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_imported_reuse_0[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_imported_reuse_0[1];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_imported_reuse_0[1];

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_imported_sharing_0_0[3];

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_imported_sharing_0_0[3];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_imported_sharing_0_0;

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_imported_sharing_0_0[1];

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_imported_sharing_0[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_imported_sharing_0[1];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_imported_sharing_0[1];

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_is_address_taken_0_0;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_is_address_taken_0_1;

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_is_address_taken_0[2];

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_is_address_taken_0[2];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_is_address_taken_0[2];

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__sparse_bitset__ti_sparse_bitset_1term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_maybe_predmode_decl_0_0;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_maybe_predmode_decl_0_1;

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_maybe_predmode_decl_0[2];

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_maybe_predmode_decl_0[2];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_maybe_predmode_decl_0[2];

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_needs_maxfr_slot_0_0;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_needs_maxfr_slot_0_1;

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_needs_maxfr_slot_0[2];

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_needs_maxfr_slot_0[2];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_needs_maxfr_slot_0[2];

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_np_goal_type_0_0;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_np_goal_type_0_1;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_np_goal_type_0_2;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_np_goal_type_0_3;

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_np_goal_type_0[4];

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_np_goal_type_0[4];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_np_goal_type_0[4];

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_oisu_pred_kind_for_0_0[1];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_oisu_pred_kind_for_0_0;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_oisu_pred_kind_for_0_1[1];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_oisu_pred_kind_for_0_1;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_oisu_pred_kind_for_0_2[1];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_oisu_pred_kind_for_0_2;

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_oisu_pred_kind_for_0_0[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_oisu_pred_kind_for_0_1[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_oisu_pred_kind_for_0_2[1];

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_oisu_pred_kind_for_0[3];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_oisu_pred_kind_for_0[3];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_oisu_pred_kind_for_0[3];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_pred_id_0[1];

static const MR_NotagFunctorDesc hlds__hlds_pred__hlds__hlds_pred__notag_functor_desc_pred_id_0;

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__set_ordlist__ti_set_ordlist_1hlds__hlds_markers__type_ctor_info_pred_marker_0;

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__varset__ti_varset_1parse_tree__prog_data__type_ctor_info_tvar_type_0;

static const MR_FA_TypeInfo_Struct2 hlds__hlds_pred__tree234__ti_tree234_2builtin__type_ctor_info_int_0hlds__hlds_pred__type_ctor_info_proc_info_0;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_pred_info_0_0[15];

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_pred_info_0_0[15];

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_pred_info_0_0[15];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_info_0_0;

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_pred_info_0_0[1];

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_pred_info_0[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_pred_info_0[1];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_pred_info_0[1];

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_pred_proc_id_0_0[2];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_proc_id_0_0;

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_pred_proc_id_0_0[1];

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_pred_proc_id_0[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_pred_proc_id_0[1];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_pred_proc_id_0[1];

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_cur_user_decl_info_0;

static const MR_FA_TypeInfo_Struct2 hlds__hlds_pred__tree234__ti_tree234_2term__ti_var_1parse_tree__prog_data__type_ctor_info_tvar_type_0parse_tree__prog_data__type_ctor_info_kind_0;

static const MR_FA_TypeInfo_Struct2 hlds__hlds_pred__tree234__ti_tree234_2term__ti_var_1parse_tree__prog_data__type_ctor_info_tvar_type_0parse_tree__prog_data__type_ctor_info_mer_type_0;

static const MR_FA_TypeInfo_Struct2 hlds__hlds_pred__tree234__ti_tree234_2parse_tree__prog_data__type_ctor_info_prog_constraint_0hlds__hlds_class__type_ctor_info_constraint_proof_0;

static const MR_FA_TypeInfo_Struct2 hlds__hlds_pred__tree234__ti_tree234_2hlds__hlds_class__type_ctor_info_constraint_id_0parse_tree__prog_data__type_ctor_info_prog_constraint_0;

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__list__ti_list_1parse_tree__prog_data__type_ctor_info_prog_constraint_0;

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__list__ti_list_1pair__ti_pair_2tree234__ti_tree234_2term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0bool__type_ctor_info_bool_0tree234__ti_tree234_2term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0bool__type_ctor_info_bool_0;

static const MR_FA_TypeInfo_Struct2 hlds__hlds_pred__tree234__ti_tree234_2term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0builtin__type_ctor_info_string_0;

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__set_ordlist__ti_set_ordlist_1hlds__hlds_promise__type_ctor_info_assert_id_0;

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__list__ti_list_1parse_tree__prog_data__type_ctor_info_sym_name_arity_0;

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1list__ti_list_1parse_tree__prog_data__type_ctor_info_sym_name_arity_0;

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_format_call_info_0;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_pred_sub_info_0_0[17];

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_pred_sub_info_0_0[17];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_sub_info_0_0;

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_pred_sub_info_0_0[1];

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_pred_sub_info_0[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_pred_sub_info_0[1];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_pred_sub_info_0[1];

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1analysis__framework__type_ctor_info_analysis_status_0;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_proc_exception_info_0_0[2];

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_proc_exception_info_0_0[2];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_proc_exception_info_0_0;

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_proc_exception_info_0_0[1];

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_proc_exception_info_0[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_proc_exception_info_0[1];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_proc_exception_info_0[1];

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_proc_foreign_exports_0_0;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_proc_foreign_exports_0_1;

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_proc_foreign_exports_0[2];

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_proc_foreign_exports_0[2];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_proc_foreign_exports_0[2];

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__varset__ti_varset_1parse_tree__prog_data__type_ctor_info_inst_var_type_0;

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__list__ti_list_1parse_tree__prog_data__type_ctor_info_mer_mode_0;

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1list__ti_list_1parse_tree__prog_data__type_ctor_info_mer_mode_0;

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__list__ti_list_1parse_tree__prog_data__type_ctor_info_is_live_0;

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1list__ti_list_1parse_tree__prog_data__type_ctor_info_is_live_0;

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1parse_tree__prog_data__type_ctor_info_determinism_0;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_proc_info_0_0[12];

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_proc_info_0_0[12];

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_proc_info_0_0[12];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_proc_info_0_0;

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_proc_info_0_0[1];

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_proc_info_0[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_proc_info_0[1];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_proc_info_0[1];

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_proc_mm_tabling_info_0_0[2];

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_proc_mm_tabling_info_0_0[2];

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_proc_mm_tabling_info_0_0[2];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_proc_mm_tabling_info_0_0;

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_proc_mm_tabling_info_0_0[1];

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_proc_mm_tabling_info_0[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_proc_mm_tabling_info_0[1];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_proc_mm_tabling_info_0[1];

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__mode_robdd__tfeirn__ti_tfeirn_1check_hlds__mode_constraint_robdd__type_ctor_info_mc_type_0;

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1mode_robdd__tfeirn__ti_tfeirn_1check_hlds__mode_constraint_robdd__type_ctor_info_mc_type_0;

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__list__ti_list_1term_context__type_ctor_info_term_context_0;

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_untuple_proc_info_0;

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__list__ti_list_1parse_tree__error_spec__type_ctor_info_error_spec_0;

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__set_ordlist__ti_set_ordlist_1hlds__hlds_pred__type_ctor_info_pred_proc_id_0;

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__list__ti_list_1hlds__hlds_pred__type_ctor_info_oisu_pred_kind_for_0;

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1parse_tree__prog_data_pragma__type_ctor_info_require_tail_recursion_0;

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__list__ti_list_1hlds__hlds_pred__type_ctor_info_arg_info_0;

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1list__ti_list_1hlds__hlds_pred__type_ctor_info_arg_info_0;

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_special_proc_return_0;

static const MR_FA_TypeInfo_Struct2 hlds__hlds_pred__tree234__ti_tree234_2term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0hlds__hlds_llds__type_ctor_info_stack_slot_0;

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_proc_table_io_info_0;

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1parse_tree__prog_data_pragma__type_ctor_info_table_attributes_0;

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_deep_profile_proc_info_0;

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__list__ti_list_1transform_hlds__term_errors__type_ctor_info_term_error_0;

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__parse_tree__prog_data_pragma__ti_generic_arg_size_info_1list__ti_list_1transform_hlds__term_errors__type_ctor_info_term_error_0;

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1parse_tree__prog_data_pragma__ti_generic_arg_size_info_1list__ti_list_1transform_hlds__term_errors__type_ctor_info_term_error_0;

static const MR_FA_TypeInfo_Struct2 hlds__hlds_pred__parse_tree__prog_data_pragma__ti_generic_termination_info_2unit__type_ctor_info_unit_0list__ti_list_1transform_hlds__term_errors__type_ctor_info_term_error_0;

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1parse_tree__prog_data_pragma__ti_generic_termination_info_2unit__type_ctor_info_unit_0list__ti_list_1transform_hlds__term_errors__type_ctor_info_term_error_0;

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_proc_exception_info_0;

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_proc_trailing_info_0;

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_proc_mm_tabling_info_0;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_proc_sub_info_0_0[36];

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_proc_sub_info_0_0[36];

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_proc_sub_info_0_0[36];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_proc_sub_info_0_0;

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_proc_sub_info_0_0[1];

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_proc_sub_info_0[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_proc_sub_info_0[1];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_proc_sub_info_0[1];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_proc_table_io_info_0[1];

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_table_arg_infos_0;

static const MR_NotagFunctorDesc hlds__hlds_pred__hlds__hlds_pred__notag_functor_desc_proc_table_io_info_0;

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__list__ti_list_1hlds__hlds_pred__type_ctor_info_table_step_desc_0;

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1list__ti_list_1hlds__hlds_pred__type_ctor_info_table_step_desc_0;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_proc_table_struct_info_0_0[9];

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_proc_table_struct_info_0_0[9];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_proc_table_struct_info_0_0;

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_proc_table_struct_info_0_0[1];

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_proc_table_struct_info_0[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_proc_table_struct_info_0[1];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_proc_table_struct_info_0[1];

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_proc_trailing_info_0_0[2];

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_proc_trailing_info_0_0[2];

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_proc_trailing_info_0_0[2];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_proc_trailing_info_0_0;

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_proc_trailing_info_0_0[1];

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_proc_trailing_info_0[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_proc_trailing_info_0[1];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_proc_trailing_info_0[1];

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_special_proc_return_0_0[2];

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_special_proc_return_0_0[2];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_special_proc_return_0_0;

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_special_proc_return_0_0[1];

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_special_proc_return_0[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_special_proc_return_0[1];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_special_proc_return_0[1];

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_structure_reuse_domain_and_status_0_0[2];

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_structure_reuse_domain_and_status_0_0[2];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_structure_reuse_domain_and_status_0_0;

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_structure_reuse_domain_and_status_0_0[1];

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_structure_reuse_domain_and_status_0[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_structure_reuse_domain_and_status_0[1];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_structure_reuse_domain_and_status_0[1];

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_structure_reuse_domain_and_status_0;

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_imported_reuse_0;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_structure_reuse_info_0_0[2];

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_structure_reuse_info_0_0[2];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_structure_reuse_info_0_0;

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_structure_reuse_info_0_0[1];

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_structure_reuse_info_0[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_structure_reuse_info_0[1];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_structure_reuse_info_0[1];

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_structure_sharing_domain_and_status_0_0[2];

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_structure_sharing_domain_and_status_0_0[2];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_structure_sharing_domain_and_status_0_0;

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_structure_sharing_domain_and_status_0_0[1];

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_structure_sharing_domain_and_status_0[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_structure_sharing_domain_and_status_0[1];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_structure_sharing_domain_and_status_0[1];

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_structure_sharing_domain_and_status_0;

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_imported_sharing_0;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_structure_sharing_info_0_0[2];

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_structure_sharing_info_0_0[2];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_structure_sharing_info_0_0;

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_structure_sharing_info_0_0[1];

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_structure_sharing_info_0[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_structure_sharing_info_0[1];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_structure_sharing_info_0[1];

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_table_arg_info_0_0[4];

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_table_arg_info_0_0[4];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_arg_info_0_0;

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_table_arg_info_0_0[1];

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_table_arg_info_0[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_table_arg_info_0[1];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_table_arg_info_0[1];

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__list__ti_list_1hlds__hlds_pred__type_ctor_info_table_arg_info_0;

static const MR_FA_TypeInfo_Struct2 hlds__hlds_pred__tree234__ti_tree234_2term__ti_var_1parse_tree__prog_data__type_ctor_info_tvar_type_0hlds__hlds_pred__type_ctor_info_table_locn_0;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_table_arg_infos_0_0[2];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_arg_infos_0_0;

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_table_arg_infos_0_0[1];

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_table_arg_infos_0[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_table_arg_infos_0[1];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_table_arg_infos_0[1];

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_table_is_poly_0_0;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_table_is_poly_0_1;

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_table_is_poly_0[2];

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_table_is_poly_0[2];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_table_is_poly_0[2];

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_table_locn_0_0[1];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_locn_0_0;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_table_locn_0_1[2];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_locn_0_1;

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_table_locn_0_0[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_table_locn_0_1[1];

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_table_locn_0[2];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_table_locn_0[2];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_table_locn_0[2];

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_table_step_desc_0_0[2];

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_table_step_desc_0_0[2];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_step_desc_0_0;

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_table_step_desc_0_0[1];

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_table_step_desc_0[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_table_step_desc_0[1];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_table_step_desc_0[1];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_trie_step_0_0;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_table_trie_step_0_1[1];

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_table_trie_step_0_1[1];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_trie_step_0_1;

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_trie_step_0_2;

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_trie_step_0_3;

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_trie_step_0_4;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_table_trie_step_0_5[1];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_trie_step_0_5;

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_trie_step_0_6;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_table_trie_step_0_7[3];

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_table_trie_step_0_7[3];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_trie_step_0_7;

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_trie_step_0_8;

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_trie_step_0_9;

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_trie_step_0_10;

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_table_trie_step_0_0[8];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_table_trie_step_0_1[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_table_trie_step_0_2[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_table_trie_step_0_3[1];

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_table_trie_step_0[4];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_table_trie_step_0[11];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_table_trie_step_0[11];

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_table_value_or_addr_0_0;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_table_value_or_addr_0_1;

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_table_value_or_addr_0[2];

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_table_value_or_addr_0[2];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_table_value_or_addr_0[2];

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_top_functor_mode_0_0;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_top_functor_mode_0_1;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_top_functor_mode_0_2;

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_top_functor_mode_0[3];

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_top_functor_mode_0[3];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_top_functor_mode_0[3];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_untuple_proc_info_0[1];

static const MR_FA_TypeInfo_Struct2 hlds__hlds_pred__tree234__ti_tree234_2term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0list__ti_list_1term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0;

static const MR_NotagFunctorDesc hlds__hlds_pred__hlds__hlds_pred__notag_functor_desc_untuple_proc_info_0;

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__list__ti_list_1builtin__type_ctor_info_int_0;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_visible_scc_data_0_0[3];

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_visible_scc_data_0_0[3];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_visible_scc_data_0_0;

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_visible_scc_data_0_0[1];

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_visible_scc_data_0[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_visible_scc_data_0[1];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_visible_scc_data_0[1];

static void MR_CALL 
hlds__hlds_pred____Compare____proc_sub_info_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____proc_sub_info_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2);

static void MR_CALL 
hlds__hlds_pred____Compare____pred_sub_info_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____pred_sub_info_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2);

static void MR_CALL 
hlds__hlds_pred____Compare____imported_sharing_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____imported_sharing_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2);

static void MR_CALL 
hlds__hlds_pred____Compare____imported_reuse_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____imported_reuse_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2);

static MR_bool MR_CALL 
hlds__hlds_pred__is_inline_builtin_3_p_0(
  MR_Word ModuleName_4,
  MR_String PredName_5,
  MR_Word PredFormArity_6);

static void MR_CALL 
hlds__hlds_pred__make_fresh_prefix_named_vars_from_types_7_p_0(
  MR_Word ModuleInfo_1,
  MR_String BaseName_2,
  MR_Integer Num_3,
  MR_Word HeadVar__4_4,
  MR_Word * HeadVar__5_5,
  MR_Word HeadVar__6_6,
  MR_Word * HeadVar__7_7);

static void MR_CALL 
hlds__hlds_pred__proc_info_create_with_declared_detism_15_p_0(
  MR_Word MainContext_16,
  MR_Word ItemNumber_17,
  MR_Word VarTable_18,
  MR_Word HeadVars_19,
  MR_Word InstVarSet_20,
  MR_Word Modes_21,
  MR_Word DetismDecl_22,
  MR_Word MaybeDeclaredDetism_23,
  MR_Word Detism_24,
  MR_Word Goal_25,
  MR_Word RttiVarMaps_26,
  MR_Word IsAddressTaken_27,
  MR_Word HasParallelConj_28,
  MR_Word VarNameRemap_29,
  MR_Word * ProcInfo_30);

static void MR_CALL 
hlds__hlds_pred__compute_arg_types_modes_6_p_0(
  MR_Word VarTable_1,
  MR_Word InstMapInit_2,
  MR_Word InstMapFinal_3,
  MR_Word HeadVar__4_4,
  MR_Word * HeadVar__5_5,
  MR_Word * HeadVar__6_6);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____arg_info_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____arg_info_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____arg_loc_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____arg_loc_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____arg_modes_map_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____arg_modes_map_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____call_id_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____call_id_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____call_site_static_data_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____call_site_static_data_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____can_process_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____can_process_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____cur_user_decl_info_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____cur_user_decl_info_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____decl_section_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____decl_section_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____deep_original_body_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____deep_original_body_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____deep_profile_proc_info_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____deep_profile_proc_info_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____deep_profile_role_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____deep_profile_role_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____deep_recursion_info_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____deep_recursion_info_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____detism_decl_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____detism_decl_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____external_type_params_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____external_type_params_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____format_call_info_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____format_call_info_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____generic_call_id_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____generic_call_id_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____goal_type_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____goal_type_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____has_mutual_tail_rec_call_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____has_mutual_tail_rec_call_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____has_parallel_conj_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____has_parallel_conj_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____has_self_tail_rec_call_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____has_self_tail_rec_call_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____has_tail_rec_call_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____has_tail_rec_call_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____has_user_event_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____has_user_event_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____hlds_deep_excp_vars_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____hlds_deep_excp_vars_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____hlds_deep_layout_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____hlds_deep_layout_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____hlds_proc_static_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____hlds_proc_static_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____implementation_language_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____implementation_language_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____imported_reuse_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____imported_reuse_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____imported_sharing_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____imported_sharing_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____is_address_taken_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____is_address_taken_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____liveness_info_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____liveness_info_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____maybe_predmode_decl_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____maybe_predmode_decl_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____needs_maxfr_slot_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____needs_maxfr_slot_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____np_goal_type_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____np_goal_type_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____oisu_pred_kind_for_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____oisu_pred_kind_for_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____pred_id_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____pred_id_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____pred_info_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____pred_info_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____pred_proc_id_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____pred_proc_id_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____pred_sub_info_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____pred_sub_info_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____proc_exception_info_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____proc_exception_info_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____proc_foreign_exports_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____proc_foreign_exports_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____proc_id_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____proc_id_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____proc_info_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____proc_info_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____proc_mm_tabling_info_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____proc_mm_tabling_info_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____proc_sub_info_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____proc_sub_info_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____proc_table_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____proc_table_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____proc_table_io_info_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____proc_table_io_info_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____proc_table_struct_info_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____proc_table_struct_info_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____proc_trailing_info_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____proc_trailing_info_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____scc_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____scc_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____special_proc_return_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____special_proc_return_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____structure_reuse_domain_and_status_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____structure_reuse_domain_and_status_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____structure_reuse_info_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____structure_reuse_info_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____structure_sharing_domain_and_status_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____structure_sharing_domain_and_status_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____structure_sharing_info_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____structure_sharing_info_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____table_arg_info_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____table_arg_info_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____table_arg_infos_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____table_arg_infos_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____table_is_poly_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____table_is_poly_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____table_locn_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____table_locn_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____table_step_desc_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____table_step_desc_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____table_trie_step_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____table_trie_step_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____table_value_or_addr_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____table_value_or_addr_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____top_functor_mode_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____top_functor_mode_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____untuple_proc_info_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____untuple_proc_info_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____visible_scc_data_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____visible_scc_data_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3);


static /* final */ const MR_Box hlds__hlds_pred_scalar_common_1[14][3];

static /* final */ const MR_Box hlds__hlds_pred_scalar_common_2[63][2];

static /* final */ const MR_Box hlds__hlds_pred_scalar_common_3[7][1];




static /* final */ const MR_Box hlds__hlds_pred_scalar_common_1[14][3] = {
  /* row   0 */
  {
    ((MR_Box) (&mercury__pair__pair__type_ctor_info_pair_2)),
    ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_int_0)),
    ((MR_Box) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_info_0))
  },
  /* row   1 */
  {
    ((MR_Box) (&mercury__tree234__tree234__type_ctor_info_tree234_2)),
    ((MR_Box) (&hlds__hlds_pred_scalar_common_2[0])),
    ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_kind_0))
  },
  /* row   2 */
  {
    ((MR_Box) (&mercury__tree234__tree234__type_ctor_info_tree234_2)),
    ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_constraint_0)),
    ((MR_Box) (&hlds__hlds_class__hlds__hlds_class__type_ctor_info_constraint_proof_0))
  },
  /* row   3 */
  {
    ((MR_Box) (&mercury__tree234__tree234__type_ctor_info_tree234_2)),
    ((MR_Box) (&hlds__hlds_class__hlds__hlds_class__type_ctor_info_constraint_id_0)),
    ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_constraint_0))
  },
  /* row   4 */
  {
    ((MR_Box) (&mercury__tree234__tree234__type_ctor_info_tree234_2)),
    ((MR_Box) (&hlds__hlds_pred_scalar_common_2[1])),
    ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_string_0))
  },
  /* row   5 */
  {
    ((MR_Box) (&mercury__tree234__tree234__type_ctor_info_tree234_2)),
    ((MR_Box) (&hlds__hlds_pred_scalar_common_2[1])),
    ((MR_Box) (&mercury__bool__bool__type_ctor_info_bool_0))
  },
  /* row   6 */
  {
    ((MR_Box) (&mercury__pair__pair__type_ctor_info_pair_2)),
    ((MR_Box) (&hlds__hlds_pred_scalar_common_1[5])),
    ((MR_Box) (&hlds__hlds_pred_scalar_common_1[5]))
  },
  /* row   7 */
  {
    ((MR_Box) (&mercury__tree234__tree234__type_ctor_info_tree234_2)),
    ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_int_0)),
    ((MR_Box) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_info_0))
  },
  /* row   8 */
  {
    ((MR_Box) (&mercury__tree234__tree234__type_ctor_info_tree234_2)),
    ((MR_Box) (&hlds__hlds_pred_scalar_common_2[0])),
    ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_type_0))
  },
  /* row   9 */
  {
    ((MR_Box) (&mercury__tree234__tree234__type_ctor_info_tree234_2)),
    ((MR_Box) (&hlds__hlds_pred_scalar_common_2[1])),
    ((MR_Box) (&hlds__hlds_llds__hlds__hlds_llds__type_ctor_info_stack_slot_0))
  },
  /* row  10 */
  {
    ((MR_Box) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_generic_termination_info_2)),
    ((MR_Box) (&mercury__unit__unit__type_ctor_info_unit_0)),
    ((MR_Box) (&hlds__hlds_pred_scalar_common_2[44]))
  },
  /* row  11 */
  {
    ((MR_Box) (&mercury__tree234__tree234__type_ctor_info_tree234_2)),
    ((MR_Box) (&hlds__hlds_pred_scalar_common_2[0])),
    ((MR_Box) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_table_locn_0))
  },
  /* row  12 */
  {
    ((MR_Box) (&mercury__tree234__tree234__type_ctor_info_tree234_2)),
    ((MR_Box) (&hlds__hlds_pred_scalar_common_2[1])),
    ((MR_Box) (&hlds__hlds_pred_scalar_common_2[6]))
  },
  /* row  13 */
  {
    ((MR_Box) (MR_Word) ((MR_Unsigned) 2U)),
    (MR_Box) ((MR_Unsigned) 0U),
    ((MR_Box) ((MR_Unsigned) 0U))
  },
};

static /* final */ const MR_Box hlds__hlds_pred_scalar_common_2[63][2] = {
  /* row   0 */
  {
    ((MR_Box) (&mercury__term__term__type_ctor_info_var_1)),
    ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_tvar_type_0))
  },
  /* row   1 */
  {
    ((MR_Box) (&mercury__term__term__type_ctor_info_var_1)),
    ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_var_type_0))
  },
  /* row   2 */
  {
    ((MR_Box) (&mercury__varset__varset__type_ctor_info_varset_1)),
    ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_tvar_type_0))
  },
  /* row   3 */
  {
    ((MR_Box) (&mercury__list__list__type_ctor_info_list_1)),
    ((MR_Box) (&hlds__hlds_pred_scalar_common_2[0]))
  },
  /* row   4 */
  {
    ((MR_Box) (&mercury__list__list__type_ctor_info_list_1)),
    ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_constraint_0))
  },
  /* row   5 */
  {
    ((MR_Box) (&mercury__one_or_more__one_or_more__type_ctor_info_one_or_more_1)),
    ((MR_Box) (&hlds__hlds_cons__hlds__hlds_cons__type_ctor_info_hlds_ctor_field_defn_0))
  },
  /* row   6 */
  {
    ((MR_Box) (&mercury__list__list__type_ctor_info_list_1)),
    ((MR_Box) (&hlds__hlds_pred_scalar_common_2[1]))
  },
  /* row   7 */
  {
    ((MR_Box) (&mercury__maybe__maybe__type_ctor_info_maybe_1)),
    ((MR_Box) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_deep_recursion_info_0))
  },
  /* row   8 */
  {
    ((MR_Box) (&mercury__maybe__maybe__type_ctor_info_maybe_1)),
    ((MR_Box) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_hlds_deep_layout_0))
  },
  /* row   9 */
  {
    ((MR_Box) (&mercury__list__list__type_ctor_info_list_1)),
    ((MR_Box) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_visible_scc_data_0))
  },
  /* row  10 */
  {
    ((MR_Box) (&mercury__one_or_more__one_or_more__type_ctor_info_one_or_more_1)),
    ((MR_Box) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_format_string_values_0))
  },
  /* row  11 */
  {
    ((MR_Box) (&mercury__maybe__maybe__type_ctor_info_maybe_1)),
    ((MR_Box) (&hlds__hlds_pred_scalar_common_2[1]))
  },
  /* row  12 */
  {
    ((MR_Box) (&mercury__list__list__type_ctor_info_list_1)),
    ((MR_Box) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_call_site_static_data_0))
  },
  /* row  13 */
  {
    ((MR_Box) (&mercury__list__list__type_ctor_info_list_1)),
    ((MR_Box) (&mdbcomp__program_representation__mdbcomp__program_representation__type_ctor_info_coverage_point_info_0))
  },
  /* row  14 */
  {
    ((MR_Box) (&mercury__list__list__type_ctor_info_list_1)),
    ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_type_0))
  },
  /* row  15 */
  {
    ((MR_Box) (&parse_tree__set_of_var__parse_tree__set_of_var__type_ctor_info_set_of_var_1)),
    ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_var_type_0))
  },
  /* row  16 */
  {
    ((MR_Box) (&mercury__set_ordlist__set_ordlist__type_ctor_info_set_ordlist_1)),
    ((MR_Box) (&hlds__hlds_markers__hlds__hlds_markers__type_ctor_info_pred_marker_0))
  },
  /* row  17 */
  {
    ((MR_Box) (&mercury__maybe__maybe__type_ctor_info_maybe_1)),
    ((MR_Box) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_cur_user_decl_info_0))
  },
  /* row  18 */
  {
    ((MR_Box) (&mercury__list__list__type_ctor_info_list_1)),
    ((MR_Box) (&hlds__hlds_pred_scalar_common_1[6]))
  },
  /* row  19 */
  {
    ((MR_Box) (&mercury__set_ordlist__set_ordlist__type_ctor_info_set_ordlist_1)),
    ((MR_Box) (&hlds__hlds_promise__hlds__hlds_promise__type_ctor_info_assert_id_0))
  },
  /* row  20 */
  {
    ((MR_Box) (&mercury__list__list__type_ctor_info_list_1)),
    ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_sym_name_arity_0))
  },
  /* row  21 */
  {
    ((MR_Box) (&mercury__maybe__maybe__type_ctor_info_maybe_1)),
    ((MR_Box) (&hlds__hlds_pred_scalar_common_2[20]))
  },
  /* row  22 */
  {
    ((MR_Box) (&mercury__maybe__maybe__type_ctor_info_maybe_1)),
    ((MR_Box) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_format_call_info_0))
  },
  /* row  23 */
  {
    ((MR_Box) (&mercury__maybe__maybe__type_ctor_info_maybe_1)),
    ((MR_Box) (&analysis__framework__analysis__framework__type_ctor_info_analysis_status_0))
  },
  /* row  24 */
  {
    ((MR_Box) (&mercury__varset__varset__type_ctor_info_varset_1)),
    ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_inst_var_type_0))
  },
  /* row  25 */
  {
    ((MR_Box) (&mercury__list__list__type_ctor_info_list_1)),
    ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_mode_0))
  },
  /* row  26 */
  {
    ((MR_Box) (&mercury__maybe__maybe__type_ctor_info_maybe_1)),
    ((MR_Box) (&hlds__hlds_pred_scalar_common_2[25]))
  },
  /* row  27 */
  {
    ((MR_Box) (&mercury__list__list__type_ctor_info_list_1)),
    ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_is_live_0))
  },
  /* row  28 */
  {
    ((MR_Box) (&mercury__maybe__maybe__type_ctor_info_maybe_1)),
    ((MR_Box) (&hlds__hlds_pred_scalar_common_2[27]))
  },
  /* row  29 */
  {
    ((MR_Box) (&mercury__maybe__maybe__type_ctor_info_maybe_1)),
    ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_determinism_0))
  },
  /* row  30 */
  {
    ((MR_Box) (&mode_robdd__tfeirn__mode_robdd__tfeirn__type_ctor_info_tfeirn_1)),
    ((MR_Box) (&check_hlds__mode_constraint_robdd__check_hlds__mode_constraint_robdd__type_ctor_info_mc_type_0))
  },
  /* row  31 */
  {
    ((MR_Box) (&mercury__maybe__maybe__type_ctor_info_maybe_1)),
    ((MR_Box) (&hlds__hlds_pred_scalar_common_2[30]))
  },
  /* row  32 */
  {
    ((MR_Box) (&mercury__list__list__type_ctor_info_list_1)),
    ((MR_Box) (&mercury__term_context__term_context__type_ctor_info_term_context_0))
  },
  /* row  33 */
  {
    ((MR_Box) (&mercury__maybe__maybe__type_ctor_info_maybe_1)),
    ((MR_Box) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_untuple_proc_info_0))
  },
  /* row  34 */
  {
    ((MR_Box) (&mercury__list__list__type_ctor_info_list_1)),
    ((MR_Box) (&parse_tree__error_spec__parse_tree__error_spec__type_ctor_info_error_spec_0))
  },
  /* row  35 */
  {
    ((MR_Box) (&mercury__set_ordlist__set_ordlist__type_ctor_info_set_ordlist_1)),
    ((MR_Box) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_proc_id_0))
  },
  /* row  36 */
  {
    ((MR_Box) (&mercury__list__list__type_ctor_info_list_1)),
    ((MR_Box) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_oisu_pred_kind_for_0))
  },
  /* row  37 */
  {
    ((MR_Box) (&mercury__maybe__maybe__type_ctor_info_maybe_1)),
    ((MR_Box) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_require_tail_recursion_0))
  },
  /* row  38 */
  {
    ((MR_Box) (&mercury__list__list__type_ctor_info_list_1)),
    ((MR_Box) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_arg_info_0))
  },
  /* row  39 */
  {
    ((MR_Box) (&mercury__maybe__maybe__type_ctor_info_maybe_1)),
    ((MR_Box) (&hlds__hlds_pred_scalar_common_2[38]))
  },
  /* row  40 */
  {
    ((MR_Box) (&mercury__maybe__maybe__type_ctor_info_maybe_1)),
    ((MR_Box) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_special_proc_return_0))
  },
  /* row  41 */
  {
    ((MR_Box) (&mercury__maybe__maybe__type_ctor_info_maybe_1)),
    ((MR_Box) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_table_io_info_0))
  },
  /* row  42 */
  {
    ((MR_Box) (&mercury__maybe__maybe__type_ctor_info_maybe_1)),
    ((MR_Box) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_table_attributes_0))
  },
  /* row  43 */
  {
    ((MR_Box) (&mercury__maybe__maybe__type_ctor_info_maybe_1)),
    ((MR_Box) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_deep_profile_proc_info_0))
  },
  /* row  44 */
  {
    ((MR_Box) (&mercury__list__list__type_ctor_info_list_1)),
    ((MR_Box) (&transform_hlds__term_errors__transform_hlds__term_errors__type_ctor_info_term_error_0))
  },
  /* row  45 */
  {
    ((MR_Box) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_generic_arg_size_info_1)),
    ((MR_Box) (&hlds__hlds_pred_scalar_common_2[44]))
  },
  /* row  46 */
  {
    ((MR_Box) (&mercury__maybe__maybe__type_ctor_info_maybe_1)),
    ((MR_Box) (&hlds__hlds_pred_scalar_common_2[45]))
  },
  /* row  47 */
  {
    ((MR_Box) (&mercury__maybe__maybe__type_ctor_info_maybe_1)),
    ((MR_Box) (&hlds__hlds_pred_scalar_common_1[10]))
  },
  /* row  48 */
  {
    ((MR_Box) (&mercury__maybe__maybe__type_ctor_info_maybe_1)),
    ((MR_Box) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_exception_info_0))
  },
  /* row  49 */
  {
    ((MR_Box) (&mercury__maybe__maybe__type_ctor_info_maybe_1)),
    ((MR_Box) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_trailing_info_0))
  },
  /* row  50 */
  {
    ((MR_Box) (&mercury__maybe__maybe__type_ctor_info_maybe_1)),
    ((MR_Box) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_mm_tabling_info_0))
  },
  /* row  51 */
  {
    ((MR_Box) (&mercury__maybe__maybe__type_ctor_info_maybe_1)),
    ((MR_Box) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_table_arg_infos_0))
  },
  /* row  52 */
  {
    ((MR_Box) (&mercury__list__list__type_ctor_info_list_1)),
    ((MR_Box) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_table_step_desc_0))
  },
  /* row  53 */
  {
    ((MR_Box) (&mercury__maybe__maybe__type_ctor_info_maybe_1)),
    ((MR_Box) (&hlds__hlds_pred_scalar_common_2[52]))
  },
  /* row  54 */
  {
    ((MR_Box) (&mercury__maybe__maybe__type_ctor_info_maybe_1)),
    ((MR_Box) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_structure_reuse_domain_and_status_0))
  },
  /* row  55 */
  {
    ((MR_Box) (&mercury__maybe__maybe__type_ctor_info_maybe_1)),
    ((MR_Box) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_imported_reuse_0))
  },
  /* row  56 */
  {
    ((MR_Box) (&mercury__maybe__maybe__type_ctor_info_maybe_1)),
    ((MR_Box) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_structure_sharing_domain_and_status_0))
  },
  /* row  57 */
  {
    ((MR_Box) (&mercury__maybe__maybe__type_ctor_info_maybe_1)),
    ((MR_Box) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_imported_sharing_0))
  },
  /* row  58 */
  {
    ((MR_Box) (&mercury__list__list__type_ctor_info_list_1)),
    ((MR_Box) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_table_arg_info_0))
  },
  /* row  59 */
  {
    ((MR_Box) (&mercury__list__list__type_ctor_info_list_1)),
    ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_int_0))
  },
  /* row  60 */
  {
    ((MR_Box) ((MR_Integer) 0)),
    ((MR_Box) ((MR_Unsigned) 0U))
  },
  /* row  61 */
  {
    ((MR_Box) ((MR_Unsigned) 0U)),
    ((MR_Box) ((MR_Unsigned) 0U))
  },
  /* row  62 */
  {
    ((MR_Box) ((MR_Unsigned) 0U)),
    ((MR_Box) ((MR_Unsigned) 0U))
  },
};

static /* final */ const MR_Box hlds__hlds_pred_scalar_common_3[7][1] = {
  /* row   0 */
  { ((MR_Box) ((MR_Integer) 0)) },
  /* row   1 */
  { ((MR_Box) (&hlds__hlds_pred_scalar_common_3[0])) },
  /* row   2 */
  { (MR_Box) ((MR_Unsigned) 0U) },
  /* row   3 */
  { ((MR_Box) ((MR_Integer) 0)) },
  /* row   4 */
  { ((MR_Box) ((MR_Integer) 1)) },
  /* row   5 */
  { (MR_Box) (((((MR_Unsigned) 1U << 1)) | (MR_Unsigned) 1U)) },
  /* row   6 */
  { (MR_Box) (((((MR_Unsigned) 0U << 4)) | (((((MR_Unsigned) 0U << 3)) | (((((MR_Unsigned) 0U << 2)) | (((MR_Unsigned) 0U << 1)))))))) },
};



#include "array.mh"
#include "bitmap.mh"
#include "io.mh"
#include "string.mh"
#include "time.mh"
#include "io.stream_ops.mh"
#include "mdbcomp.program_representation.mh"
#include "mdbcomp.rtti_access.mh"


static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_arg_info_0_0[2] = {
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_arg_loc_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_top_functor_mode_0)
};

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_arg_info_0_0[2] = {
  {
    (MR_Integer) 0,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 1,
    (MR_Integer) 0,
    (MR_Integer) 2
  }
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_arg_info_0_0 = {
  (MR_String) "arg_info",
  INT16_C(2),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(0),
  (MR_Integer) -1,
  INT32_C(0),
  hlds__hlds_pred__hlds__hlds_pred__field_types_arg_info_0_0,
  NULL,
  hlds__hlds_pred__hlds__hlds_pred__field_locns_arg_info_0_0,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_arg_info_0_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_arg_info_0_0 };

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_arg_info_0[1] = {
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_arg_info_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_arg_info_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_arg_info_0_0 };

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_arg_info_0[1] = { (MR_Integer) 0 };

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_arg_info_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(1),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (hlds__hlds_pred____Unify____arg_info_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____arg_info_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "arg_info",
  { hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_arg_info_0 },
  { hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_arg_info_0 },
  (MR_Integer) 1,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_arg_info_0,

};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_arg_loc_0_0[2] = {
  (MR_PseudoTypeInfo) (&hlds__hlds_llds__hlds__hlds_llds__type_ctor_info_reg_type_0),
  (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_int_0)
};

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_arg_loc_0_0[2] = {
  {
    (MR_Integer) 0,
    (MR_Integer) 0,
    (MR_Integer) 1
  },
  {
    (MR_Integer) 1,
    (MR_Integer) 0,
    (MR_Integer) 0
  }
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_arg_loc_0_0 = {
  (MR_String) "reg",
  INT16_C(2),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(0),
  (MR_Integer) -1,
  INT32_C(0),
  hlds__hlds_pred__hlds__hlds_pred__field_types_arg_loc_0_0,
  NULL,
  hlds__hlds_pred__hlds__hlds_pred__field_locns_arg_loc_0_0,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_arg_loc_0_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_arg_loc_0_0 };

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_arg_loc_0[1] = {
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_arg_loc_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_arg_loc_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_arg_loc_0_0 };

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_arg_loc_0[1] = { (MR_Integer) 0 };

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_arg_loc_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(1),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (hlds__hlds_pred____Unify____arg_loc_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____arg_loc_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "arg_loc",
  { hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_arg_loc_0 },
  { hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_arg_loc_0 },
  (MR_Integer) 1,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_arg_loc_0,

};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0 = {
  &mercury__term__term__type_ctor_info_var_1,
  { (MR_TypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_var_type_0) }
};

static const MR_FA_TypeInfo_Struct2 hlds__hlds_pred__tree234__ti_tree234_2term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0bool__type_ctor_info_bool_0 = {
  &mercury__tree234__tree234__type_ctor_info_tree234_2,
  {
    (MR_TypeInfo) (&hlds__hlds_pred__term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0),
    (MR_TypeInfo) (&mercury__bool__bool__type_ctor_info_bool_0)
  }
};

static const MR_FA_TypeInfo_Struct2 hlds__hlds_pred__pair__ti_pair_2tree234__ti_tree234_2term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0bool__type_ctor_info_bool_0tree234__ti_tree234_2term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0bool__type_ctor_info_bool_0 = {
  &mercury__pair__pair__type_ctor_info_pair_2,
  {
    (MR_TypeInfo) (&hlds__hlds_pred__tree234__ti_tree234_2term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0bool__type_ctor_info_bool_0),
    (MR_TypeInfo) (&hlds__hlds_pred__tree234__ti_tree234_2term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0bool__type_ctor_info_bool_0)
  }
};

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_arg_modes_map_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_EQUIV_GROUND,
  ((MR_Box) (hlds__hlds_pred____Unify____arg_modes_map_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____arg_modes_map_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "arg_modes_map",
  { NULL },
  { (MR_PseudoTypeInfo) (&hlds__hlds_pred__pair__ti_pair_2tree234__ti_tree234_2term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0bool__type_ctor_info_bool_0tree234__ti_tree234_2term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0bool__type_ctor_info_bool_0) },
  (MR_Integer) -1,
  UINT16_C(0),
  NULL,

};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_call_id_0_0[1] = { (MR_PseudoTypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_pf_sym_name_arity_0) };

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_call_id_0_0 = {
  (MR_String) "plain_call_id",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(0),
  (MR_Integer) -1,
  INT32_C(0),
  hlds__hlds_pred__hlds__hlds_pred__field_types_call_id_0_0,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_call_id_0_1[2] = {
  (MR_PseudoTypeInfo) (&parse_tree__var_db__parse_tree__var_db__type_ctor_info_var_name_source_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_goal__hlds__hlds_goal__type_ctor_info_generic_call_0)
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_call_id_0_1 = {
  (MR_String) "generic_call_id",
  INT16_C(2),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(1),
  (MR_Integer) -1,
  INT32_C(1),
  hlds__hlds_pred__hlds__hlds_pred__field_types_call_id_0_1,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_call_id_0_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_call_id_0_0 };

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_call_id_0_1[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_call_id_0_1 };

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_call_id_0[2] = {
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_call_id_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  },
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_call_id_0_1,
    INT8_C(-1),
    UINT8_C(1),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_call_id_0[2] = {
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_call_id_0_1,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_call_id_0_0
};

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_call_id_0[2] = {
  (MR_Integer) 1,
  (MR_Integer) 0
};

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_call_id_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(2),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (hlds__hlds_pred____Unify____call_id_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____call_id_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "call_id",
  { hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_call_id_0 },
  { hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_call_id_0 },
  (MR_Integer) 2,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_call_id_0,

};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_call_site_static_data_0_0[5] = {
  (MR_PseudoTypeInfo) (&hlds__hlds_rtti__hlds__hlds_rtti__type_ctor_info_rtti_proc_label_0),
  (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_string_0),
  (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_string_0),
  (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_int_0),
  (MR_PseudoTypeInfo) (&mdbcomp__goal_path__mdbcomp__goal_path__type_ctor_info_forward_goal_path_0)
};

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_call_site_static_data_0_0[5] = {
  (MR_String) "normal_callee",
  (MR_String) "normal_type_subst",
  (MR_String) "normal_file_name",
  (MR_String) "normal_line_number",
  (MR_String) "normal_goal_path"
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_call_site_static_data_0_0 = {
  (MR_String) "normal_call",
  INT16_C(5),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(0),
  (MR_Integer) -1,
  INT32_C(0),
  hlds__hlds_pred__hlds__hlds_pred__field_types_call_site_static_data_0_0,
  hlds__hlds_pred__hlds__hlds_pred__field_names_call_site_static_data_0_0,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_call_site_static_data_0_1[3] = {
  (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_string_0),
  (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_int_0),
  (MR_PseudoTypeInfo) (&mdbcomp__goal_path__mdbcomp__goal_path__type_ctor_info_forward_goal_path_0)
};

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_call_site_static_data_0_1[3] = {
  (MR_String) "special_file_name",
  (MR_String) "special_line_number",
  (MR_String) "special_goal_path"
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_call_site_static_data_0_1 = {
  (MR_String) "special_call",
  INT16_C(3),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(1),
  (MR_Integer) -1,
  INT32_C(1),
  hlds__hlds_pred__hlds__hlds_pred__field_types_call_site_static_data_0_1,
  hlds__hlds_pred__hlds__hlds_pred__field_names_call_site_static_data_0_1,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_call_site_static_data_0_2[3] = {
  (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_string_0),
  (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_int_0),
  (MR_PseudoTypeInfo) (&mdbcomp__goal_path__mdbcomp__goal_path__type_ctor_info_forward_goal_path_0)
};

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_call_site_static_data_0_2[3] = {
  (MR_String) "higher_order_file_name",
  (MR_String) "ho_line_number",
  (MR_String) "ho_goal_path"
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_call_site_static_data_0_2 = {
  (MR_String) "higher_order_call",
  INT16_C(3),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(2),
  (MR_Integer) -1,
  INT32_C(2),
  hlds__hlds_pred__hlds__hlds_pred__field_types_call_site_static_data_0_2,
  hlds__hlds_pred__hlds__hlds_pred__field_names_call_site_static_data_0_2,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_call_site_static_data_0_3[3] = {
  (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_string_0),
  (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_int_0),
  (MR_PseudoTypeInfo) (&mdbcomp__goal_path__mdbcomp__goal_path__type_ctor_info_forward_goal_path_0)
};

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_call_site_static_data_0_3[3] = {
  (MR_String) "method_file_name",
  (MR_String) "method_line_number",
  (MR_String) "method_goal_path"
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_call_site_static_data_0_3 = {
  (MR_String) "method_call",
  INT16_C(3),
  UINT16_C(0),
  MR_SECTAG_REMOTE_FULL_WORD,
  UINT8_C(3),
  (MR_Integer) 0,
  INT32_C(3),
  hlds__hlds_pred__hlds__hlds_pred__field_types_call_site_static_data_0_3,
  hlds__hlds_pred__hlds__hlds_pred__field_names_call_site_static_data_0_3,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_call_site_static_data_0_4[3] = {
  (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_string_0),
  (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_int_0),
  (MR_PseudoTypeInfo) (&mdbcomp__goal_path__mdbcomp__goal_path__type_ctor_info_forward_goal_path_0)
};

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_call_site_static_data_0_4[3] = {
  (MR_String) "callback_file_name",
  (MR_String) "callback_line_number",
  (MR_String) "callback_goal_path"
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_call_site_static_data_0_4 = {
  (MR_String) "callback",
  INT16_C(3),
  UINT16_C(0),
  MR_SECTAG_REMOTE_FULL_WORD,
  UINT8_C(3),
  (MR_Integer) 1,
  INT32_C(4),
  hlds__hlds_pred__hlds__hlds_pred__field_types_call_site_static_data_0_4,
  hlds__hlds_pred__hlds__hlds_pred__field_names_call_site_static_data_0_4,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_call_site_static_data_0_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_call_site_static_data_0_0 };

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_call_site_static_data_0_1[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_call_site_static_data_0_1 };

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_call_site_static_data_0_2[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_call_site_static_data_0_2 };

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_call_site_static_data_0_3[2] = {
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_call_site_static_data_0_3,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_call_site_static_data_0_4
};

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_call_site_static_data_0[4] = {
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_call_site_static_data_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  },
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_call_site_static_data_0_1,
    INT8_C(-1),
    UINT8_C(1),
    UINT8_C(1)
  },
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_call_site_static_data_0_2,
    INT8_C(-1),
    UINT8_C(2),
    UINT8_C(1)
  },
  {
    UINT32_C(2),
    MR_SECTAG_REMOTE_FULL_WORD,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_call_site_static_data_0_3,
    INT8_C(-1),
    UINT8_C(3),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_call_site_static_data_0[5] = {
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_call_site_static_data_0_4,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_call_site_static_data_0_2,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_call_site_static_data_0_3,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_call_site_static_data_0_0,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_call_site_static_data_0_1
};

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_call_site_static_data_0[5] = {
  (MR_Integer) 3,
  (MR_Integer) 4,
  (MR_Integer) 1,
  (MR_Integer) 2,
  (MR_Integer) 0
};

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_call_site_static_data_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(4),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (hlds__hlds_pred____Unify____call_site_static_data_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____call_site_static_data_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "call_site_static_data",
  { hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_call_site_static_data_0 },
  { hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_call_site_static_data_0 },
  (MR_Integer) 5,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_call_site_static_data_0,

};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_can_process_0_0 = {
  (MR_String) "cannot_process_yet",
  INT32_C(0)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_can_process_0_1 = {
  (MR_String) "can_process_now",
  INT32_C(1)
};

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_can_process_0[2] = {
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_can_process_0_0,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_can_process_0_1
};

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_can_process_0[2] = {
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_can_process_0_1,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_can_process_0_0
};

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_can_process_0[2] = {
  (MR_Integer) 1,
  (MR_Integer) 0
};

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_can_process_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_ENUM,
  ((MR_Box) (hlds__hlds_pred____Unify____can_process_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____can_process_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "can_process",
  { hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_can_process_0 },
  { hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_can_process_0 },
  (MR_Integer) 2,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_can_process_0,

};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_cur_user_decl_info_0_0[3] = {
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_decl_section_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_maybe_predmode_decl_0),
  (MR_PseudoTypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_item_seq_num_0)
};

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_cur_user_decl_info_0_0[3] = {
  {
    (MR_Integer) 0,
    (MR_Integer) 1,
    (MR_Integer) 1
  },
  {
    (MR_Integer) 0,
    (MR_Integer) 0,
    (MR_Integer) 1
  },
  {
    (MR_Integer) 1,
    (MR_Integer) 0,
    (MR_Integer) 0
  }
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_cur_user_decl_info_0_0 = {
  (MR_String) "cur_user_decl_info",
  INT16_C(3),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(0),
  (MR_Integer) -1,
  INT32_C(0),
  hlds__hlds_pred__hlds__hlds_pred__field_types_cur_user_decl_info_0_0,
  NULL,
  hlds__hlds_pred__hlds__hlds_pred__field_locns_cur_user_decl_info_0_0,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_cur_user_decl_info_0_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_cur_user_decl_info_0_0 };

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_cur_user_decl_info_0[1] = {
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_cur_user_decl_info_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_cur_user_decl_info_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_cur_user_decl_info_0_0 };

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_cur_user_decl_info_0[1] = { (MR_Integer) 0 };

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_cur_user_decl_info_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(1),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (hlds__hlds_pred____Unify____cur_user_decl_info_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____cur_user_decl_info_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "cur_user_decl_info",
  { hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_cur_user_decl_info_0 },
  { hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_cur_user_decl_info_0 },
  (MR_Integer) 1,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_cur_user_decl_info_0,

};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_decl_section_0_0 = {
  (MR_String) "decl_interface",
  INT32_C(0)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_decl_section_0_1 = {
  (MR_String) "decl_implementation",
  INT32_C(1)
};

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_decl_section_0[2] = {
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_decl_section_0_0,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_decl_section_0_1
};

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_decl_section_0[2] = {
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_decl_section_0_1,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_decl_section_0_0
};

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_decl_section_0[2] = {
  (MR_Integer) 1,
  (MR_Integer) 0
};

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_decl_section_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_ENUM,
  ((MR_Box) (hlds__hlds_pred____Unify____decl_section_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____decl_section_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "decl_section",
  { hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_decl_section_0 },
  { hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_decl_section_0 },
  (MR_Integer) 2,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_decl_section_0,

};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__list__ti_list_1term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0 = {
  &mercury__list__list__type_ctor_info_list_1,
  { (MR_TypeInfo) (&hlds__hlds_pred__term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0) }
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_deep_original_body_0_0[5] = {
  (MR_PseudoTypeInfo) (&hlds__hlds_goal__hlds__hlds_goal__type_ctor_info_hlds_goal_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__list__ti_list_1term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0),
  (MR_PseudoTypeInfo) (&hlds__instmap__hlds__instmap__type_ctor_info_instmap_0),
  (MR_PseudoTypeInfo) (&parse_tree__var_table__parse_tree__var_table__type_ctor_info_var_table_0),
  (MR_PseudoTypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_determinism_0)
};

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_deep_original_body_0_0[5] = {
  (MR_String) "dob_body",
  (MR_String) "dob_head_vars",
  (MR_String) "dob_instmap",
  (MR_String) "dob_var_table",
  (MR_String) "dob_detism"
};

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_deep_original_body_0_0[5] = {
  {
    (MR_Integer) 0,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 1,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 2,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 3,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 4,
    (MR_Integer) 0,
    (MR_Integer) 3
  }
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_deep_original_body_0_0 = {
  (MR_String) "deep_original_body",
  INT16_C(5),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(0),
  (MR_Integer) -1,
  INT32_C(0),
  hlds__hlds_pred__hlds__hlds_pred__field_types_deep_original_body_0_0,
  hlds__hlds_pred__hlds__hlds_pred__field_names_deep_original_body_0_0,
  hlds__hlds_pred__hlds__hlds_pred__field_locns_deep_original_body_0_0,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_deep_original_body_0_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_deep_original_body_0_0 };

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_deep_original_body_0[1] = {
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_deep_original_body_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_deep_original_body_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_deep_original_body_0_0 };

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_deep_original_body_0[1] = { (MR_Integer) 0 };

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_deep_original_body_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(1),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (hlds__hlds_pred____Unify____deep_original_body_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____deep_original_body_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "deep_original_body",
  { hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_deep_original_body_0 },
  { hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_deep_original_body_0 },
  (MR_Integer) 1,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_deep_original_body_0,

};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_deep_recursion_info_0 = {
  &mercury__maybe__maybe__type_ctor_info_maybe_1,
  { (MR_TypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_deep_recursion_info_0) }
};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_hlds_deep_layout_0 = {
  &mercury__maybe__maybe__type_ctor_info_maybe_1,
  { (MR_TypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_hlds_deep_layout_0) }
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_deep_profile_proc_info_0_0[3] = {
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_deep_recursion_info_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_hlds_deep_layout_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_deep_original_body_0)
};

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_deep_profile_proc_info_0_0[3] = {
  (MR_String) "deep_rec",
  (MR_String) "deep_layout",
  (MR_String) "deep_orig_body"
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_deep_profile_proc_info_0_0 = {
  (MR_String) "deep_profile_proc_info",
  INT16_C(3),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(0),
  (MR_Integer) -1,
  INT32_C(0),
  hlds__hlds_pred__hlds__hlds_pred__field_types_deep_profile_proc_info_0_0,
  hlds__hlds_pred__hlds__hlds_pred__field_names_deep_profile_proc_info_0_0,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_deep_profile_proc_info_0_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_deep_profile_proc_info_0_0 };

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_deep_profile_proc_info_0[1] = {
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_deep_profile_proc_info_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_deep_profile_proc_info_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_deep_profile_proc_info_0_0 };

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_deep_profile_proc_info_0[1] = { (MR_Integer) 0 };

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_deep_profile_proc_info_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(1),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (hlds__hlds_pred____Unify____deep_profile_proc_info_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____deep_profile_proc_info_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "deep_profile_proc_info",
  { hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_deep_profile_proc_info_0 },
  { hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_deep_profile_proc_info_0 },
  (MR_Integer) 1,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_deep_profile_proc_info_0,

};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_deep_profile_role_0_0[1] = { (MR_PseudoTypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_proc_id_0) };

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_deep_profile_role_0_0[1] = { (MR_String) "dpip_outer_proc" };

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_deep_profile_role_0_0 = {
  (MR_String) "deep_prof_inner_proc",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_NONE_DIRECT_ARG,
  UINT8_C(0),
  (MR_Integer) -1,
  INT32_C(0),
  hlds__hlds_pred__hlds__hlds_pred__field_types_deep_profile_role_0_0,
  hlds__hlds_pred__hlds__hlds_pred__field_names_deep_profile_role_0_0,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_deep_profile_role_0_1[1] = { (MR_PseudoTypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_proc_id_0) };

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_deep_profile_role_0_1[1] = { (MR_String) "dpop_inner_proc" };

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_deep_profile_role_0_1 = {
  (MR_String) "deep_prof_outer_proc",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_NONE_DIRECT_ARG,
  UINT8_C(1),
  (MR_Integer) -1,
  INT32_C(1),
  hlds__hlds_pred__hlds__hlds_pred__field_types_deep_profile_role_0_1,
  hlds__hlds_pred__hlds__hlds_pred__field_names_deep_profile_role_0_1,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_deep_profile_role_0_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_deep_profile_role_0_0 };

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_deep_profile_role_0_1[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_deep_profile_role_0_1 };

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_deep_profile_role_0[2] = {
  {
    UINT32_C(1),
    MR_SECTAG_NONE_DIRECT_ARG,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_deep_profile_role_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  },
  {
    UINT32_C(1),
    MR_SECTAG_NONE_DIRECT_ARG,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_deep_profile_role_0_1,
    INT8_C(-1),
    UINT8_C(1),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_deep_profile_role_0[2] = {
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_deep_profile_role_0_0,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_deep_profile_role_0_1
};

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_deep_profile_role_0[2] = {
  (MR_Integer) 0,
  (MR_Integer) 1
};

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_deep_profile_role_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(2),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (hlds__hlds_pred____Unify____deep_profile_role_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____deep_profile_role_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "deep_profile_role",
  { hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_deep_profile_role_0 },
  { hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_deep_profile_role_0 },
  (MR_Integer) 2,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_deep_profile_role_0,

};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__list__ti_list_1hlds__hlds_pred__type_ctor_info_visible_scc_data_0 = {
  &mercury__list__list__type_ctor_info_list_1,
  { (MR_TypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_visible_scc_data_0) }
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_deep_recursion_info_0_0[2] = {
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_deep_profile_role_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__list__ti_list_1hlds__hlds_pred__type_ctor_info_visible_scc_data_0)
};

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_deep_recursion_info_0_0[2] = {
  (MR_String) "dri_role",
  (MR_String) "dri_visible_scc"
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_deep_recursion_info_0_0 = {
  (MR_String) "deep_recursion_info",
  INT16_C(2),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(0),
  (MR_Integer) -1,
  INT32_C(0),
  hlds__hlds_pred__hlds__hlds_pred__field_types_deep_recursion_info_0_0,
  hlds__hlds_pred__hlds__hlds_pred__field_names_deep_recursion_info_0_0,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_deep_recursion_info_0_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_deep_recursion_info_0_0 };

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_deep_recursion_info_0[1] = {
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_deep_recursion_info_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_deep_recursion_info_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_deep_recursion_info_0_0 };

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_deep_recursion_info_0[1] = { (MR_Integer) 0 };

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_deep_recursion_info_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(1),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (hlds__hlds_pred____Unify____deep_recursion_info_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____deep_recursion_info_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "deep_recursion_info",
  { hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_deep_recursion_info_0 },
  { hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_deep_recursion_info_0 },
  (MR_Integer) 1,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_deep_recursion_info_0,

};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_detism_decl_0_0 = {
  (MR_String) "detism_decl_explicit",
  INT32_C(0)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_detism_decl_0_1 = {
  (MR_String) "detism_decl_implicit",
  INT32_C(1)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_detism_decl_0_2 = {
  (MR_String) "detism_decl_none",
  INT32_C(2)
};

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_detism_decl_0[3] = {
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_detism_decl_0_0,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_detism_decl_0_1,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_detism_decl_0_2
};

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_detism_decl_0[3] = {
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_detism_decl_0_0,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_detism_decl_0_1,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_detism_decl_0_2
};

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_detism_decl_0[3] = {
  (MR_Integer) 0,
  (MR_Integer) 1,
  (MR_Integer) 2
};

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_detism_decl_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_ENUM,
  ((MR_Box) (hlds__hlds_pred____Unify____detism_decl_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____detism_decl_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "detism_decl",
  { hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_detism_decl_0 },
  { hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_detism_decl_0 },
  (MR_Integer) 3,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_detism_decl_0,

};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__term__ti_var_1parse_tree__prog_data__type_ctor_info_tvar_type_0 = {
  &mercury__term__term__type_ctor_info_var_1,
  { (MR_TypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_tvar_type_0) }
};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__list__ti_list_1term__ti_var_1parse_tree__prog_data__type_ctor_info_tvar_type_0 = {
  &mercury__list__list__type_ctor_info_list_1,
  { (MR_TypeInfo) (&hlds__hlds_pred__term__ti_var_1parse_tree__prog_data__type_ctor_info_tvar_type_0) }
};

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_external_type_params_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_EQUIV_GROUND,
  ((MR_Box) (hlds__hlds_pred____Unify____external_type_params_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____external_type_params_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "external_type_params",
  { NULL },
  { (MR_PseudoTypeInfo) (&hlds__hlds_pred__list__ti_list_1term__ti_var_1parse_tree__prog_data__type_ctor_info_tvar_type_0) },
  (MR_Integer) -1,
  UINT16_C(0),
  NULL,

};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__one_or_more__ti_one_or_more_1parse_tree__prog_data_pragma__type_ctor_info_format_string_values_0 = {
  &mercury__one_or_more__one_or_more__type_ctor_info_one_or_more_1,
  { (MR_TypeInfo) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_format_string_values_0) }
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_format_call_info_0_0[2] = {
  (MR_PseudoTypeInfo) (&mercury__term_context__term_context__type_ctor_info_term_context_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__one_or_more__ti_one_or_more_1parse_tree__prog_data_pragma__type_ctor_info_format_string_values_0)
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_format_call_info_0_0 = {
  (MR_String) "format_call_info",
  INT16_C(2),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(0),
  (MR_Integer) -1,
  INT32_C(0),
  hlds__hlds_pred__hlds__hlds_pred__field_types_format_call_info_0_0,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_format_call_info_0_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_format_call_info_0_0 };

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_format_call_info_0[1] = {
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_format_call_info_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_format_call_info_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_format_call_info_0_0 };

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_format_call_info_0[1] = { (MR_Integer) 0 };

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_format_call_info_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(1),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (hlds__hlds_pred____Unify____format_call_info_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____format_call_info_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "format_call_info",
  { hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_format_call_info_0 },
  { hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_format_call_info_0 },
  (MR_Integer) 1,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_format_call_info_0,

};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_generic_call_id_0_0[3] = {
  (MR_PseudoTypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_purity_0),
  (MR_PseudoTypeInfo) (&mdbcomp__prim_data__mdbcomp__prim_data__type_ctor_info_pred_or_func_0),
  (MR_PseudoTypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_pred_form_arity_0)
};

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_generic_call_id_0_0[3] = {
  {
    (MR_Integer) 0,
    (MR_Integer) 1,
    (MR_Integer) 2
  },
  {
    (MR_Integer) 0,
    (MR_Integer) 0,
    (MR_Integer) 1
  },
  {
    (MR_Integer) 1,
    (MR_Integer) 0,
    (MR_Integer) 0
  }
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_generic_call_id_0_0 = {
  (MR_String) "gcid_higher_order",
  INT16_C(3),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(0),
  (MR_Integer) -1,
  INT32_C(0),
  hlds__hlds_pred__hlds__hlds_pred__field_types_generic_call_id_0_0,
  NULL,
  hlds__hlds_pred__hlds__hlds_pred__field_locns_generic_call_id_0_0,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_generic_call_id_0_1[2] = {
  (MR_PseudoTypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_class_id_0),
  (MR_PseudoTypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_pf_sym_name_arity_0)
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_generic_call_id_0_1 = {
  (MR_String) "gcid_class_method",
  INT16_C(2),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(1),
  (MR_Integer) -1,
  INT32_C(1),
  hlds__hlds_pred__hlds__hlds_pred__field_types_generic_call_id_0_1,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_generic_call_id_0_2[1] = { (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_string_0) };

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_generic_call_id_0_2 = {
  (MR_String) "gcid_event_call",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(2),
  (MR_Integer) -1,
  INT32_C(2),
  hlds__hlds_pred__hlds__hlds_pred__field_types_generic_call_id_0_2,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_generic_call_id_0_3[1] = { (MR_PseudoTypeInfo) (&hlds__hlds_goal__hlds__hlds_goal__type_ctor_info_cast_kind_0) };

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_generic_call_id_0_3[1] = {
  {
    (MR_Integer) 0,
    (MR_Integer) 0,
    (MR_Integer) 3
  }
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_generic_call_id_0_3 = {
  (MR_String) "gcid_cast",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(3),
  (MR_Integer) -1,
  INT32_C(3),
  hlds__hlds_pred__hlds__hlds_pred__field_types_generic_call_id_0_3,
  NULL,
  hlds__hlds_pred__hlds__hlds_pred__field_locns_generic_call_id_0_3,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_generic_call_id_0_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_generic_call_id_0_0 };

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_generic_call_id_0_1[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_generic_call_id_0_1 };

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_generic_call_id_0_2[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_generic_call_id_0_2 };

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_generic_call_id_0_3[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_generic_call_id_0_3 };

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_generic_call_id_0[4] = {
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_generic_call_id_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  },
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_generic_call_id_0_1,
    INT8_C(-1),
    UINT8_C(1),
    UINT8_C(1)
  },
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_generic_call_id_0_2,
    INT8_C(-1),
    UINT8_C(2),
    UINT8_C(1)
  },
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_generic_call_id_0_3,
    INT8_C(-1),
    UINT8_C(3),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_generic_call_id_0[4] = {
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_generic_call_id_0_3,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_generic_call_id_0_1,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_generic_call_id_0_2,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_generic_call_id_0_0
};

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_generic_call_id_0[4] = {
  (MR_Integer) 3,
  (MR_Integer) 1,
  (MR_Integer) 2,
  (MR_Integer) 0
};

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_generic_call_id_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(4),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (hlds__hlds_pred____Unify____generic_call_id_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____generic_call_id_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "generic_call_id",
  { hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_generic_call_id_0 },
  { hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_generic_call_id_0 },
  (MR_Integer) 4,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_generic_call_id_0,

};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_goal_type_0_0[1] = { (MR_PseudoTypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_np_goal_type_0) };

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_goal_type_0_0[1] = {
  {
    (MR_Integer) 0,
    (MR_Integer) 0,
    (MR_Integer) 2
  }
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_goal_type_0_0 = {
  (MR_String) "goal_not_for_promise",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(0),
  (MR_Integer) -1,
  INT32_C(0),
  hlds__hlds_pred__hlds__hlds_pred__field_types_goal_type_0_0,
  NULL,
  hlds__hlds_pred__hlds__hlds_pred__field_locns_goal_type_0_0,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_goal_type_0_1[1] = { (MR_PseudoTypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_promise_type_0) };

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_goal_type_0_1[1] = {
  {
    (MR_Integer) 0,
    (MR_Integer) 0,
    (MR_Integer) 2
  }
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_goal_type_0_1 = {
  (MR_String) "goal_for_promise",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(1),
  (MR_Integer) -1,
  INT32_C(1),
  hlds__hlds_pred__hlds__hlds_pred__field_types_goal_type_0_1,
  NULL,
  hlds__hlds_pred__hlds__hlds_pred__field_locns_goal_type_0_1,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_goal_type_0_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_goal_type_0_0 };

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_goal_type_0_1[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_goal_type_0_1 };

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_goal_type_0[2] = {
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_goal_type_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  },
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_goal_type_0_1,
    INT8_C(-1),
    UINT8_C(1),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_goal_type_0[2] = {
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_goal_type_0_1,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_goal_type_0_0
};

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_goal_type_0[2] = {
  (MR_Integer) 1,
  (MR_Integer) 0
};

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_goal_type_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(2),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (hlds__hlds_pred____Unify____goal_type_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____goal_type_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "goal_type",
  { hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_goal_type_0 },
  { hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_goal_type_0 },
  (MR_Integer) 2,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_goal_type_0,

};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_has_mutual_tail_rec_call_0_0 = {
  (MR_String) "has_mutual_tail_rec_call",
  INT32_C(0)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_has_mutual_tail_rec_call_0_1 = {
  (MR_String) "has_no_mutual_tail_rec_call",
  INT32_C(1)
};

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_has_mutual_tail_rec_call_0[2] = {
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_has_mutual_tail_rec_call_0_0,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_has_mutual_tail_rec_call_0_1
};

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_has_mutual_tail_rec_call_0[2] = {
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_has_mutual_tail_rec_call_0_0,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_has_mutual_tail_rec_call_0_1
};

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_has_mutual_tail_rec_call_0[2] = {
  (MR_Integer) 0,
  (MR_Integer) 1
};

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_has_mutual_tail_rec_call_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_ENUM,
  ((MR_Box) (hlds__hlds_pred____Unify____has_mutual_tail_rec_call_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____has_mutual_tail_rec_call_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "has_mutual_tail_rec_call",
  { hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_has_mutual_tail_rec_call_0 },
  { hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_has_mutual_tail_rec_call_0 },
  (MR_Integer) 2,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_has_mutual_tail_rec_call_0,

};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_has_parallel_conj_0_0 = {
  (MR_String) "has_parallel_conj",
  INT32_C(0)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_has_parallel_conj_0_1 = {
  (MR_String) "has_no_parallel_conj",
  INT32_C(1)
};

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_has_parallel_conj_0[2] = {
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_has_parallel_conj_0_0,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_has_parallel_conj_0_1
};

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_has_parallel_conj_0[2] = {
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_has_parallel_conj_0_1,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_has_parallel_conj_0_0
};

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_has_parallel_conj_0[2] = {
  (MR_Integer) 1,
  (MR_Integer) 0
};

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_has_parallel_conj_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_ENUM,
  ((MR_Box) (hlds__hlds_pred____Unify____has_parallel_conj_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____has_parallel_conj_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "has_parallel_conj",
  { hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_has_parallel_conj_0 },
  { hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_has_parallel_conj_0 },
  (MR_Integer) 2,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_has_parallel_conj_0,

};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_has_self_tail_rec_call_0_0 = {
  (MR_String) "has_self_tail_rec_call",
  INT32_C(0)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_has_self_tail_rec_call_0_1 = {
  (MR_String) "has_no_self_tail_rec_call",
  INT32_C(1)
};

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_has_self_tail_rec_call_0[2] = {
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_has_self_tail_rec_call_0_0,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_has_self_tail_rec_call_0_1
};

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_has_self_tail_rec_call_0[2] = {
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_has_self_tail_rec_call_0_1,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_has_self_tail_rec_call_0_0
};

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_has_self_tail_rec_call_0[2] = {
  (MR_Integer) 1,
  (MR_Integer) 0
};

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_has_self_tail_rec_call_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_ENUM,
  ((MR_Box) (hlds__hlds_pred____Unify____has_self_tail_rec_call_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____has_self_tail_rec_call_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "has_self_tail_rec_call",
  { hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_has_self_tail_rec_call_0 },
  { hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_has_self_tail_rec_call_0 },
  (MR_Integer) 2,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_has_self_tail_rec_call_0,

};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_has_tail_rec_call_0_0[2] = {
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_has_self_tail_rec_call_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_has_mutual_tail_rec_call_0)
};

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_has_tail_rec_call_0_0[2] = {
  {
    (MR_Integer) 0,
    (MR_Integer) 1,
    (MR_Integer) 1
  },
  {
    (MR_Integer) 0,
    (MR_Integer) 0,
    (MR_Integer) 1
  }
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_has_tail_rec_call_0_0 = {
  (MR_String) "has_tail_rec_call",
  INT16_C(2),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(0),
  (MR_Integer) -1,
  INT32_C(0),
  hlds__hlds_pred__hlds__hlds_pred__field_types_has_tail_rec_call_0_0,
  NULL,
  hlds__hlds_pred__hlds__hlds_pred__field_locns_has_tail_rec_call_0_0,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_has_tail_rec_call_0_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_has_tail_rec_call_0_0 };

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_has_tail_rec_call_0[1] = {
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_has_tail_rec_call_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_has_tail_rec_call_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_has_tail_rec_call_0_0 };

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_has_tail_rec_call_0[1] = { (MR_Integer) 0 };

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_has_tail_rec_call_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(1),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (hlds__hlds_pred____Unify____has_tail_rec_call_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____has_tail_rec_call_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "has_tail_rec_call",
  { hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_has_tail_rec_call_0 },
  { hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_has_tail_rec_call_0 },
  (MR_Integer) 1,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_has_tail_rec_call_0,

};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_has_user_event_0_0 = {
  (MR_String) "has_user_event",
  INT32_C(0)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_has_user_event_0_1 = {
  (MR_String) "has_no_user_event",
  INT32_C(1)
};

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_has_user_event_0[2] = {
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_has_user_event_0_0,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_has_user_event_0_1
};

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_has_user_event_0[2] = {
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_has_user_event_0_1,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_has_user_event_0_0
};

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_has_user_event_0[2] = {
  (MR_Integer) 1,
  (MR_Integer) 0
};

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_has_user_event_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_ENUM,
  ((MR_Box) (hlds__hlds_pred____Unify____has_user_event_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____has_user_event_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "has_user_event",
  { hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_has_user_event_0 },
  { hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_has_user_event_0 },
  (MR_Integer) 2,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_has_user_event_0,

};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0 = {
  &mercury__maybe__maybe__type_ctor_info_maybe_1,
  { (MR_TypeInfo) (&hlds__hlds_pred__term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0) }
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_hlds_deep_excp_vars_0_0[3] = {
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__maybe__ti_maybe_1term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0)
};

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_hlds_deep_excp_vars_0_0[3] = {
  (MR_String) "top_csd",
  (MR_String) "middle_csd",
  (MR_String) "old_outermost"
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_hlds_deep_excp_vars_0_0 = {
  (MR_String) "hlds_deep_excp_vars",
  INT16_C(3),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(0),
  (MR_Integer) -1,
  INT32_C(0),
  hlds__hlds_pred__hlds__hlds_pred__field_types_hlds_deep_excp_vars_0_0,
  hlds__hlds_pred__hlds__hlds_pred__field_names_hlds_deep_excp_vars_0_0,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_hlds_deep_excp_vars_0_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_hlds_deep_excp_vars_0_0 };

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_hlds_deep_excp_vars_0[1] = {
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_hlds_deep_excp_vars_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_hlds_deep_excp_vars_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_hlds_deep_excp_vars_0_0 };

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_hlds_deep_excp_vars_0[1] = { (MR_Integer) 0 };

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_hlds_deep_excp_vars_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(1),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (hlds__hlds_pred____Unify____hlds_deep_excp_vars_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____hlds_deep_excp_vars_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "hlds_deep_excp_vars",
  { hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_hlds_deep_excp_vars_0 },
  { hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_hlds_deep_excp_vars_0 },
  (MR_Integer) 1,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_hlds_deep_excp_vars_0,

};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_hlds_deep_layout_0_0[2] = {
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_hlds_proc_static_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_hlds_deep_excp_vars_0)
};

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_hlds_deep_layout_0_0[2] = {
  (MR_String) "deep_layout_static",
  (MR_String) "deep_layout_excp"
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_hlds_deep_layout_0_0 = {
  (MR_String) "hlds_deep_layout",
  INT16_C(2),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(0),
  (MR_Integer) -1,
  INT32_C(0),
  hlds__hlds_pred__hlds__hlds_pred__field_types_hlds_deep_layout_0_0,
  hlds__hlds_pred__hlds__hlds_pred__field_names_hlds_deep_layout_0_0,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_hlds_deep_layout_0_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_hlds_deep_layout_0_0 };

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_hlds_deep_layout_0[1] = {
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_hlds_deep_layout_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_hlds_deep_layout_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_hlds_deep_layout_0_0 };

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_hlds_deep_layout_0[1] = { (MR_Integer) 0 };

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_hlds_deep_layout_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(1),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (hlds__hlds_pred____Unify____hlds_deep_layout_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____hlds_deep_layout_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "hlds_deep_layout",
  { hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_hlds_deep_layout_0 },
  { hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_hlds_deep_layout_0 },
  (MR_Integer) 1,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_hlds_deep_layout_0,

};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__list__ti_list_1hlds__hlds_pred__type_ctor_info_call_site_static_data_0 = {
  &mercury__list__list__type_ctor_info_list_1,
  { (MR_TypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_call_site_static_data_0) }
};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__list__ti_list_1mdbcomp__program_representation__type_ctor_info_coverage_point_info_0 = {
  &mercury__list__list__type_ctor_info_list_1,
  { (MR_TypeInfo) (&mdbcomp__program_representation__mdbcomp__program_representation__type_ctor_info_coverage_point_info_0) }
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_hlds_proc_static_0_0[5] = {
  (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_string_0),
  (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_int_0),
  (MR_PseudoTypeInfo) (&mercury__bool__bool__type_ctor_info_bool_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__list__ti_list_1hlds__hlds_pred__type_ctor_info_call_site_static_data_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__list__ti_list_1mdbcomp__program_representation__type_ctor_info_coverage_point_info_0)
};

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_hlds_proc_static_0_0[5] = {
  (MR_String) "proc_static_file_name",
  (MR_String) "proc_static_line_number",
  (MR_String) "proc_is_in_interface",
  (MR_String) "call_site_statics",
  (MR_String) "coverage_points"
};

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_hlds_proc_static_0_0[5] = {
  {
    (MR_Integer) 0,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 1,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 2,
    (MR_Integer) 0,
    (MR_Integer) 1
  },
  {
    (MR_Integer) 3,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 4,
    (MR_Integer) 0,
    (MR_Integer) 0
  }
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_hlds_proc_static_0_0 = {
  (MR_String) "hlds_proc_static",
  INT16_C(5),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(0),
  (MR_Integer) -1,
  INT32_C(0),
  hlds__hlds_pred__hlds__hlds_pred__field_types_hlds_proc_static_0_0,
  hlds__hlds_pred__hlds__hlds_pred__field_names_hlds_proc_static_0_0,
  hlds__hlds_pred__hlds__hlds_pred__field_locns_hlds_proc_static_0_0,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_hlds_proc_static_0_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_hlds_proc_static_0_0 };

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_hlds_proc_static_0[1] = {
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_hlds_proc_static_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_hlds_proc_static_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_hlds_proc_static_0_0 };

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_hlds_proc_static_0[1] = { (MR_Integer) 0 };

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_hlds_proc_static_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(1),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (hlds__hlds_pred____Unify____hlds_proc_static_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____hlds_proc_static_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "hlds_proc_static",
  { hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_hlds_proc_static_0 },
  { hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_hlds_proc_static_0 },
  (MR_Integer) 1,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_hlds_proc_static_0,

};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_implementation_language_0_0 = {
  (MR_String) "impl_lang_mercury",
  INT16_C(0),
  UINT16_C(0),
  MR_SECTAG_LOCAL_REST_OF_WORD,
  UINT8_C(0),
  (MR_Integer) 0,
  INT32_C(0),
  NULL,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_implementation_language_0_1[1] = { (MR_PseudoTypeInfo) (&libs__globals__libs__globals__type_ctor_info_foreign_language_0) };

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_implementation_language_0_1[1] = {
  {
    (MR_Integer) 0,
    (MR_Integer) 0,
    (MR_Integer) 2
  }
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_implementation_language_0_1 = {
  (MR_String) "impl_lang_foreign",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(1),
  (MR_Integer) -1,
  INT32_C(1),
  hlds__hlds_pred__hlds__hlds_pred__field_types_implementation_language_0_1,
  NULL,
  hlds__hlds_pred__hlds__hlds_pred__field_locns_implementation_language_0_1,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_implementation_language_0_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_implementation_language_0_0 };

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_implementation_language_0_1[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_implementation_language_0_1 };

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_implementation_language_0[2] = {
  {
    UINT32_C(1),
    MR_SECTAG_LOCAL_REST_OF_WORD,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_implementation_language_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  },
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_implementation_language_0_1,
    INT8_C(-1),
    UINT8_C(1),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_implementation_language_0[2] = {
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_implementation_language_0_1,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_implementation_language_0_0
};

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_implementation_language_0[2] = {
  (MR_Integer) 1,
  (MR_Integer) 0
};

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_implementation_language_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(2),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (hlds__hlds_pred____Unify____implementation_language_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____implementation_language_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "implementation_language",
  { hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_implementation_language_0 },
  { hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_implementation_language_0 },
  (MR_Integer) 2,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_implementation_language_0,

};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__list__ti_list_1parse_tree__prog_data__type_ctor_info_mer_type_0 = {
  &mercury__list__list__type_ctor_info_list_1,
  { (MR_TypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_type_0) }
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_imported_reuse_0_0[3] = {
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__list__ti_list_1term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__list__ti_list_1parse_tree__prog_data__type_ctor_info_mer_type_0),
  (MR_PseudoTypeInfo) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_structure_reuse_domain_0)
};

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_imported_reuse_0_0[3] = {
  (MR_String) "r_headvars",
  (MR_String) "r_types",
  (MR_String) "r_reuse"
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_imported_reuse_0_0 = {
  (MR_String) "imported_reuse",
  INT16_C(3),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(0),
  (MR_Integer) -1,
  INT32_C(0),
  hlds__hlds_pred__hlds__hlds_pred__field_types_imported_reuse_0_0,
  hlds__hlds_pred__hlds__hlds_pred__field_names_imported_reuse_0_0,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_imported_reuse_0_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_imported_reuse_0_0 };

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_imported_reuse_0[1] = {
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_imported_reuse_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_imported_reuse_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_imported_reuse_0_0 };

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_imported_reuse_0[1] = { (MR_Integer) 0 };

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_imported_reuse_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(1),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (hlds__hlds_pred____Unify____imported_reuse_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____imported_reuse_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "imported_reuse",
  { hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_imported_reuse_0 },
  { hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_imported_reuse_0 },
  (MR_Integer) 1,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_imported_reuse_0,

};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_imported_sharing_0_0[3] = {
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__list__ti_list_1term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__list__ti_list_1parse_tree__prog_data__type_ctor_info_mer_type_0),
  (MR_PseudoTypeInfo) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_structure_sharing_domain_0)
};

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_imported_sharing_0_0[3] = {
  (MR_String) "s_headvars",
  (MR_String) "s_types",
  (MR_String) "s_sharing"
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_imported_sharing_0_0 = {
  (MR_String) "imported_sharing",
  INT16_C(3),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(0),
  (MR_Integer) -1,
  INT32_C(0),
  hlds__hlds_pred__hlds__hlds_pred__field_types_imported_sharing_0_0,
  hlds__hlds_pred__hlds__hlds_pred__field_names_imported_sharing_0_0,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_imported_sharing_0_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_imported_sharing_0_0 };

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_imported_sharing_0[1] = {
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_imported_sharing_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_imported_sharing_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_imported_sharing_0_0 };

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_imported_sharing_0[1] = { (MR_Integer) 0 };

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_imported_sharing_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(1),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (hlds__hlds_pred____Unify____imported_sharing_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____imported_sharing_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "imported_sharing",
  { hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_imported_sharing_0 },
  { hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_imported_sharing_0 },
  (MR_Integer) 1,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_imported_sharing_0,

};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_is_address_taken_0_0 = {
  (MR_String) "address_is_taken",
  INT32_C(0)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_is_address_taken_0_1 = {
  (MR_String) "address_is_not_taken",
  INT32_C(1)
};

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_is_address_taken_0[2] = {
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_is_address_taken_0_0,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_is_address_taken_0_1
};

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_is_address_taken_0[2] = {
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_is_address_taken_0_1,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_is_address_taken_0_0
};

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_is_address_taken_0[2] = {
  (MR_Integer) 1,
  (MR_Integer) 0
};

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_is_address_taken_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_ENUM,
  ((MR_Box) (hlds__hlds_pred____Unify____is_address_taken_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____is_address_taken_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "is_address_taken",
  { hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_is_address_taken_0 },
  { hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_is_address_taken_0 },
  (MR_Integer) 2,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_is_address_taken_0,

};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__sparse_bitset__ti_sparse_bitset_1term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0 = {
  &mercury__sparse_bitset__sparse_bitset__type_ctor_info_sparse_bitset_1,
  { (MR_TypeInfo) (&hlds__hlds_pred__term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0) }
};

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_liveness_info_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_EQUIV_GROUND,
  ((MR_Box) (hlds__hlds_pred____Unify____liveness_info_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____liveness_info_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "liveness_info",
  { NULL },
  { (MR_PseudoTypeInfo) (&hlds__hlds_pred__sparse_bitset__ti_sparse_bitset_1term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0) },
  (MR_Integer) -1,
  UINT16_C(0),
  NULL,

};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_maybe_predmode_decl_0_0 = {
  (MR_String) "no_predmode_decl",
  INT32_C(0)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_maybe_predmode_decl_0_1 = {
  (MR_String) "predmode_decl",
  INT32_C(1)
};

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_maybe_predmode_decl_0[2] = {
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_maybe_predmode_decl_0_0,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_maybe_predmode_decl_0_1
};

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_maybe_predmode_decl_0[2] = {
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_maybe_predmode_decl_0_0,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_maybe_predmode_decl_0_1
};

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_maybe_predmode_decl_0[2] = {
  (MR_Integer) 0,
  (MR_Integer) 1
};

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_maybe_predmode_decl_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_ENUM,
  ((MR_Box) (hlds__hlds_pred____Unify____maybe_predmode_decl_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____maybe_predmode_decl_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "maybe_predmode_decl",
  { hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_maybe_predmode_decl_0 },
  { hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_maybe_predmode_decl_0 },
  (MR_Integer) 2,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_maybe_predmode_decl_0,

};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_needs_maxfr_slot_0_0 = {
  (MR_String) "needs_maxfr_slot",
  INT32_C(0)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_needs_maxfr_slot_0_1 = {
  (MR_String) "does_not_need_maxfr_slot",
  INT32_C(1)
};

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_needs_maxfr_slot_0[2] = {
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_needs_maxfr_slot_0_0,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_needs_maxfr_slot_0_1
};

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_needs_maxfr_slot_0[2] = {
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_needs_maxfr_slot_0_1,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_needs_maxfr_slot_0_0
};

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_needs_maxfr_slot_0[2] = {
  (MR_Integer) 1,
  (MR_Integer) 0
};

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_needs_maxfr_slot_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_ENUM,
  ((MR_Box) (hlds__hlds_pred____Unify____needs_maxfr_slot_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____needs_maxfr_slot_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "needs_maxfr_slot",
  { hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_needs_maxfr_slot_0 },
  { hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_needs_maxfr_slot_0 },
  (MR_Integer) 2,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_needs_maxfr_slot_0,

};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_np_goal_type_0_0 = {
  (MR_String) "np_goal_type_none",
  INT32_C(0)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_np_goal_type_0_1 = {
  (MR_String) "np_goal_type_clause",
  INT32_C(1)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_np_goal_type_0_2 = {
  (MR_String) "np_goal_type_foreign",
  INT32_C(2)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_np_goal_type_0_3 = {
  (MR_String) "np_goal_type_clause_and_foreign",
  INT32_C(3)
};

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_np_goal_type_0[4] = {
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_np_goal_type_0_0,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_np_goal_type_0_1,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_np_goal_type_0_2,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_np_goal_type_0_3
};

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_np_goal_type_0[4] = {
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_np_goal_type_0_1,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_np_goal_type_0_3,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_np_goal_type_0_2,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_np_goal_type_0_0
};

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_np_goal_type_0[4] = {
  (MR_Integer) 3,
  (MR_Integer) 0,
  (MR_Integer) 2,
  (MR_Integer) 1
};

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_np_goal_type_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_ENUM,
  ((MR_Box) (hlds__hlds_pred____Unify____np_goal_type_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____np_goal_type_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "np_goal_type",
  { hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_np_goal_type_0 },
  { hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_np_goal_type_0 },
  (MR_Integer) 4,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_np_goal_type_0,

};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_oisu_pred_kind_for_0_0[1] = { (MR_PseudoTypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_type_ctor_0) };

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_oisu_pred_kind_for_0_0 = {
  (MR_String) "oisu_creator_for",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(0),
  (MR_Integer) -1,
  INT32_C(0),
  hlds__hlds_pred__hlds__hlds_pred__field_types_oisu_pred_kind_for_0_0,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_oisu_pred_kind_for_0_1[1] = { (MR_PseudoTypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_type_ctor_0) };

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_oisu_pred_kind_for_0_1 = {
  (MR_String) "oisu_mutator_for",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(1),
  (MR_Integer) -1,
  INT32_C(1),
  hlds__hlds_pred__hlds__hlds_pred__field_types_oisu_pred_kind_for_0_1,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_oisu_pred_kind_for_0_2[1] = { (MR_PseudoTypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_type_ctor_0) };

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_oisu_pred_kind_for_0_2 = {
  (MR_String) "oisu_destructor_for",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(2),
  (MR_Integer) -1,
  INT32_C(2),
  hlds__hlds_pred__hlds__hlds_pred__field_types_oisu_pred_kind_for_0_2,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_oisu_pred_kind_for_0_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_oisu_pred_kind_for_0_0 };

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_oisu_pred_kind_for_0_1[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_oisu_pred_kind_for_0_1 };

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_oisu_pred_kind_for_0_2[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_oisu_pred_kind_for_0_2 };

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_oisu_pred_kind_for_0[3] = {
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_oisu_pred_kind_for_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  },
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_oisu_pred_kind_for_0_1,
    INT8_C(-1),
    UINT8_C(1),
    UINT8_C(1)
  },
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_oisu_pred_kind_for_0_2,
    INT8_C(-1),
    UINT8_C(2),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_oisu_pred_kind_for_0[3] = {
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_oisu_pred_kind_for_0_0,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_oisu_pred_kind_for_0_2,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_oisu_pred_kind_for_0_1
};

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_oisu_pred_kind_for_0[3] = {
  (MR_Integer) 0,
  (MR_Integer) 2,
  (MR_Integer) 1
};

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_oisu_pred_kind_for_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(3),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (hlds__hlds_pred____Unify____oisu_pred_kind_for_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____oisu_pred_kind_for_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "oisu_pred_kind_for",
  { hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_oisu_pred_kind_for_0 },
  { hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_oisu_pred_kind_for_0 },
  (MR_Integer) 3,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_oisu_pred_kind_for_0,

};

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_pred_id_0[1] = { (MR_Integer) 0 };

static const MR_NotagFunctorDesc hlds__hlds_pred__hlds__hlds_pred__notag_functor_desc_pred_id_0 = {
  (MR_String) "pred_id",
  (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_int_0),
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE
};

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_id_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_NOTAG_GROUND,
  ((MR_Box) (hlds__hlds_pred____Unify____pred_id_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____pred_id_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "pred_id",
  { &hlds__hlds_pred__hlds__hlds_pred__notag_functor_desc_pred_id_0 },
  { &hlds__hlds_pred__hlds__hlds_pred__notag_functor_desc_pred_id_0 },
  (MR_Integer) 1,
  UINT16_C(4),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_pred_id_0,

};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__set_ordlist__ti_set_ordlist_1hlds__hlds_markers__type_ctor_info_pred_marker_0 = {
  &mercury__set_ordlist__set_ordlist__type_ctor_info_set_ordlist_1,
  { (MR_TypeInfo) (&hlds__hlds_markers__hlds__hlds_markers__type_ctor_info_pred_marker_0) }
};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__varset__ti_varset_1parse_tree__prog_data__type_ctor_info_tvar_type_0 = {
  &mercury__varset__varset__type_ctor_info_varset_1,
  { (MR_TypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_tvar_type_0) }
};

static const MR_FA_TypeInfo_Struct2 hlds__hlds_pred__tree234__ti_tree234_2builtin__type_ctor_info_int_0hlds__hlds_pred__type_ctor_info_proc_info_0 = {
  &mercury__tree234__tree234__type_ctor_info_tree234_2,
  {
    (MR_TypeInfo) (&mercury__builtin__builtin__type_ctor_info_int_0),
    (MR_TypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_info_0)
  }
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_pred_info_0_0[15] = {
  (MR_PseudoTypeInfo) (&mdbcomp__sym_name__mdbcomp__sym_name__type_ctor_info_sym_name_0),
  (MR_PseudoTypeInfo) (&mdbcomp__prim_data__mdbcomp__prim_data__type_ctor_info_pred_or_func_0),
  (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_string_0),
  (MR_PseudoTypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_pred_form_arity_0),
  (MR_PseudoTypeInfo) (&hlds__pred_name__hlds__pred_name__type_ctor_info_pred_origin_0),
  (MR_PseudoTypeInfo) (&hlds__status__hlds__status__type_ctor_info_pred_status_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__set_ordlist__ti_set_ordlist_1hlds__hlds_markers__type_ctor_info_pred_marker_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__list__ti_list_1parse_tree__prog_data__type_ctor_info_mer_type_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__varset__ti_varset_1parse_tree__prog_data__type_ctor_info_tvar_type_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__varset__ti_varset_1parse_tree__prog_data__type_ctor_info_tvar_type_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__list__ti_list_1term__ti_var_1parse_tree__prog_data__type_ctor_info_tvar_type_0),
  (MR_PseudoTypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_univ_exist_constraints_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_clauses__hlds__hlds_clauses__type_ctor_info_clauses_info_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__tree234__ti_tree234_2builtin__type_ctor_info_int_0hlds__hlds_pred__type_ctor_info_proc_info_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_sub_info_0)
};

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_pred_info_0_0[15] = {
  (MR_String) "pi_module_name",
  (MR_String) "pi_is_pred_or_func",
  (MR_String) "pi_name",
  (MR_String) "pi_orig_arity",
  (MR_String) "pi_pred_origin",
  (MR_String) "pi_status",
  (MR_String) "pi_markers",
  (MR_String) "pi_arg_types",
  (MR_String) "pi_decl_typevarset",
  (MR_String) "pi_typevarset",
  (MR_String) "pi_exist_quant_tvars",
  (MR_String) "pi_class_context",
  (MR_String) "pi_clauses_info",
  (MR_String) "pi_proc_table",
  (MR_String) "pi_pred_sub_info"
};

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_pred_info_0_0[15] = {
  {
    (MR_Integer) 0,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 1,
    (MR_Integer) 0,
    (MR_Integer) 1
  },
  {
    (MR_Integer) 2,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 3,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 4,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 5,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 6,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 7,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 8,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 9,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 10,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 11,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 12,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 13,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 14,
    (MR_Integer) 0,
    (MR_Integer) 0
  }
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_info_0_0 = {
  (MR_String) "pred_info",
  INT16_C(15),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(0),
  (MR_Integer) -1,
  INT32_C(0),
  hlds__hlds_pred__hlds__hlds_pred__field_types_pred_info_0_0,
  hlds__hlds_pred__hlds__hlds_pred__field_names_pred_info_0_0,
  hlds__hlds_pred__hlds__hlds_pred__field_locns_pred_info_0_0,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_pred_info_0_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_info_0_0 };

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_pred_info_0[1] = {
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_pred_info_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_pred_info_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_info_0_0 };

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_pred_info_0[1] = { (MR_Integer) 0 };

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_info_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(1),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (hlds__hlds_pred____Unify____pred_info_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____pred_info_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "pred_info",
  { hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_pred_info_0 },
  { hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_pred_info_0 },
  (MR_Integer) 1,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_pred_info_0,

};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_pred_proc_id_0_0[2] = {
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_id_0),
  (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_int_0)
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_proc_id_0_0 = {
  (MR_String) "proc",
  INT16_C(2),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(0),
  (MR_Integer) -1,
  INT32_C(0),
  hlds__hlds_pred__hlds__hlds_pred__field_types_pred_proc_id_0_0,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_pred_proc_id_0_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_proc_id_0_0 };

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_pred_proc_id_0[1] = {
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_pred_proc_id_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_pred_proc_id_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_proc_id_0_0 };

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_pred_proc_id_0[1] = { (MR_Integer) 0 };

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_proc_id_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(1),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (hlds__hlds_pred____Unify____pred_proc_id_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____pred_proc_id_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "pred_proc_id",
  { hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_pred_proc_id_0 },
  { hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_pred_proc_id_0 },
  (MR_Integer) 1,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_pred_proc_id_0,

};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_cur_user_decl_info_0 = {
  &mercury__maybe__maybe__type_ctor_info_maybe_1,
  { (MR_TypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_cur_user_decl_info_0) }
};

static const MR_FA_TypeInfo_Struct2 hlds__hlds_pred__tree234__ti_tree234_2term__ti_var_1parse_tree__prog_data__type_ctor_info_tvar_type_0parse_tree__prog_data__type_ctor_info_kind_0 = {
  &mercury__tree234__tree234__type_ctor_info_tree234_2,
  {
    (MR_TypeInfo) (&hlds__hlds_pred__term__ti_var_1parse_tree__prog_data__type_ctor_info_tvar_type_0),
    (MR_TypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_kind_0)
  }
};

static const MR_FA_TypeInfo_Struct2 hlds__hlds_pred__tree234__ti_tree234_2term__ti_var_1parse_tree__prog_data__type_ctor_info_tvar_type_0parse_tree__prog_data__type_ctor_info_mer_type_0 = {
  &mercury__tree234__tree234__type_ctor_info_tree234_2,
  {
    (MR_TypeInfo) (&hlds__hlds_pred__term__ti_var_1parse_tree__prog_data__type_ctor_info_tvar_type_0),
    (MR_TypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_type_0)
  }
};

static const MR_FA_TypeInfo_Struct2 hlds__hlds_pred__tree234__ti_tree234_2parse_tree__prog_data__type_ctor_info_prog_constraint_0hlds__hlds_class__type_ctor_info_constraint_proof_0 = {
  &mercury__tree234__tree234__type_ctor_info_tree234_2,
  {
    (MR_TypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_constraint_0),
    (MR_TypeInfo) (&hlds__hlds_class__hlds__hlds_class__type_ctor_info_constraint_proof_0)
  }
};

static const MR_FA_TypeInfo_Struct2 hlds__hlds_pred__tree234__ti_tree234_2hlds__hlds_class__type_ctor_info_constraint_id_0parse_tree__prog_data__type_ctor_info_prog_constraint_0 = {
  &mercury__tree234__tree234__type_ctor_info_tree234_2,
  {
    (MR_TypeInfo) (&hlds__hlds_class__hlds__hlds_class__type_ctor_info_constraint_id_0),
    (MR_TypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_constraint_0)
  }
};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__list__ti_list_1parse_tree__prog_data__type_ctor_info_prog_constraint_0 = {
  &mercury__list__list__type_ctor_info_list_1,
  { (MR_TypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_constraint_0) }
};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__list__ti_list_1pair__ti_pair_2tree234__ti_tree234_2term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0bool__type_ctor_info_bool_0tree234__ti_tree234_2term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0bool__type_ctor_info_bool_0 = {
  &mercury__list__list__type_ctor_info_list_1,
  { (MR_TypeInfo) (&hlds__hlds_pred__pair__ti_pair_2tree234__ti_tree234_2term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0bool__type_ctor_info_bool_0tree234__ti_tree234_2term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0bool__type_ctor_info_bool_0) }
};

static const MR_FA_TypeInfo_Struct2 hlds__hlds_pred__tree234__ti_tree234_2term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0builtin__type_ctor_info_string_0 = {
  &mercury__tree234__tree234__type_ctor_info_tree234_2,
  {
    (MR_TypeInfo) (&hlds__hlds_pred__term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0),
    (MR_TypeInfo) (&mercury__builtin__builtin__type_ctor_info_string_0)
  }
};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__set_ordlist__ti_set_ordlist_1hlds__hlds_promise__type_ctor_info_assert_id_0 = {
  &mercury__set_ordlist__set_ordlist__type_ctor_info_set_ordlist_1,
  { (MR_TypeInfo) (&hlds__hlds_promise__hlds__hlds_promise__type_ctor_info_assert_id_0) }
};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__list__ti_list_1parse_tree__prog_data__type_ctor_info_sym_name_arity_0 = {
  &mercury__list__list__type_ctor_info_list_1,
  { (MR_TypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_sym_name_arity_0) }
};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1list__ti_list_1parse_tree__prog_data__type_ctor_info_sym_name_arity_0 = {
  &mercury__maybe__maybe__type_ctor_info_maybe_1,
  { (MR_TypeInfo) (&hlds__hlds_pred__list__ti_list_1parse_tree__prog_data__type_ctor_info_sym_name_arity_0) }
};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_format_call_info_0 = {
  &mercury__maybe__maybe__type_ctor_info_maybe_1,
  { (MR_TypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_format_call_info_0) }
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_pred_sub_info_0_0[17] = {
  (MR_PseudoTypeInfo) (&mercury__term_context__term_context__type_ctor_info_term_context_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_cur_user_decl_info_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_goal_type_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__tree234__ti_tree234_2term__ti_var_1parse_tree__prog_data__type_ctor_info_tvar_type_0parse_tree__prog_data__type_ctor_info_kind_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__tree234__ti_tree234_2term__ti_var_1parse_tree__prog_data__type_ctor_info_tvar_type_0parse_tree__prog_data__type_ctor_info_mer_type_0),
  (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_int_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__list__ti_list_1term__ti_var_1parse_tree__prog_data__type_ctor_info_tvar_type_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__tree234__ti_tree234_2parse_tree__prog_data__type_ctor_info_prog_constraint_0hlds__hlds_class__type_ctor_info_constraint_proof_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__tree234__ti_tree234_2hlds__hlds_class__type_ctor_info_constraint_id_0parse_tree__prog_data__type_ctor_info_prog_constraint_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__list__ti_list_1parse_tree__prog_data__type_ctor_info_prog_constraint_0),
  (MR_PseudoTypeInfo) (&hlds__inst_graph__hlds__inst_graph__type_ctor_info_inst_graph_info_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__list__ti_list_1pair__ti_pair_2tree234__ti_tree234_2term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0bool__type_ctor_info_bool_0tree234__ti_tree234_2term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0bool__type_ctor_info_bool_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__tree234__ti_tree234_2term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0builtin__type_ctor_info_string_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__set_ordlist__ti_set_ordlist_1hlds__hlds_promise__type_ctor_info_assert_id_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__maybe__ti_maybe_1list__ti_list_1parse_tree__prog_data__type_ctor_info_sym_name_arity_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_format_call_info_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__list__ti_list_1parse_tree__prog_data__type_ctor_info_mer_type_0)
};

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_pred_sub_info_0_0[17] = {
  (MR_String) "psi_context",
  (MR_String) "psi_cur_user_decl",
  (MR_String) "psi_goal_type",
  (MR_String) "psi_tvar_kind_map",
  (MR_String) "psi_existq_tvar_binding",
  (MR_String) "psi_polymorphism_added_args",
  (MR_String) "psi_external_type_params",
  (MR_String) "psi_constraint_proof_map",
  (MR_String) "psi_constraint_map",
  (MR_String) "psi_unproven_body_constraints",
  (MR_String) "psi_inst_graph_info",
  (MR_String) "psi_arg_modes_maps",
  (MR_String) "psi_var_name_remap",
  (MR_String) "psi_assertions",
  (MR_String) "psi_obsolete_in_favour_of",
  (MR_String) "psi_format_call_info",
  (MR_String) "psi_instance_method_arg_types"
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_sub_info_0_0 = {
  (MR_String) "pred_sub_info",
  INT16_C(17),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(0),
  (MR_Integer) -1,
  INT32_C(0),
  hlds__hlds_pred__hlds__hlds_pred__field_types_pred_sub_info_0_0,
  hlds__hlds_pred__hlds__hlds_pred__field_names_pred_sub_info_0_0,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_pred_sub_info_0_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_sub_info_0_0 };

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_pred_sub_info_0[1] = {
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_pred_sub_info_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_pred_sub_info_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_sub_info_0_0 };

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_pred_sub_info_0[1] = { (MR_Integer) 0 };

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_sub_info_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(1),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (hlds__hlds_pred____Unify____pred_sub_info_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____pred_sub_info_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "pred_sub_info",
  { hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_pred_sub_info_0 },
  { hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_pred_sub_info_0 },
  (MR_Integer) 1,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_pred_sub_info_0,

};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1analysis__framework__type_ctor_info_analysis_status_0 = {
  &mercury__maybe__maybe__type_ctor_info_maybe_1,
  { (MR_TypeInfo) (&analysis__framework__analysis__framework__type_ctor_info_analysis_status_0) }
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_proc_exception_info_0_0[2] = {
  (MR_PseudoTypeInfo) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_exception_status_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__maybe__ti_maybe_1analysis__framework__type_ctor_info_analysis_status_0)
};

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_proc_exception_info_0_0[2] = {
  (MR_String) "proc_exception_status",
  (MR_String) "proc_maybe_excep_analysis_status"
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_proc_exception_info_0_0 = {
  (MR_String) "proc_exception_info",
  INT16_C(2),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(0),
  (MR_Integer) -1,
  INT32_C(0),
  hlds__hlds_pred__hlds__hlds_pred__field_types_proc_exception_info_0_0,
  hlds__hlds_pred__hlds__hlds_pred__field_names_proc_exception_info_0_0,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_proc_exception_info_0_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_proc_exception_info_0_0 };

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_proc_exception_info_0[1] = {
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_proc_exception_info_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_proc_exception_info_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_proc_exception_info_0_0 };

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_proc_exception_info_0[1] = { (MR_Integer) 0 };

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_exception_info_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(1),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (hlds__hlds_pred____Unify____proc_exception_info_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____proc_exception_info_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "proc_exception_info",
  { hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_proc_exception_info_0 },
  { hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_proc_exception_info_0 },
  (MR_Integer) 1,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_proc_exception_info_0,

};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_proc_foreign_exports_0_0 = {
  (MR_String) "no_foreign_exports",
  INT32_C(0)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_proc_foreign_exports_0_1 = {
  (MR_String) "has_foreign_exports",
  INT32_C(1)
};

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_proc_foreign_exports_0[2] = {
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_proc_foreign_exports_0_0,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_proc_foreign_exports_0_1
};

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_proc_foreign_exports_0[2] = {
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_proc_foreign_exports_0_1,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_proc_foreign_exports_0_0
};

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_proc_foreign_exports_0[2] = {
  (MR_Integer) 1,
  (MR_Integer) 0
};

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_foreign_exports_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_ENUM,
  ((MR_Box) (hlds__hlds_pred____Unify____proc_foreign_exports_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____proc_foreign_exports_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "proc_foreign_exports",
  { hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_proc_foreign_exports_0 },
  { hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_proc_foreign_exports_0 },
  (MR_Integer) 2,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_proc_foreign_exports_0,

};

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_id_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_EQUIV_GROUND,
  ((MR_Box) (hlds__hlds_pred____Unify____proc_id_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____proc_id_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "proc_id",
  { NULL },
  { (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_int_0) },
  (MR_Integer) -1,
  UINT16_C(0),
  NULL,

};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__varset__ti_varset_1parse_tree__prog_data__type_ctor_info_inst_var_type_0 = {
  &mercury__varset__varset__type_ctor_info_varset_1,
  { (MR_TypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_inst_var_type_0) }
};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__list__ti_list_1parse_tree__prog_data__type_ctor_info_mer_mode_0 = {
  &mercury__list__list__type_ctor_info_list_1,
  { (MR_TypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_mode_0) }
};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1list__ti_list_1parse_tree__prog_data__type_ctor_info_mer_mode_0 = {
  &mercury__maybe__maybe__type_ctor_info_maybe_1,
  { (MR_TypeInfo) (&hlds__hlds_pred__list__ti_list_1parse_tree__prog_data__type_ctor_info_mer_mode_0) }
};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__list__ti_list_1parse_tree__prog_data__type_ctor_info_is_live_0 = {
  &mercury__list__list__type_ctor_info_list_1,
  { (MR_TypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_is_live_0) }
};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1list__ti_list_1parse_tree__prog_data__type_ctor_info_is_live_0 = {
  &mercury__maybe__maybe__type_ctor_info_maybe_1,
  { (MR_TypeInfo) (&hlds__hlds_pred__list__ti_list_1parse_tree__prog_data__type_ctor_info_is_live_0) }
};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1parse_tree__prog_data__type_ctor_info_determinism_0 = {
  &mercury__maybe__maybe__type_ctor_info_maybe_1,
  { (MR_TypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_determinism_0) }
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_proc_info_0_0[12] = {
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__list__ti_list_1term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_goal__hlds__hlds_goal__type_ctor_info_hlds_goal_0),
  (MR_PseudoTypeInfo) (&parse_tree__var_table__parse_tree__var_table__type_ctor_info_var_table_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_rtti__hlds__hlds_rtti__type_ctor_info_rtti_varmaps_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__varset__ti_varset_1parse_tree__prog_data__type_ctor_info_inst_var_type_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__maybe__ti_maybe_1list__ti_list_1parse_tree__prog_data__type_ctor_info_mer_mode_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__list__ti_list_1parse_tree__prog_data__type_ctor_info_mer_mode_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__maybe__ti_maybe_1list__ti_list_1parse_tree__prog_data__type_ctor_info_is_live_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__maybe__ti_maybe_1parse_tree__prog_data__type_ctor_info_determinism_0),
  (MR_PseudoTypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_determinism_0),
  (MR_PseudoTypeInfo) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_eval_method_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_sub_info_0)
};

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_proc_info_0_0[12] = {
  (MR_String) "proc_head_vars",
  (MR_String) "proc_body",
  (MR_String) "proc_var_table",
  (MR_String) "proc_rtti_varmaps",
  (MR_String) "proc_inst_varset",
  (MR_String) "proc_maybe_decl_head_modes",
  (MR_String) "proc_actual_head_modes",
  (MR_String) "proc_headvar_caller_liveness",
  (MR_String) "proc_declared_detism",
  (MR_String) "proc_inferred_detism",
  (MR_String) "proc_eval_method",
  (MR_String) "proc_sub_info"
};

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_proc_info_0_0[12] = {
  {
    (MR_Integer) 0,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 1,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 2,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 3,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 4,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 5,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 6,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 7,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 8,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 9,
    (MR_Integer) 0,
    (MR_Integer) 3
  },
  {
    (MR_Integer) 10,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 11,
    (MR_Integer) 0,
    (MR_Integer) 0
  }
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_proc_info_0_0 = {
  (MR_String) "proc_info",
  INT16_C(12),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(0),
  (MR_Integer) -1,
  INT32_C(0),
  hlds__hlds_pred__hlds__hlds_pred__field_types_proc_info_0_0,
  hlds__hlds_pred__hlds__hlds_pred__field_names_proc_info_0_0,
  hlds__hlds_pred__hlds__hlds_pred__field_locns_proc_info_0_0,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_proc_info_0_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_proc_info_0_0 };

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_proc_info_0[1] = {
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_proc_info_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_proc_info_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_proc_info_0_0 };

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_proc_info_0[1] = { (MR_Integer) 0 };

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_info_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(1),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (hlds__hlds_pred____Unify____proc_info_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____proc_info_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "proc_info",
  { hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_proc_info_0 },
  { hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_proc_info_0 },
  (MR_Integer) 1,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_proc_info_0,

};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_proc_mm_tabling_info_0_0[2] = {
  (MR_PseudoTypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mm_tabling_status_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__maybe__ti_maybe_1analysis__framework__type_ctor_info_analysis_status_0)
};

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_proc_mm_tabling_info_0_0[2] = {
  (MR_String) "proc_mm_status",
  (MR_String) "proc_mm_analysis_status"
};

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_proc_mm_tabling_info_0_0[2] = {
  {
    (MR_Integer) 0,
    (MR_Integer) 0,
    (MR_Integer) 2
  },
  {
    (MR_Integer) 1,
    (MR_Integer) 0,
    (MR_Integer) 0
  }
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_proc_mm_tabling_info_0_0 = {
  (MR_String) "proc_mm_tabling_info",
  INT16_C(2),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(0),
  (MR_Integer) -1,
  INT32_C(0),
  hlds__hlds_pred__hlds__hlds_pred__field_types_proc_mm_tabling_info_0_0,
  hlds__hlds_pred__hlds__hlds_pred__field_names_proc_mm_tabling_info_0_0,
  hlds__hlds_pred__hlds__hlds_pred__field_locns_proc_mm_tabling_info_0_0,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_proc_mm_tabling_info_0_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_proc_mm_tabling_info_0_0 };

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_proc_mm_tabling_info_0[1] = {
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_proc_mm_tabling_info_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_proc_mm_tabling_info_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_proc_mm_tabling_info_0_0 };

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_proc_mm_tabling_info_0[1] = { (MR_Integer) 0 };

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_mm_tabling_info_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(1),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (hlds__hlds_pred____Unify____proc_mm_tabling_info_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____proc_mm_tabling_info_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "proc_mm_tabling_info",
  { hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_proc_mm_tabling_info_0 },
  { hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_proc_mm_tabling_info_0 },
  (MR_Integer) 1,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_proc_mm_tabling_info_0,

};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__mode_robdd__tfeirn__ti_tfeirn_1check_hlds__mode_constraint_robdd__type_ctor_info_mc_type_0 = {
  &mode_robdd__tfeirn__mode_robdd__tfeirn__type_ctor_info_tfeirn_1,
  { (MR_TypeInfo) (&check_hlds__mode_constraint_robdd__check_hlds__mode_constraint_robdd__type_ctor_info_mc_type_0) }
};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1mode_robdd__tfeirn__ti_tfeirn_1check_hlds__mode_constraint_robdd__type_ctor_info_mc_type_0 = {
  &mercury__maybe__maybe__type_ctor_info_maybe_1,
  { (MR_TypeInfo) (&hlds__hlds_pred__mode_robdd__tfeirn__ti_tfeirn_1check_hlds__mode_constraint_robdd__type_ctor_info_mc_type_0) }
};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__list__ti_list_1term_context__type_ctor_info_term_context_0 = {
  &mercury__list__list__type_ctor_info_list_1,
  { (MR_TypeInfo) (&mercury__term_context__term_context__type_ctor_info_term_context_0) }
};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_untuple_proc_info_0 = {
  &mercury__maybe__maybe__type_ctor_info_maybe_1,
  { (MR_TypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_untuple_proc_info_0) }
};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__list__ti_list_1parse_tree__error_spec__type_ctor_info_error_spec_0 = {
  &mercury__list__list__type_ctor_info_list_1,
  { (MR_TypeInfo) (&parse_tree__error_spec__parse_tree__error_spec__type_ctor_info_error_spec_0) }
};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__set_ordlist__ti_set_ordlist_1hlds__hlds_pred__type_ctor_info_pred_proc_id_0 = {
  &mercury__set_ordlist__set_ordlist__type_ctor_info_set_ordlist_1,
  { (MR_TypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_proc_id_0) }
};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__list__ti_list_1hlds__hlds_pred__type_ctor_info_oisu_pred_kind_for_0 = {
  &mercury__list__list__type_ctor_info_list_1,
  { (MR_TypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_oisu_pred_kind_for_0) }
};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1parse_tree__prog_data_pragma__type_ctor_info_require_tail_recursion_0 = {
  &mercury__maybe__maybe__type_ctor_info_maybe_1,
  { (MR_TypeInfo) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_require_tail_recursion_0) }
};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__list__ti_list_1hlds__hlds_pred__type_ctor_info_arg_info_0 = {
  &mercury__list__list__type_ctor_info_list_1,
  { (MR_TypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_arg_info_0) }
};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1list__ti_list_1hlds__hlds_pred__type_ctor_info_arg_info_0 = {
  &mercury__maybe__maybe__type_ctor_info_maybe_1,
  { (MR_TypeInfo) (&hlds__hlds_pred__list__ti_list_1hlds__hlds_pred__type_ctor_info_arg_info_0) }
};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_special_proc_return_0 = {
  &mercury__maybe__maybe__type_ctor_info_maybe_1,
  { (MR_TypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_special_proc_return_0) }
};

static const MR_FA_TypeInfo_Struct2 hlds__hlds_pred__tree234__ti_tree234_2term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0hlds__hlds_llds__type_ctor_info_stack_slot_0 = {
  &mercury__tree234__tree234__type_ctor_info_tree234_2,
  {
    (MR_TypeInfo) (&hlds__hlds_pred__term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0),
    (MR_TypeInfo) (&hlds__hlds_llds__hlds__hlds_llds__type_ctor_info_stack_slot_0)
  }
};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_proc_table_io_info_0 = {
  &mercury__maybe__maybe__type_ctor_info_maybe_1,
  { (MR_TypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_table_io_info_0) }
};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1parse_tree__prog_data_pragma__type_ctor_info_table_attributes_0 = {
  &mercury__maybe__maybe__type_ctor_info_maybe_1,
  { (MR_TypeInfo) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_table_attributes_0) }
};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_deep_profile_proc_info_0 = {
  &mercury__maybe__maybe__type_ctor_info_maybe_1,
  { (MR_TypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_deep_profile_proc_info_0) }
};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__list__ti_list_1transform_hlds__term_errors__type_ctor_info_term_error_0 = {
  &mercury__list__list__type_ctor_info_list_1,
  { (MR_TypeInfo) (&transform_hlds__term_errors__transform_hlds__term_errors__type_ctor_info_term_error_0) }
};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__parse_tree__prog_data_pragma__ti_generic_arg_size_info_1list__ti_list_1transform_hlds__term_errors__type_ctor_info_term_error_0 = {
  &parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_generic_arg_size_info_1,
  { (MR_TypeInfo) (&hlds__hlds_pred__list__ti_list_1transform_hlds__term_errors__type_ctor_info_term_error_0) }
};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1parse_tree__prog_data_pragma__ti_generic_arg_size_info_1list__ti_list_1transform_hlds__term_errors__type_ctor_info_term_error_0 = {
  &mercury__maybe__maybe__type_ctor_info_maybe_1,
  { (MR_TypeInfo) (&hlds__hlds_pred__parse_tree__prog_data_pragma__ti_generic_arg_size_info_1list__ti_list_1transform_hlds__term_errors__type_ctor_info_term_error_0) }
};

static const MR_FA_TypeInfo_Struct2 hlds__hlds_pred__parse_tree__prog_data_pragma__ti_generic_termination_info_2unit__type_ctor_info_unit_0list__ti_list_1transform_hlds__term_errors__type_ctor_info_term_error_0 = {
  &parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_generic_termination_info_2,
  {
    (MR_TypeInfo) (&mercury__unit__unit__type_ctor_info_unit_0),
    (MR_TypeInfo) (&hlds__hlds_pred__list__ti_list_1transform_hlds__term_errors__type_ctor_info_term_error_0)
  }
};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1parse_tree__prog_data_pragma__ti_generic_termination_info_2unit__type_ctor_info_unit_0list__ti_list_1transform_hlds__term_errors__type_ctor_info_term_error_0 = {
  &mercury__maybe__maybe__type_ctor_info_maybe_1,
  { (MR_TypeInfo) (&hlds__hlds_pred__parse_tree__prog_data_pragma__ti_generic_termination_info_2unit__type_ctor_info_unit_0list__ti_list_1transform_hlds__term_errors__type_ctor_info_term_error_0) }
};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_proc_exception_info_0 = {
  &mercury__maybe__maybe__type_ctor_info_maybe_1,
  { (MR_TypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_exception_info_0) }
};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_proc_trailing_info_0 = {
  &mercury__maybe__maybe__type_ctor_info_maybe_1,
  { (MR_TypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_trailing_info_0) }
};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_proc_mm_tabling_info_0 = {
  &mercury__maybe__maybe__type_ctor_info_maybe_1,
  { (MR_TypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_mm_tabling_info_0) }
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_proc_sub_info_0_0[36] = {
  (MR_PseudoTypeInfo) (&mercury__term_context__term_context__type_ctor_info_term_context_0),
  (MR_PseudoTypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_item_seq_num_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_can_process_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__maybe__ti_maybe_1mode_robdd__tfeirn__ti_tfeirn_1check_hlds__mode_constraint_robdd__type_ctor_info_mc_type_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_detism_decl_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__list__ti_list_1term_context__type_ctor_info_term_context_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_untuple_proc_info_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__tree234__ti_tree234_2term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0builtin__type_ctor_info_string_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__list__ti_list_1parse_tree__error_spec__type_ctor_info_error_spec_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__set_ordlist__ti_set_ordlist_1hlds__hlds_pred__type_ctor_info_pred_proc_id_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_is_address_taken_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_foreign_exports_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_has_parallel_conj_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_has_user_event_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_has_tail_rec_call_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__list__ti_list_1hlds__hlds_pred__type_ctor_info_oisu_pred_kind_for_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__maybe__ti_maybe_1parse_tree__prog_data_pragma__type_ctor_info_require_tail_recursion_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__sparse_bitset__ti_sparse_bitset_1term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__maybe__ti_maybe_1list__ti_list_1hlds__hlds_pred__type_ctor_info_arg_info_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_special_proc_return_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__sparse_bitset__ti_sparse_bitset_1term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__tree234__ti_tree234_2term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0hlds__hlds_llds__type_ctor_info_stack_slot_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_needs_maxfr_slot_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__maybe__ti_maybe_1term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_proc_table_io_info_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__maybe__ti_maybe_1parse_tree__prog_data_pragma__type_ctor_info_table_attributes_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__maybe__ti_maybe_1list__ti_list_1parse_tree__prog_data__type_ctor_info_sym_name_arity_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_deep_profile_proc_info_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__maybe__ti_maybe_1parse_tree__prog_data_pragma__ti_generic_arg_size_info_1list__ti_list_1transform_hlds__term_errors__type_ctor_info_term_error_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__maybe__ti_maybe_1parse_tree__prog_data_pragma__ti_generic_termination_info_2unit__type_ctor_info_unit_0list__ti_list_1transform_hlds__term_errors__type_ctor_info_term_error_0),
  (MR_PseudoTypeInfo) (&transform_hlds__term_constr_main_types__transform_hlds__term_constr_main_types__type_ctor_info_termination2_info_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_proc_exception_info_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_proc_trailing_info_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_proc_mm_tabling_info_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_structure_sharing_info_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_structure_reuse_info_0)
};

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_proc_sub_info_0_0[36] = {
  (MR_String) "psi_proc_context",
  (MR_String) "psi_item_number",
  (MR_String) "psi_can_process",
  (MR_String) "psi_maybe_head_modes_constr",
  (MR_String) "psi_detism_decl",
  (MR_String) "psi_cse_nopull_contexts",
  (MR_String) "psi_maybe_untuple_info",
  (MR_String) "psi_proc_var_name_remap",
  (MR_String) "psi_statevar_warnings",
  (MR_String) "psi_deleted_call_callees",
  (MR_String) "psi_is_address_taken",
  (MR_String) "psi_has_any_foreign_exports",
  (MR_String) "psi_proc_has_parallel_conj",
  (MR_String) "psi_proc_has_user_event",
  (MR_String) "psi_proc_has_tail_rec_call",
  (MR_String) "psi_oisu_kind_fors",
  (MR_String) "psi_maybe_require_tailrec",
  (MR_String) "psi_reg_r_headvars",
  (MR_String) "psi_maybe_arg_info",
  (MR_String) "psi_maybe_special_return",
  (MR_String) "psi_initial_liveness",
  (MR_String) "psi_stack_slots",
  (MR_String) "psi_needs_maxfr_slot",
  (MR_String) "psi_call_table_tip",
  (MR_String) "psi_maybe_table_io_info",
  (MR_String) "psi_table_attributes",
  (MR_String) "psi_proc_obsolete_in_favour_of",
  (MR_String) "psi_maybe_deep_prof_info",
  (MR_String) "psi_maybe_arg_sizes",
  (MR_String) "psi_maybe_termination",
  (MR_String) "psi_termination2",
  (MR_String) "psi_exception_info",
  (MR_String) "psi_trailing_info",
  (MR_String) "psi_mm_tabling_info",
  (MR_String) "psi_structure_sharing",
  (MR_String) "psi_structure_reuse"
};

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_proc_sub_info_0_0[36] = {
  {
    (MR_Integer) 0,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 1,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 2,
    (MR_Integer) 0,
    (MR_Integer) 1
  },
  {
    (MR_Integer) 3,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 4,
    (MR_Integer) 0,
    (MR_Integer) 2
  },
  {
    (MR_Integer) 5,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 6,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 7,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 8,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 9,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 10,
    (MR_Integer) 3,
    (MR_Integer) 1
  },
  {
    (MR_Integer) 10,
    (MR_Integer) 2,
    (MR_Integer) 1
  },
  {
    (MR_Integer) 10,
    (MR_Integer) 1,
    (MR_Integer) 1
  },
  {
    (MR_Integer) 10,
    (MR_Integer) 0,
    (MR_Integer) 1
  },
  {
    (MR_Integer) 11,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 12,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 13,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 14,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 15,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 16,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 17,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 18,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 19,
    (MR_Integer) 0,
    (MR_Integer) 1
  },
  {
    (MR_Integer) 20,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 21,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 22,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 23,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 24,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 25,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 26,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 27,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 28,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 29,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 30,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 31,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 32,
    (MR_Integer) 0,
    (MR_Integer) 0
  }
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_proc_sub_info_0_0 = {
  (MR_String) "proc_sub_info",
  INT16_C(36),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(0),
  (MR_Integer) -1,
  INT32_C(0),
  hlds__hlds_pred__hlds__hlds_pred__field_types_proc_sub_info_0_0,
  hlds__hlds_pred__hlds__hlds_pred__field_names_proc_sub_info_0_0,
  hlds__hlds_pred__hlds__hlds_pred__field_locns_proc_sub_info_0_0,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_proc_sub_info_0_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_proc_sub_info_0_0 };

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_proc_sub_info_0[1] = {
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_proc_sub_info_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_proc_sub_info_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_proc_sub_info_0_0 };

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_proc_sub_info_0[1] = { (MR_Integer) 0 };

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_sub_info_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(1),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (hlds__hlds_pred____Unify____proc_sub_info_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____proc_sub_info_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "proc_sub_info",
  { hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_proc_sub_info_0 },
  { hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_proc_sub_info_0 },
  (MR_Integer) 1,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_proc_sub_info_0,

};

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_table_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_EQUIV_GROUND,
  ((MR_Box) (hlds__hlds_pred____Unify____proc_table_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____proc_table_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "proc_table",
  { NULL },
  { (MR_PseudoTypeInfo) (&hlds__hlds_pred__tree234__ti_tree234_2builtin__type_ctor_info_int_0hlds__hlds_pred__type_ctor_info_proc_info_0) },
  (MR_Integer) -1,
  UINT16_C(0),
  NULL,

};

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_proc_table_io_info_0[1] = { (MR_Integer) 0 };

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_table_arg_infos_0 = {
  &mercury__maybe__maybe__type_ctor_info_maybe_1,
  { (MR_TypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_table_arg_infos_0) }
};

static const MR_NotagFunctorDesc hlds__hlds_pred__hlds__hlds_pred__notag_functor_desc_proc_table_io_info_0 = {
  (MR_String) "proc_table_io_info",
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_table_arg_infos_0),
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE
};

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_table_io_info_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_NOTAG_GROUND,
  ((MR_Box) (hlds__hlds_pred____Unify____proc_table_io_info_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____proc_table_io_info_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "proc_table_io_info",
  { &hlds__hlds_pred__hlds__hlds_pred__notag_functor_desc_proc_table_io_info_0 },
  { &hlds__hlds_pred__hlds__hlds_pred__notag_functor_desc_proc_table_io_info_0 },
  (MR_Integer) 1,
  UINT16_C(4),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_proc_table_io_info_0,

};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__list__ti_list_1hlds__hlds_pred__type_ctor_info_table_step_desc_0 = {
  &mercury__list__list__type_ctor_info_list_1,
  { (MR_TypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_table_step_desc_0) }
};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1list__ti_list_1hlds__hlds_pred__type_ctor_info_table_step_desc_0 = {
  &mercury__maybe__maybe__type_ctor_info_maybe_1,
  { (MR_TypeInfo) (&hlds__hlds_pred__list__ti_list_1hlds__hlds_pred__type_ctor_info_table_step_desc_0) }
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_proc_table_struct_info_0_0[9] = {
  (MR_PseudoTypeInfo) (&hlds__hlds_rtti__hlds__hlds_rtti__type_ctor_info_rtti_proc_label_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__varset__ti_varset_1parse_tree__prog_data__type_ctor_info_tvar_type_0),
  (MR_PseudoTypeInfo) (&mercury__term_context__term_context__type_ctor_info_term_context_0),
  (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_int_0),
  (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_int_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__list__ti_list_1hlds__hlds_pred__type_ctor_info_table_step_desc_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__maybe__ti_maybe_1list__ti_list_1hlds__hlds_pred__type_ctor_info_table_step_desc_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_table_arg_infos_0),
  (MR_PseudoTypeInfo) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_tabled_eval_method_0)
};

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_proc_table_struct_info_0_0[9] = {
  (MR_String) "ptsi_proc_label",
  (MR_String) "ptsi_tvarset",
  (MR_String) "ptsi_context",
  (MR_String) "ptsi_num_inputs",
  (MR_String) "ptsi_num_outputs",
  (MR_String) "ptsi_input_steps",
  (MR_String) "ptsi_maybe_output_steps",
  (MR_String) "ptsi_gen_arg_infos",
  (MR_String) "ptsi_eval_method"
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_proc_table_struct_info_0_0 = {
  (MR_String) "proc_table_struct_info",
  INT16_C(9),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(0),
  (MR_Integer) -1,
  INT32_C(0),
  hlds__hlds_pred__hlds__hlds_pred__field_types_proc_table_struct_info_0_0,
  hlds__hlds_pred__hlds__hlds_pred__field_names_proc_table_struct_info_0_0,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_proc_table_struct_info_0_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_proc_table_struct_info_0_0 };

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_proc_table_struct_info_0[1] = {
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_proc_table_struct_info_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_proc_table_struct_info_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_proc_table_struct_info_0_0 };

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_proc_table_struct_info_0[1] = { (MR_Integer) 0 };

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_table_struct_info_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(1),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (hlds__hlds_pred____Unify____proc_table_struct_info_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____proc_table_struct_info_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "proc_table_struct_info",
  { hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_proc_table_struct_info_0 },
  { hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_proc_table_struct_info_0 },
  (MR_Integer) 1,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_proc_table_struct_info_0,

};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_proc_trailing_info_0_0[2] = {
  (MR_PseudoTypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_trailing_status_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__maybe__ti_maybe_1analysis__framework__type_ctor_info_analysis_status_0)
};

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_proc_trailing_info_0_0[2] = {
  (MR_String) "proc_trailing_status",
  (MR_String) "proc_maybe_trail_analysis_status"
};

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_proc_trailing_info_0_0[2] = {
  {
    (MR_Integer) 0,
    (MR_Integer) 0,
    (MR_Integer) 2
  },
  {
    (MR_Integer) 1,
    (MR_Integer) 0,
    (MR_Integer) 0
  }
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_proc_trailing_info_0_0 = {
  (MR_String) "proc_trailing_info",
  INT16_C(2),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(0),
  (MR_Integer) -1,
  INT32_C(0),
  hlds__hlds_pred__hlds__hlds_pred__field_types_proc_trailing_info_0_0,
  hlds__hlds_pred__hlds__hlds_pred__field_names_proc_trailing_info_0_0,
  hlds__hlds_pred__hlds__hlds_pred__field_locns_proc_trailing_info_0_0,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_proc_trailing_info_0_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_proc_trailing_info_0_0 };

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_proc_trailing_info_0[1] = {
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_proc_trailing_info_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_proc_trailing_info_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_proc_trailing_info_0_0 };

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_proc_trailing_info_0[1] = { (MR_Integer) 0 };

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_trailing_info_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(1),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (hlds__hlds_pred____Unify____proc_trailing_info_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____proc_trailing_info_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "proc_trailing_info",
  { hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_proc_trailing_info_0 },
  { hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_proc_trailing_info_0 },
  (MR_Integer) 1,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_proc_trailing_info_0,

};

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_scc_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_EQUIV_GROUND,
  ((MR_Box) (hlds__hlds_pred____Unify____scc_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____scc_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "scc",
  { NULL },
  { (MR_PseudoTypeInfo) (&hlds__hlds_pred__set_ordlist__ti_set_ordlist_1hlds__hlds_pred__type_ctor_info_pred_proc_id_0) },
  (MR_Integer) -1,
  UINT16_C(0),
  NULL,

};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_special_proc_return_0_0[2] = {
  (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_string_0),
  (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_string_0)
};

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_special_proc_return_0_0[2] = {
  (MR_String) "generator_rval",
  (MR_String) "return_debug"
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_special_proc_return_0_0 = {
  (MR_String) "generator_return",
  INT16_C(2),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(0),
  (MR_Integer) -1,
  INT32_C(0),
  hlds__hlds_pred__hlds__hlds_pred__field_types_special_proc_return_0_0,
  hlds__hlds_pred__hlds__hlds_pred__field_names_special_proc_return_0_0,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_special_proc_return_0_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_special_proc_return_0_0 };

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_special_proc_return_0[1] = {
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_special_proc_return_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_special_proc_return_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_special_proc_return_0_0 };

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_special_proc_return_0[1] = { (MR_Integer) 0 };

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_special_proc_return_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(1),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (hlds__hlds_pred____Unify____special_proc_return_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____special_proc_return_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "special_proc_return",
  { hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_special_proc_return_0 },
  { hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_special_proc_return_0 },
  (MR_Integer) 1,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_special_proc_return_0,

};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_structure_reuse_domain_and_status_0_0[2] = {
  (MR_PseudoTypeInfo) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_structure_reuse_domain_0),
  (MR_PseudoTypeInfo) (&analysis__framework__analysis__framework__type_ctor_info_analysis_status_0)
};

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_structure_reuse_domain_and_status_0_0[2] = {
  {
    (MR_Integer) 0,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 1,
    (MR_Integer) 0,
    (MR_Integer) 2
  }
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_structure_reuse_domain_and_status_0_0 = {
  (MR_String) "structure_reuse_domain_and_status",
  INT16_C(2),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(0),
  (MR_Integer) -1,
  INT32_C(0),
  hlds__hlds_pred__hlds__hlds_pred__field_types_structure_reuse_domain_and_status_0_0,
  NULL,
  hlds__hlds_pred__hlds__hlds_pred__field_locns_structure_reuse_domain_and_status_0_0,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_structure_reuse_domain_and_status_0_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_structure_reuse_domain_and_status_0_0 };

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_structure_reuse_domain_and_status_0[1] = {
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_structure_reuse_domain_and_status_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_structure_reuse_domain_and_status_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_structure_reuse_domain_and_status_0_0 };

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_structure_reuse_domain_and_status_0[1] = { (MR_Integer) 0 };

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_structure_reuse_domain_and_status_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(1),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (hlds__hlds_pred____Unify____structure_reuse_domain_and_status_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____structure_reuse_domain_and_status_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "structure_reuse_domain_and_status",
  { hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_structure_reuse_domain_and_status_0 },
  { hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_structure_reuse_domain_and_status_0 },
  (MR_Integer) 1,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_structure_reuse_domain_and_status_0,

};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_structure_reuse_domain_and_status_0 = {
  &mercury__maybe__maybe__type_ctor_info_maybe_1,
  { (MR_TypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_structure_reuse_domain_and_status_0) }
};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_imported_reuse_0 = {
  &mercury__maybe__maybe__type_ctor_info_maybe_1,
  { (MR_TypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_imported_reuse_0) }
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_structure_reuse_info_0_0[2] = {
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_structure_reuse_domain_and_status_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_imported_reuse_0)
};

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_structure_reuse_info_0_0[2] = {
  (MR_String) "maybe_reuse",
  (MR_String) "maybe_imported_reuse"
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_structure_reuse_info_0_0 = {
  (MR_String) "structure_reuse_info",
  INT16_C(2),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(0),
  (MR_Integer) -1,
  INT32_C(0),
  hlds__hlds_pred__hlds__hlds_pred__field_types_structure_reuse_info_0_0,
  hlds__hlds_pred__hlds__hlds_pred__field_names_structure_reuse_info_0_0,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_structure_reuse_info_0_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_structure_reuse_info_0_0 };

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_structure_reuse_info_0[1] = {
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_structure_reuse_info_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_structure_reuse_info_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_structure_reuse_info_0_0 };

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_structure_reuse_info_0[1] = { (MR_Integer) 0 };

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_structure_reuse_info_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(1),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (hlds__hlds_pred____Unify____structure_reuse_info_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____structure_reuse_info_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "structure_reuse_info",
  { hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_structure_reuse_info_0 },
  { hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_structure_reuse_info_0 },
  (MR_Integer) 1,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_structure_reuse_info_0,

};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_structure_sharing_domain_and_status_0_0[2] = {
  (MR_PseudoTypeInfo) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_structure_sharing_domain_0),
  (MR_PseudoTypeInfo) (&analysis__framework__analysis__framework__type_ctor_info_analysis_status_0)
};

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_structure_sharing_domain_and_status_0_0[2] = {
  {
    (MR_Integer) 0,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 1,
    (MR_Integer) 0,
    (MR_Integer) 2
  }
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_structure_sharing_domain_and_status_0_0 = {
  (MR_String) "structure_sharing_domain_and_status",
  INT16_C(2),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(0),
  (MR_Integer) -1,
  INT32_C(0),
  hlds__hlds_pred__hlds__hlds_pred__field_types_structure_sharing_domain_and_status_0_0,
  NULL,
  hlds__hlds_pred__hlds__hlds_pred__field_locns_structure_sharing_domain_and_status_0_0,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_structure_sharing_domain_and_status_0_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_structure_sharing_domain_and_status_0_0 };

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_structure_sharing_domain_and_status_0[1] = {
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_structure_sharing_domain_and_status_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_structure_sharing_domain_and_status_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_structure_sharing_domain_and_status_0_0 };

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_structure_sharing_domain_and_status_0[1] = { (MR_Integer) 0 };

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_structure_sharing_domain_and_status_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(1),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (hlds__hlds_pred____Unify____structure_sharing_domain_and_status_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____structure_sharing_domain_and_status_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "structure_sharing_domain_and_status",
  { hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_structure_sharing_domain_and_status_0 },
  { hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_structure_sharing_domain_and_status_0 },
  (MR_Integer) 1,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_structure_sharing_domain_and_status_0,

};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_structure_sharing_domain_and_status_0 = {
  &mercury__maybe__maybe__type_ctor_info_maybe_1,
  { (MR_TypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_structure_sharing_domain_and_status_0) }
};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_imported_sharing_0 = {
  &mercury__maybe__maybe__type_ctor_info_maybe_1,
  { (MR_TypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_imported_sharing_0) }
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_structure_sharing_info_0_0[2] = {
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_structure_sharing_domain_and_status_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__maybe__ti_maybe_1hlds__hlds_pred__type_ctor_info_imported_sharing_0)
};

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_structure_sharing_info_0_0[2] = {
  (MR_String) "maybe_sharing",
  (MR_String) "maybe_imported_sharing"
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_structure_sharing_info_0_0 = {
  (MR_String) "structure_sharing_info",
  INT16_C(2),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(0),
  (MR_Integer) -1,
  INT32_C(0),
  hlds__hlds_pred__hlds__hlds_pred__field_types_structure_sharing_info_0_0,
  hlds__hlds_pred__hlds__hlds_pred__field_names_structure_sharing_info_0_0,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_structure_sharing_info_0_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_structure_sharing_info_0_0 };

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_structure_sharing_info_0[1] = {
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_structure_sharing_info_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_structure_sharing_info_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_structure_sharing_info_0_0 };

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_structure_sharing_info_0[1] = { (MR_Integer) 0 };

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_structure_sharing_info_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(1),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (hlds__hlds_pred____Unify____structure_sharing_info_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____structure_sharing_info_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "structure_sharing_info",
  { hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_structure_sharing_info_0 },
  { hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_structure_sharing_info_0 },
  (MR_Integer) 1,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_structure_sharing_info_0,

};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_table_arg_info_0_0[4] = {
  (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_int_0),
  (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_string_0),
  (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_int_0),
  (MR_PseudoTypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_type_0)
};

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_table_arg_info_0_0[4] = {
  (MR_String) "orig_var_num",
  (MR_String) "orig_var_name",
  (MR_String) "slot_num",
  (MR_String) "arg_type"
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_arg_info_0_0 = {
  (MR_String) "table_arg_info",
  INT16_C(4),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(0),
  (MR_Integer) -1,
  INT32_C(0),
  hlds__hlds_pred__hlds__hlds_pred__field_types_table_arg_info_0_0,
  hlds__hlds_pred__hlds__hlds_pred__field_names_table_arg_info_0_0,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_table_arg_info_0_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_arg_info_0_0 };

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_table_arg_info_0[1] = {
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_table_arg_info_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_table_arg_info_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_arg_info_0_0 };

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_table_arg_info_0[1] = { (MR_Integer) 0 };

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_table_arg_info_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(1),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (hlds__hlds_pred____Unify____table_arg_info_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____table_arg_info_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "table_arg_info",
  { hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_table_arg_info_0 },
  { hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_table_arg_info_0 },
  (MR_Integer) 1,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_table_arg_info_0,

};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__list__ti_list_1hlds__hlds_pred__type_ctor_info_table_arg_info_0 = {
  &mercury__list__list__type_ctor_info_list_1,
  { (MR_TypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_table_arg_info_0) }
};

static const MR_FA_TypeInfo_Struct2 hlds__hlds_pred__tree234__ti_tree234_2term__ti_var_1parse_tree__prog_data__type_ctor_info_tvar_type_0hlds__hlds_pred__type_ctor_info_table_locn_0 = {
  &mercury__tree234__tree234__type_ctor_info_tree234_2,
  {
    (MR_TypeInfo) (&hlds__hlds_pred__term__ti_var_1parse_tree__prog_data__type_ctor_info_tvar_type_0),
    (MR_TypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_table_locn_0)
  }
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_table_arg_infos_0_0[2] = {
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__list__ti_list_1hlds__hlds_pred__type_ctor_info_table_arg_info_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__tree234__ti_tree234_2term__ti_var_1parse_tree__prog_data__type_ctor_info_tvar_type_0hlds__hlds_pred__type_ctor_info_table_locn_0)
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_arg_infos_0_0 = {
  (MR_String) "table_arg_infos",
  INT16_C(2),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(0),
  (MR_Integer) -1,
  INT32_C(0),
  hlds__hlds_pred__hlds__hlds_pred__field_types_table_arg_infos_0_0,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_table_arg_infos_0_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_arg_infos_0_0 };

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_table_arg_infos_0[1] = {
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_table_arg_infos_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_table_arg_infos_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_arg_infos_0_0 };

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_table_arg_infos_0[1] = { (MR_Integer) 0 };

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_table_arg_infos_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(1),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (hlds__hlds_pred____Unify____table_arg_infos_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____table_arg_infos_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "table_arg_infos",
  { hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_table_arg_infos_0 },
  { hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_table_arg_infos_0 },
  (MR_Integer) 1,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_table_arg_infos_0,

};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_table_is_poly_0_0 = {
  (MR_String) "table_is_mono",
  INT32_C(0)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_table_is_poly_0_1 = {
  (MR_String) "table_is_poly",
  INT32_C(1)
};

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_table_is_poly_0[2] = {
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_table_is_poly_0_0,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_table_is_poly_0_1
};

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_table_is_poly_0[2] = {
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_table_is_poly_0_0,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_table_is_poly_0_1
};

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_table_is_poly_0[2] = {
  (MR_Integer) 0,
  (MR_Integer) 1
};

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_table_is_poly_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_ENUM,
  ((MR_Box) (hlds__hlds_pred____Unify____table_is_poly_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____table_is_poly_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "table_is_poly",
  { hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_table_is_poly_0 },
  { hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_table_is_poly_0 },
  (MR_Integer) 2,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_table_is_poly_0,

};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_table_locn_0_0[1] = { (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_int_0) };

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_locn_0_0 = {
  (MR_String) "table_locn_direct",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(0),
  (MR_Integer) -1,
  INT32_C(0),
  hlds__hlds_pred__hlds__hlds_pred__field_types_table_locn_0_0,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_table_locn_0_1[2] = {
  (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_int_0),
  (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_int_0)
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_locn_0_1 = {
  (MR_String) "table_locn_indirect",
  INT16_C(2),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(1),
  (MR_Integer) -1,
  INT32_C(1),
  hlds__hlds_pred__hlds__hlds_pred__field_types_table_locn_0_1,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_table_locn_0_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_locn_0_0 };

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_table_locn_0_1[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_locn_0_1 };

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_table_locn_0[2] = {
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_table_locn_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  },
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_table_locn_0_1,
    INT8_C(-1),
    UINT8_C(1),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_table_locn_0[2] = {
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_locn_0_0,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_locn_0_1
};

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_table_locn_0[2] = {
  (MR_Integer) 0,
  (MR_Integer) 1
};

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_table_locn_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(2),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (hlds__hlds_pred____Unify____table_locn_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____table_locn_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "table_locn",
  { hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_table_locn_0 },
  { hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_table_locn_0 },
  (MR_Integer) 2,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_table_locn_0,

};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_table_step_desc_0_0[2] = {
  (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_string_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_table_trie_step_0)
};

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_table_step_desc_0_0[2] = {
  (MR_String) "tsd_var_name",
  (MR_String) "tsd_step"
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_step_desc_0_0 = {
  (MR_String) "table_step_desc",
  INT16_C(2),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(0),
  (MR_Integer) -1,
  INT32_C(0),
  hlds__hlds_pred__hlds__hlds_pred__field_types_table_step_desc_0_0,
  hlds__hlds_pred__hlds__hlds_pred__field_names_table_step_desc_0_0,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_table_step_desc_0_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_step_desc_0_0 };

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_table_step_desc_0[1] = {
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_table_step_desc_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_table_step_desc_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_step_desc_0_0 };

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_table_step_desc_0[1] = { (MR_Integer) 0 };

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_table_step_desc_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(1),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (hlds__hlds_pred____Unify____table_step_desc_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____table_step_desc_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "table_step_desc",
  { hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_table_step_desc_0 },
  { hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_table_step_desc_0 },
  (MR_Integer) 1,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_table_step_desc_0,

};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_trie_step_0_0 = {
  (MR_String) "table_trie_step_dummy",
  INT16_C(0),
  UINT16_C(0),
  MR_SECTAG_LOCAL_REST_OF_WORD,
  UINT8_C(0),
  (MR_Integer) 0,
  INT32_C(0),
  NULL,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_table_trie_step_0_1[1] = { (MR_PseudoTypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_int_type_0) };

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_table_trie_step_0_1[1] = {
  {
    (MR_Integer) 0,
    (MR_Integer) 0,
    (MR_Integer) 4
  }
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_trie_step_0_1 = {
  (MR_String) "table_trie_step_int",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(1),
  (MR_Integer) -1,
  INT32_C(1),
  hlds__hlds_pred__hlds__hlds_pred__field_types_table_trie_step_0_1,
  NULL,
  hlds__hlds_pred__hlds__hlds_pred__field_locns_table_trie_step_0_1,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_trie_step_0_2 = {
  (MR_String) "table_trie_step_char",
  INT16_C(0),
  UINT16_C(0),
  MR_SECTAG_LOCAL_REST_OF_WORD,
  UINT8_C(0),
  (MR_Integer) 1,
  INT32_C(2),
  NULL,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_trie_step_0_3 = {
  (MR_String) "table_trie_step_string",
  INT16_C(0),
  UINT16_C(0),
  MR_SECTAG_LOCAL_REST_OF_WORD,
  UINT8_C(0),
  (MR_Integer) 2,
  INT32_C(3),
  NULL,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_trie_step_0_4 = {
  (MR_String) "table_trie_step_float",
  INT16_C(0),
  UINT16_C(0),
  MR_SECTAG_LOCAL_REST_OF_WORD,
  UINT8_C(0),
  (MR_Integer) 3,
  INT32_C(4),
  NULL,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_table_trie_step_0_5[1] = { (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_int_0) };

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_trie_step_0_5 = {
  (MR_String) "table_trie_step_enum",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(2),
  (MR_Integer) -1,
  INT32_C(5),
  hlds__hlds_pred__hlds__hlds_pred__field_types_table_trie_step_0_5,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_trie_step_0_6 = {
  (MR_String) "table_trie_step_foreign_enum",
  INT16_C(0),
  UINT16_C(0),
  MR_SECTAG_LOCAL_REST_OF_WORD,
  UINT8_C(0),
  (MR_Integer) 4,
  INT32_C(6),
  NULL,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_table_trie_step_0_7[3] = {
  (MR_PseudoTypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_type_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_table_is_poly_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_table_value_or_addr_0)
};

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_table_trie_step_0_7[3] = {
  {
    (MR_Integer) 0,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 1,
    (MR_Integer) 1,
    (MR_Integer) 1
  },
  {
    (MR_Integer) 1,
    (MR_Integer) 0,
    (MR_Integer) 1
  }
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_trie_step_0_7 = {
  (MR_String) "table_trie_step_general",
  INT16_C(3),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(3),
  (MR_Integer) -1,
  INT32_C(7),
  hlds__hlds_pred__hlds__hlds_pred__field_types_table_trie_step_0_7,
  NULL,
  hlds__hlds_pred__hlds__hlds_pred__field_locns_table_trie_step_0_7,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_trie_step_0_8 = {
  (MR_String) "table_trie_step_typeinfo",
  INT16_C(0),
  UINT16_C(0),
  MR_SECTAG_LOCAL_REST_OF_WORD,
  UINT8_C(0),
  (MR_Integer) 5,
  INT32_C(8),
  NULL,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_trie_step_0_9 = {
  (MR_String) "table_trie_step_typeclassinfo",
  INT16_C(0),
  UINT16_C(0),
  MR_SECTAG_LOCAL_REST_OF_WORD,
  UINT8_C(0),
  (MR_Integer) 6,
  INT32_C(9),
  NULL,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_trie_step_0_10 = {
  (MR_String) "table_trie_step_promise_implied",
  INT16_C(0),
  UINT16_C(0),
  MR_SECTAG_LOCAL_REST_OF_WORD,
  UINT8_C(0),
  (MR_Integer) 7,
  INT32_C(10),
  NULL,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_table_trie_step_0_0[8] = {
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_trie_step_0_0,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_trie_step_0_2,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_trie_step_0_3,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_trie_step_0_4,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_trie_step_0_6,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_trie_step_0_8,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_trie_step_0_9,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_trie_step_0_10
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_table_trie_step_0_1[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_trie_step_0_1 };

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_table_trie_step_0_2[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_trie_step_0_5 };

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_table_trie_step_0_3[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_trie_step_0_7 };

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_table_trie_step_0[4] = {
  {
    UINT32_C(8),
    MR_SECTAG_LOCAL_REST_OF_WORD,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_table_trie_step_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  },
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_table_trie_step_0_1,
    INT8_C(-1),
    UINT8_C(1),
    UINT8_C(1)
  },
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_table_trie_step_0_2,
    INT8_C(-1),
    UINT8_C(2),
    UINT8_C(1)
  },
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_table_trie_step_0_3,
    INT8_C(-1),
    UINT8_C(3),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_table_trie_step_0[11] = {
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_trie_step_0_2,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_trie_step_0_0,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_trie_step_0_5,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_trie_step_0_4,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_trie_step_0_6,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_trie_step_0_7,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_trie_step_0_1,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_trie_step_0_10,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_trie_step_0_3,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_trie_step_0_9,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_table_trie_step_0_8
};

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_table_trie_step_0[11] = {
  (MR_Integer) 1,
  (MR_Integer) 6,
  (MR_Integer) 0,
  (MR_Integer) 8,
  (MR_Integer) 3,
  (MR_Integer) 2,
  (MR_Integer) 4,
  (MR_Integer) 5,
  (MR_Integer) 10,
  (MR_Integer) 9,
  (MR_Integer) 7
};

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_table_trie_step_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(4),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (hlds__hlds_pred____Unify____table_trie_step_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____table_trie_step_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "table_trie_step",
  { hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_table_trie_step_0 },
  { hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_table_trie_step_0 },
  (MR_Integer) 11,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_table_trie_step_0,

};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_table_value_or_addr_0_0 = {
  (MR_String) "table_value",
  INT32_C(0)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_table_value_or_addr_0_1 = {
  (MR_String) "table_addr",
  INT32_C(1)
};

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_table_value_or_addr_0[2] = {
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_table_value_or_addr_0_0,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_table_value_or_addr_0_1
};

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_table_value_or_addr_0[2] = {
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_table_value_or_addr_0_1,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_table_value_or_addr_0_0
};

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_table_value_or_addr_0[2] = {
  (MR_Integer) 1,
  (MR_Integer) 0
};

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_table_value_or_addr_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_ENUM,
  ((MR_Box) (hlds__hlds_pred____Unify____table_value_or_addr_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____table_value_or_addr_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "table_value_or_addr",
  { hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_table_value_or_addr_0 },
  { hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_table_value_or_addr_0 },
  (MR_Integer) 2,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_table_value_or_addr_0,

};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_top_functor_mode_0_0 = {
  (MR_String) "top_in",
  INT32_C(0)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_top_functor_mode_0_1 = {
  (MR_String) "top_out",
  INT32_C(1)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_top_functor_mode_0_2 = {
  (MR_String) "top_unused",
  INT32_C(2)
};

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_top_functor_mode_0[3] = {
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_top_functor_mode_0_0,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_top_functor_mode_0_1,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_top_functor_mode_0_2
};

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_top_functor_mode_0[3] = {
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_top_functor_mode_0_0,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_top_functor_mode_0_1,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_top_functor_mode_0_2
};

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_top_functor_mode_0[3] = {
  (MR_Integer) 0,
  (MR_Integer) 1,
  (MR_Integer) 2
};

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_top_functor_mode_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_ENUM,
  ((MR_Box) (hlds__hlds_pred____Unify____top_functor_mode_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____top_functor_mode_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "top_functor_mode",
  { hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_top_functor_mode_0 },
  { hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_top_functor_mode_0 },
  (MR_Integer) 3,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_top_functor_mode_0,

};

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_untuple_proc_info_0[1] = { (MR_Integer) 0 };

static const MR_FA_TypeInfo_Struct2 hlds__hlds_pred__tree234__ti_tree234_2term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0list__ti_list_1term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0 = {
  &mercury__tree234__tree234__type_ctor_info_tree234_2,
  {
    (MR_TypeInfo) (&hlds__hlds_pred__term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0),
    (MR_TypeInfo) (&hlds__hlds_pred__list__ti_list_1term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0)
  }
};

static const MR_NotagFunctorDesc hlds__hlds_pred__hlds__hlds_pred__notag_functor_desc_untuple_proc_info_0 = {
  (MR_String) "untuple_proc_info",
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__tree234__ti_tree234_2term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0list__ti_list_1term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0),
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE
};

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_untuple_proc_info_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_NOTAG_GROUND,
  ((MR_Box) (hlds__hlds_pred____Unify____untuple_proc_info_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____untuple_proc_info_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "untuple_proc_info",
  { &hlds__hlds_pred__hlds__hlds_pred__notag_functor_desc_untuple_proc_info_0 },
  { &hlds__hlds_pred__hlds__hlds_pred__notag_functor_desc_untuple_proc_info_0 },
  (MR_Integer) 1,
  UINT16_C(4),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_untuple_proc_info_0,

};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__list__ti_list_1builtin__type_ctor_info_int_0 = {
  &mercury__list__list__type_ctor_info_list_1,
  { (MR_TypeInfo) (&mercury__builtin__builtin__type_ctor_info_int_0) }
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_visible_scc_data_0_0[3] = {
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_proc_id_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_proc_id_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__list__ti_list_1builtin__type_ctor_info_int_0)
};

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_visible_scc_data_0_0[3] = {
  (MR_String) "vis_outer_proc",
  (MR_String) "vis_inner_proc",
  (MR_String) "rec_call_sites"
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_visible_scc_data_0_0 = {
  (MR_String) "visible_scc_data",
  INT16_C(3),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(0),
  (MR_Integer) -1,
  INT32_C(0),
  hlds__hlds_pred__hlds__hlds_pred__field_types_visible_scc_data_0_0,
  hlds__hlds_pred__hlds__hlds_pred__field_names_visible_scc_data_0_0,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_visible_scc_data_0_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_visible_scc_data_0_0 };

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_visible_scc_data_0[1] = {
  {
    UINT32_C(1),
    MR_SECTAG_NONE,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_visible_scc_data_0_0,
    INT8_C(-1),
    UINT8_C(0),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_visible_scc_data_0[1] = { &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_visible_scc_data_0_0 };

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_visible_scc_data_0[1] = { (MR_Integer) 0 };

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_visible_scc_data_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(1),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (hlds__hlds_pred____Unify____visible_scc_data_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____visible_scc_data_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "visible_scc_data",
  { hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_visible_scc_data_0 },
  { hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_visible_scc_data_0 },
  (MR_Integer) 1,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_visible_scc_data_0,

};

void MR_CALL 
hlds__hlds_pred____Compare____visible_scc_data_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_12 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_13 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_12 == CastY_13);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  {
    MR_Word ArgX1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 0))));
    MR_Word ArgX2_7 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 1))));
    MR_Word ArgY2_8 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 1))));
    MR_Word ArgX3_10 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 2))));
    MR_Word ArgY3_11 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 2))));
    MR_Word SubResult1_6;

    hlds__hlds_pred____Compare____pred_proc_id_0_0(&SubResult1_6, ArgX1_4, ArgY1_5);
    succeeded = (SubResult1_6 != (MR_Integer) 0);
    if (succeeded)
      *HeadVar__1_1 = SubResult1_6;
    else
    {
      MR_Word SubResult2_9;

      hlds__hlds_pred____Compare____pred_proc_id_0_0(&SubResult2_9, ArgX2_7, ArgY2_8);
      succeeded = (SubResult2_9 != (MR_Integer) 0);
      if (succeeded)
        *HeadVar__1_1 = SubResult2_9;
      else
        mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[59]), HeadVar__1_1, ((MR_Box) (ArgX3_10)), ((MR_Box) (ArgY3_11)));
    }
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____visible_scc_data_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_9 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_10 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_9 == CastY_10);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  {
    MR_Word TypeInfo_11_11;
    MR_Word ArgX1_3 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 0))));
    MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgX2_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 1))));
    MR_Word ArgY2_6 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 1))));
    MR_Word ArgX3_7 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 2))));
    MR_Word ArgY3_8 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 2))));

    succeeded = hlds__hlds_pred____Unify____pred_proc_id_0_0(ArgX1_3, ArgY1_4);
    if (succeeded)
    {
      succeeded = hlds__hlds_pred____Unify____pred_proc_id_0_0(ArgX2_5, ArgY2_6);
      if (succeeded)
      {
        TypeInfo_11_11 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[59]);
        succeeded = mercury__builtin__unify_2_p_0(TypeInfo_11_11, ((MR_Box) (ArgX3_7)), ((MR_Box) (ArgY3_8)));
      }
    }
  }
  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____untuple_proc_info_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_6 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_7 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_6 == CastY_7);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  {
    MR_Word ArgX1_4 = (MR_Word) (HeadVar__2_2);
    MR_Word ArgY1_5 = (MR_Word) (HeadVar__3_3);

    mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_1[12]), HeadVar__1_1, ((MR_Box) (ArgX1_4)), ((MR_Box) (ArgY1_5)));
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____untuple_proc_info_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_5 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_6 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_5 == CastY_6);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  {
    MR_Word ArgX1_3 = (MR_Word) (HeadVar__1_1);
    MR_Word ArgY1_4 = (MR_Word) (HeadVar__2_2);

    succeeded = mercury__builtin__unify_2_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_1[12]), ((MR_Box) (ArgX1_3)), ((MR_Box) (ArgY1_4)));
  }
  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____top_functor_mode_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer Cast_HeadVar1_4 = (MR_Integer) (HeadVar__2_2);
  MR_Integer Cast_HeadVar2_5 = (MR_Integer) (HeadVar__3_3);

  succeeded = (Cast_HeadVar1_4 < Cast_HeadVar2_5);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 1;
  else
  {
    succeeded = (Cast_HeadVar1_4 > Cast_HeadVar2_5);
    if (succeeded)
      *HeadVar__1_1 = (MR_Integer) 2;
    else
      *HeadVar__1_1 = (MR_Integer) 0;
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____top_functor_mode_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded = (HeadVar__1_1 == HeadVar__2_2);

  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____table_value_or_addr_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer Cast_HeadVar1_4 = (MR_Integer) (HeadVar__2_2);
  MR_Integer Cast_HeadVar2_5 = (MR_Integer) (HeadVar__3_3);

  succeeded = (Cast_HeadVar1_4 < Cast_HeadVar2_5);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 1;
  else
  {
    succeeded = (Cast_HeadVar1_4 > Cast_HeadVar2_5);
    if (succeeded)
      *HeadVar__1_1 = (MR_Integer) 2;
    else
      *HeadVar__1_1 = (MR_Integer) 0;
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____table_value_or_addr_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded = (HeadVar__1_1 == HeadVar__2_2);

  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____table_step_desc_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_9 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_10 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_9 == CastY_10);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  {
    MR_String ArgX1_4 = ((MR_String) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_String ArgY1_5 = ((MR_String) ((MR_hl_field(0, HeadVar__3_3, 0))));
    MR_Word ArgX2_7 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 1))));
    MR_Word ArgY2_8 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 1))));
    MR_Word SubResult1_6;

    mercury__private_builtin__builtin_compare_string_3_p_0(&SubResult1_6, ArgX1_4, ArgY1_5);
    succeeded = (SubResult1_6 != (MR_Integer) 0);
    if (succeeded)
      *HeadVar__1_1 = SubResult1_6;
    else
      hlds__hlds_pred____Compare____table_trie_step_0_0(HeadVar__1_1, ArgX2_7, ArgY2_8);
  }
}

void MR_CALL 
hlds__hlds_pred____Compare____table_trie_step_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_16 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_17 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_16 == CastY_17);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
    switch (MR_tag((MR_Word) HeadVar__2_2)) {
      default: /*NOTREACHED*/ MR_assert(0);
      case (MR_Integer) 0:
        switch (MR_unmkbody(HeadVar__2_2)) {
          default: /*NOTREACHED*/ MR_assert(0);
          case (MR_Integer) 0:
            switch (MR_tag((MR_Word) HeadVar__3_3)) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 0:
                switch (MR_unmkbody(HeadVar__3_3)) {
                  default: /*NOTREACHED*/ MR_assert(0);
                  case (MR_Integer) 0:
                    *HeadVar__1_1 = (MR_Integer) 0;
                    break;
                  case (MR_Integer) 1:
                  case (MR_Integer) 2:
                  case (MR_Integer) 3:
                  case (MR_Integer) 4:
                  case (MR_Integer) 5:
                  case (MR_Integer) 6:
                  case (MR_Integer) 7:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                }
                break;
              case (MR_Integer) 1:
              case (MR_Integer) 2:
              case (MR_Integer) 3:
                *HeadVar__1_1 = (MR_Integer) 1;
                break;
            }
            break;
          case (MR_Integer) 1:
            switch (MR_tag((MR_Word) HeadVar__3_3)) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 0:
                switch (MR_unmkbody(HeadVar__3_3)) {
                  default: /*NOTREACHED*/ MR_assert(0);
                  case (MR_Integer) 0:
                    *HeadVar__1_1 = (MR_Integer) 2;
                    break;
                  case (MR_Integer) 1:
                    *HeadVar__1_1 = (MR_Integer) 0;
                    break;
                  case (MR_Integer) 2:
                  case (MR_Integer) 3:
                  case (MR_Integer) 4:
                  case (MR_Integer) 5:
                  case (MR_Integer) 6:
                  case (MR_Integer) 7:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                }
                break;
              case (MR_Integer) 1:
                *HeadVar__1_1 = (MR_Integer) 2;
                break;
              case (MR_Integer) 2:
              case (MR_Integer) 3:
                *HeadVar__1_1 = (MR_Integer) 1;
                break;
            }
            break;
          case (MR_Integer) 2:
            switch (MR_tag((MR_Word) HeadVar__3_3)) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 0:
                switch (MR_unmkbody(HeadVar__3_3)) {
                  default: /*NOTREACHED*/ MR_assert(0);
                  case (MR_Integer) 0:
                  case (MR_Integer) 1:
                    *HeadVar__1_1 = (MR_Integer) 2;
                    break;
                  case (MR_Integer) 2:
                    *HeadVar__1_1 = (MR_Integer) 0;
                    break;
                  case (MR_Integer) 3:
                  case (MR_Integer) 4:
                  case (MR_Integer) 5:
                  case (MR_Integer) 6:
                  case (MR_Integer) 7:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                }
                break;
              case (MR_Integer) 1:
                *HeadVar__1_1 = (MR_Integer) 2;
                break;
              case (MR_Integer) 2:
              case (MR_Integer) 3:
                *HeadVar__1_1 = (MR_Integer) 1;
                break;
            }
            break;
          case (MR_Integer) 3:
            switch (MR_tag((MR_Word) HeadVar__3_3)) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 0:
                switch (MR_unmkbody(HeadVar__3_3)) {
                  default: /*NOTREACHED*/ MR_assert(0);
                  case (MR_Integer) 0:
                  case (MR_Integer) 1:
                  case (MR_Integer) 2:
                    *HeadVar__1_1 = (MR_Integer) 2;
                    break;
                  case (MR_Integer) 3:
                    *HeadVar__1_1 = (MR_Integer) 0;
                    break;
                  case (MR_Integer) 4:
                  case (MR_Integer) 5:
                  case (MR_Integer) 6:
                  case (MR_Integer) 7:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                }
                break;
              case (MR_Integer) 1:
                *HeadVar__1_1 = (MR_Integer) 2;
                break;
              case (MR_Integer) 2:
              case (MR_Integer) 3:
                *HeadVar__1_1 = (MR_Integer) 1;
                break;
            }
            break;
          case (MR_Integer) 4:
            switch (MR_tag((MR_Word) HeadVar__3_3)) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 0:
                switch (MR_unmkbody(HeadVar__3_3)) {
                  default: /*NOTREACHED*/ MR_assert(0);
                  case (MR_Integer) 0:
                  case (MR_Integer) 1:
                  case (MR_Integer) 2:
                  case (MR_Integer) 3:
                    *HeadVar__1_1 = (MR_Integer) 2;
                    break;
                  case (MR_Integer) 4:
                    *HeadVar__1_1 = (MR_Integer) 0;
                    break;
                  case (MR_Integer) 5:
                  case (MR_Integer) 6:
                  case (MR_Integer) 7:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                }
                break;
              case (MR_Integer) 1:
              case (MR_Integer) 2:
                *HeadVar__1_1 = (MR_Integer) 2;
                break;
              case (MR_Integer) 3:
                *HeadVar__1_1 = (MR_Integer) 1;
                break;
            }
            break;
          case (MR_Integer) 5:
            switch (MR_tag((MR_Word) HeadVar__3_3)) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 0:
                switch (MR_unmkbody(HeadVar__3_3)) {
                  default: /*NOTREACHED*/ MR_assert(0);
                  case (MR_Integer) 0:
                  case (MR_Integer) 1:
                  case (MR_Integer) 2:
                  case (MR_Integer) 3:
                  case (MR_Integer) 4:
                    *HeadVar__1_1 = (MR_Integer) 2;
                    break;
                  case (MR_Integer) 5:
                    *HeadVar__1_1 = (MR_Integer) 0;
                    break;
                  case (MR_Integer) 6:
                  case (MR_Integer) 7:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                }
                break;
              case (MR_Integer) 1:
              case (MR_Integer) 2:
              case (MR_Integer) 3:
                *HeadVar__1_1 = (MR_Integer) 2;
                break;
            }
            break;
          case (MR_Integer) 6:
            switch (MR_tag((MR_Word) HeadVar__3_3)) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 0:
                switch (MR_unmkbody(HeadVar__3_3)) {
                  default: /*NOTREACHED*/ MR_assert(0);
                  case (MR_Integer) 0:
                  case (MR_Integer) 1:
                  case (MR_Integer) 2:
                  case (MR_Integer) 3:
                  case (MR_Integer) 4:
                  case (MR_Integer) 5:
                    *HeadVar__1_1 = (MR_Integer) 2;
                    break;
                  case (MR_Integer) 6:
                    *HeadVar__1_1 = (MR_Integer) 0;
                    break;
                  case (MR_Integer) 7:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                }
                break;
              case (MR_Integer) 1:
              case (MR_Integer) 2:
              case (MR_Integer) 3:
                *HeadVar__1_1 = (MR_Integer) 2;
                break;
            }
            break;
          case (MR_Integer) 7:
            switch (MR_tag((MR_Word) HeadVar__3_3)) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 0:
                switch (MR_unmkbody(HeadVar__3_3)) {
                  default: /*NOTREACHED*/ MR_assert(0);
                  case (MR_Integer) 0:
                  case (MR_Integer) 1:
                  case (MR_Integer) 2:
                  case (MR_Integer) 3:
                  case (MR_Integer) 4:
                  case (MR_Integer) 5:
                  case (MR_Integer) 6:
                    *HeadVar__1_1 = (MR_Integer) 2;
                    break;
                  case (MR_Integer) 7:
                    *HeadVar__1_1 = (MR_Integer) 0;
                    break;
                }
                break;
              case (MR_Integer) 1:
              case (MR_Integer) 2:
              case (MR_Integer) 3:
                *HeadVar__1_1 = (MR_Integer) 2;
                break;
            }
            break;
        }
        break;
      case (MR_Integer) 1:
        switch (MR_tag((MR_Word) HeadVar__3_3)) {
          default: /*NOTREACHED*/ MR_assert(0);
          case (MR_Integer) 0:
            switch (MR_unmkbody(HeadVar__3_3)) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 0:
                *HeadVar__1_1 = (MR_Integer) 2;
                break;
              case (MR_Integer) 1:
              case (MR_Integer) 2:
              case (MR_Integer) 3:
              case (MR_Integer) 4:
              case (MR_Integer) 5:
              case (MR_Integer) 6:
              case (MR_Integer) 7:
                *HeadVar__1_1 = (MR_Integer) 1;
                break;
            }
            break;
          case (MR_Integer) 1:
            {
              MR_Word ArgX1_4 = ((MR_Unsigned) ((MR_hl_field(1, HeadVar__2_2, 0))) & (MR_Integer) 15);
              MR_Word ArgY1_5 = ((MR_Unsigned) ((MR_hl_field(1, HeadVar__3_3, 0))) & (MR_Integer) 15);
              MR_Integer Var_27 = (MR_Integer) (ArgX1_4);
              MR_Integer Var_28 = (MR_Integer) (ArgY1_5);

              succeeded = (Var_27 < Var_28);
              if (succeeded)
                *HeadVar__1_1 = (MR_Integer) 1;
              else
              {
                succeeded = (Var_27 > Var_28);
                if (succeeded)
                  *HeadVar__1_1 = (MR_Integer) 2;
                else
                  *HeadVar__1_1 = (MR_Integer) 0;
              }
            }
            break;
          case (MR_Integer) 2:
          case (MR_Integer) 3:
            *HeadVar__1_1 = (MR_Integer) 1;
            break;
        }
        break;
      case (MR_Integer) 2:
        switch (MR_tag((MR_Word) HeadVar__3_3)) {
          default: /*NOTREACHED*/ MR_assert(0);
          case (MR_Integer) 0:
            switch (MR_unmkbody(HeadVar__3_3)) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 0:
              case (MR_Integer) 1:
              case (MR_Integer) 2:
              case (MR_Integer) 3:
                *HeadVar__1_1 = (MR_Integer) 2;
                break;
              case (MR_Integer) 4:
              case (MR_Integer) 5:
              case (MR_Integer) 6:
              case (MR_Integer) 7:
                *HeadVar__1_1 = (MR_Integer) 1;
                break;
            }
            break;
          case (MR_Integer) 1:
            *HeadVar__1_1 = (MR_Integer) 2;
            break;
          case (MR_Integer) 2:
            {
              MR_Integer ArgX1_6 = ((MR_Integer) ((MR_hl_field(2, HeadVar__2_2, 0))));
              MR_Integer ArgY1_7 = ((MR_Integer) ((MR_hl_field(2, HeadVar__3_3, 0))));

              succeeded = (ArgX1_6 < ArgY1_7);
              if (succeeded)
                *HeadVar__1_1 = (MR_Integer) 1;
              else
              {
                succeeded = (ArgX1_6 > ArgY1_7);
                if (succeeded)
                  *HeadVar__1_1 = (MR_Integer) 2;
                else
                  *HeadVar__1_1 = (MR_Integer) 0;
              }
            }
            break;
          case (MR_Integer) 3:
            *HeadVar__1_1 = (MR_Integer) 1;
            break;
        }
        break;
      case (MR_Integer) 3:
        switch (MR_tag((MR_Word) HeadVar__3_3)) {
          default: /*NOTREACHED*/ MR_assert(0);
          case (MR_Integer) 0:
            switch (MR_unmkbody(HeadVar__3_3)) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 0:
              case (MR_Integer) 1:
              case (MR_Integer) 2:
              case (MR_Integer) 3:
              case (MR_Integer) 4:
                *HeadVar__1_1 = (MR_Integer) 2;
                break;
              case (MR_Integer) 5:
              case (MR_Integer) 6:
              case (MR_Integer) 7:
                *HeadVar__1_1 = (MR_Integer) 1;
                break;
            }
            break;
          case (MR_Integer) 1:
          case (MR_Integer) 2:
            *HeadVar__1_1 = (MR_Integer) 2;
            break;
          case (MR_Integer) 3:
            {
              MR_Word ArgX1_8 = ((MR_Word) ((MR_hl_field(3, HeadVar__2_2, 0))));
              MR_Word ArgY1_9 = ((MR_Word) ((MR_hl_field(3, HeadVar__3_3, 0))));
              MR_Word ArgX2_11 = ((((MR_Unsigned) ((MR_hl_field(3, HeadVar__2_2, 1))) >> 1)) & (MR_Integer) 1);
              MR_Word ArgY2_12 = ((((MR_Unsigned) ((MR_hl_field(3, HeadVar__3_3, 1))) >> 1)) & (MR_Integer) 1);
              MR_Word ArgX3_14 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__2_2, 1))) & (MR_Integer) 1);
              MR_Word ArgY3_15 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__3_3, 1))) & (MR_Integer) 1);
              MR_Word SubResult1_10;

              parse_tree__prog_data____Compare____mer_type_0_0(&SubResult1_10, ArgX1_8, ArgY1_9);
              succeeded = (SubResult1_10 != (MR_Integer) 0);
              if (succeeded)
                *HeadVar__1_1 = SubResult1_10;
              else
              {
                MR_Word SubResult2_13;
                MR_Integer Var_23 = (MR_Integer) (ArgX2_11);
                MR_Integer Var_24 = (MR_Integer) (ArgY2_12);

                succeeded = (Var_23 < Var_24);
                if (succeeded)
                {
                  SubResult2_13 = (MR_Integer) 1;
                  succeeded = MR_TRUE;
                }
                else
                {
                  succeeded = (Var_23 > Var_24);
                  if (succeeded)
                  {
                    SubResult2_13 = (MR_Integer) 2;
                    succeeded = MR_TRUE;
                  }
                }
                if (succeeded)
                  *HeadVar__1_1 = SubResult2_13;
                else
                {
                  MR_Integer Var_25 = (MR_Integer) (ArgX3_14);
                  MR_Integer Var_26 = (MR_Integer) (ArgY3_15);

                  succeeded = (Var_25 < Var_26);
                  if (succeeded)
                    *HeadVar__1_1 = (MR_Integer) 1;
                  else
                  {
                    succeeded = (Var_25 > Var_26);
                    if (succeeded)
                      *HeadVar__1_1 = (MR_Integer) 2;
                    else
                      *HeadVar__1_1 = (MR_Integer) 0;
                  }
                }
              }
            }
            break;
        }
        break;
    }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____table_step_desc_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_7 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_8 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_7 == CastY_8);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  {
    MR_String ArgX1_3 = ((MR_String) ((MR_hl_field(0, HeadVar__1_1, 0))));
    MR_String ArgY1_4 = ((MR_String) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgX2_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 1))));
    MR_Word ArgY2_6 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 1))));

    succeeded = (strcmp(ArgX1_3, ArgY1_4) == 0);
    if (succeeded)
      succeeded = hlds__hlds_pred____Unify____table_trie_step_0_0(ArgX2_5, ArgY2_6);
  }
  return succeeded;
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____table_trie_step_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_15 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_16 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_15 == CastY_16);
  if (succeeded)
    succeeded = MR_TRUE;
  else
    switch (MR_tag((MR_Word) HeadVar__1_1)) {
      default: /*NOTREACHED*/ MR_assert(0);
      case (MR_Integer) 0:
        {
          MR_Integer CastX_13 = (MR_Integer) (HeadVar__1_1);
          MR_Integer CastY_14 = (MR_Integer) (HeadVar__2_2);

          succeeded = (CastY_14 == CastX_13);
        }
        break;
      case (MR_Integer) 1:
        {
          MR_Word ArgX1_3 = ((MR_Unsigned) ((MR_hl_field(1, HeadVar__1_1, 0))) & (MR_Integer) 15);
          MR_Word ArgY1_4;

          succeeded = ((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 1);
          if (succeeded)
          {
            ArgY1_4 = ((MR_Unsigned) ((MR_hl_field(1, HeadVar__2_2, 0))) & (MR_Integer) 15);
            succeeded = (ArgX1_3 == ArgY1_4);
          }
        }
        break;
      case (MR_Integer) 2:
        {
          MR_Integer ArgX1_5 = ((MR_Integer) ((MR_hl_field(2, HeadVar__1_1, 0))));
          MR_Integer ArgY1_6;

          succeeded = ((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 2);
          if (succeeded)
          {
            ArgY1_6 = ((MR_Integer) ((MR_hl_field(2, HeadVar__2_2, 0))));
            succeeded = (ArgX1_5 == ArgY1_6);
          }
        }
        break;
      case (MR_Integer) 3:
        {
          MR_Word ArgX1_7 = ((MR_Word) ((MR_hl_field(3, HeadVar__1_1, 0))));
          MR_Word ArgY1_8;
          MR_Word ArgX2_9 = ((((MR_Unsigned) ((MR_hl_field(3, HeadVar__1_1, 1))) >> 1)) & (MR_Integer) 1);
          MR_Word ArgY2_10;
          MR_Word ArgX3_11 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__1_1, 1))) & (MR_Integer) 1);
          MR_Word ArgY3_12;

          succeeded = ((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3);
          if (succeeded)
          {
            ArgY1_8 = ((MR_Word) ((MR_hl_field(3, HeadVar__2_2, 0))));
            ArgY2_10 = ((((MR_Unsigned) ((MR_hl_field(3, HeadVar__2_2, 1))) >> 1)) & (MR_Integer) 1);
            ArgY3_12 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__2_2, 1))) & (MR_Integer) 1);
            succeeded = parse_tree__prog_data____Unify____mer_type_0_0(ArgX1_7, ArgY1_8);
            if (succeeded)
            {
              succeeded = (ArgX2_9 == ArgY2_10);
              if (succeeded)
                succeeded = (ArgX3_11 == ArgY3_12);
            }
          }
        }
        break;
    }
  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____table_locn_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_11 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_12 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_11 == CastY_12);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  if (((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 0))
    if (((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 0))
    {
      MR_Integer ArgX1_4 = ((MR_Integer) ((MR_hl_field(0, HeadVar__2_2, 0))));
      MR_Integer ArgY1_5 = ((MR_Integer) ((MR_hl_field(0, HeadVar__3_3, 0))));

      succeeded = (ArgX1_4 < ArgY1_5);
      if (succeeded)
        *HeadVar__1_1 = (MR_Integer) 1;
      else
      {
        succeeded = (ArgX1_4 > ArgY1_5);
        if (succeeded)
          *HeadVar__1_1 = (MR_Integer) 2;
        else
          *HeadVar__1_1 = (MR_Integer) 0;
      }
    }
    else
      *HeadVar__1_1 = (MR_Integer) 1;
  else
  if (((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 0))
    *HeadVar__1_1 = (MR_Integer) 2;
  else
  {
    MR_Integer ArgX1_6 = ((MR_Integer) ((MR_hl_field(1, HeadVar__2_2, 0))));
    MR_Integer ArgY1_7 = ((MR_Integer) ((MR_hl_field(1, HeadVar__3_3, 0))));
    MR_Integer ArgX2_9 = ((MR_Integer) ((MR_hl_field(1, HeadVar__2_2, 1))));
    MR_Integer ArgY2_10 = ((MR_Integer) ((MR_hl_field(1, HeadVar__3_3, 1))));
    MR_Word SubResult1_8;

    succeeded = (ArgX1_6 < ArgY1_7);
    if (succeeded)
    {
      SubResult1_8 = (MR_Integer) 1;
      succeeded = MR_TRUE;
    }
    else
    {
      succeeded = (ArgX1_6 > ArgY1_7);
      if (succeeded)
      {
        SubResult1_8 = (MR_Integer) 2;
        succeeded = MR_TRUE;
      }
    }
    if (succeeded)
      *HeadVar__1_1 = SubResult1_8;
    else
    {
      succeeded = (ArgX2_9 < ArgY2_10);
      if (succeeded)
        *HeadVar__1_1 = (MR_Integer) 1;
      else
      {
        succeeded = (ArgX2_9 > ArgY2_10);
        if (succeeded)
          *HeadVar__1_1 = (MR_Integer) 2;
        else
          *HeadVar__1_1 = (MR_Integer) 0;
      }
    }
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____table_locn_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_9 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_10 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_9 == CastY_10);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  if (((MR_tag((MR_Word) HeadVar__1_1)) == (MR_Integer) 0))
  {
    MR_Integer ArgX1_3 = ((MR_Integer) ((MR_hl_field(0, HeadVar__1_1, 0))));
    MR_Integer ArgY1_4;

    succeeded = ((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 0);
    if (succeeded)
    {
      ArgY1_4 = ((MR_Integer) ((MR_hl_field(0, HeadVar__2_2, 0))));
      succeeded = (ArgX1_3 == ArgY1_4);
    }
  }
  else
  {
    MR_Integer ArgX1_5 = ((MR_Integer) ((MR_hl_field(1, HeadVar__1_1, 0))));
    MR_Integer ArgY1_6;
    MR_Integer ArgX2_7 = ((MR_Integer) ((MR_hl_field(1, HeadVar__1_1, 1))));
    MR_Integer ArgY2_8;

    succeeded = ((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 1);
    if (succeeded)
    {
      ArgY1_6 = ((MR_Integer) ((MR_hl_field(1, HeadVar__2_2, 0))));
      ArgY2_8 = ((MR_Integer) ((MR_hl_field(1, HeadVar__2_2, 1))));
      succeeded = (ArgX1_5 == ArgY1_6);
      if (succeeded)
        succeeded = (ArgX2_7 == ArgY2_8);
    }
  }
  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____table_is_poly_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer Cast_HeadVar1_4 = (MR_Integer) (HeadVar__2_2);
  MR_Integer Cast_HeadVar2_5 = (MR_Integer) (HeadVar__3_3);

  succeeded = (Cast_HeadVar1_4 < Cast_HeadVar2_5);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 1;
  else
  {
    succeeded = (Cast_HeadVar1_4 > Cast_HeadVar2_5);
    if (succeeded)
      *HeadVar__1_1 = (MR_Integer) 2;
    else
      *HeadVar__1_1 = (MR_Integer) 0;
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____table_is_poly_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded = (HeadVar__1_1 == HeadVar__2_2);

  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____table_arg_info_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_15 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_16 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_15 == CastY_16);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  {
    MR_Integer ArgX1_4 = ((MR_Integer) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Integer ArgY1_5 = ((MR_Integer) ((MR_hl_field(0, HeadVar__3_3, 0))));
    MR_String ArgX2_7 = ((MR_String) ((MR_hl_field(0, HeadVar__2_2, 1))));
    MR_String ArgY2_8 = ((MR_String) ((MR_hl_field(0, HeadVar__3_3, 1))));
    MR_Integer ArgX3_10 = ((MR_Integer) ((MR_hl_field(0, HeadVar__2_2, 2))));
    MR_Integer ArgY3_11 = ((MR_Integer) ((MR_hl_field(0, HeadVar__3_3, 2))));
    MR_Word ArgX4_13 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 3))));
    MR_Word ArgY4_14 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 3))));
    MR_Word SubResult1_6;

    succeeded = (ArgX1_4 < ArgY1_5);
    if (succeeded)
    {
      SubResult1_6 = (MR_Integer) 1;
      succeeded = MR_TRUE;
    }
    else
    {
      succeeded = (ArgX1_4 > ArgY1_5);
      if (succeeded)
      {
        SubResult1_6 = (MR_Integer) 2;
        succeeded = MR_TRUE;
      }
    }
    if (succeeded)
      *HeadVar__1_1 = SubResult1_6;
    else
    {
      MR_Word SubResult2_9;

      mercury__private_builtin__builtin_compare_string_3_p_0(&SubResult2_9, ArgX2_7, ArgY2_8);
      succeeded = (SubResult2_9 != (MR_Integer) 0);
      if (succeeded)
        *HeadVar__1_1 = SubResult2_9;
      else
      {
        MR_Word SubResult3_12;

        succeeded = (ArgX3_10 < ArgY3_11);
        if (succeeded)
        {
          SubResult3_12 = (MR_Integer) 1;
          succeeded = MR_TRUE;
        }
        else
        {
          succeeded = (ArgX3_10 > ArgY3_11);
          if (succeeded)
          {
            SubResult3_12 = (MR_Integer) 2;
            succeeded = MR_TRUE;
          }
        }
        if (succeeded)
          *HeadVar__1_1 = SubResult3_12;
        else
          parse_tree__prog_data____Compare____mer_type_0_0(HeadVar__1_1, ArgX4_13, ArgY4_14);
      }
    }
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____table_arg_info_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_11 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_12 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_11 == CastY_12);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  {
    MR_Integer ArgX1_3 = ((MR_Integer) ((MR_hl_field(0, HeadVar__1_1, 0))));
    MR_Integer ArgY1_4 = ((MR_Integer) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_String ArgX2_5 = ((MR_String) ((MR_hl_field(0, HeadVar__1_1, 1))));
    MR_String ArgY2_6 = ((MR_String) ((MR_hl_field(0, HeadVar__2_2, 1))));
    MR_Integer ArgX3_7 = ((MR_Integer) ((MR_hl_field(0, HeadVar__1_1, 2))));
    MR_Integer ArgY3_8 = ((MR_Integer) ((MR_hl_field(0, HeadVar__2_2, 2))));
    MR_Word ArgX4_9 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 3))));
    MR_Word ArgY4_10 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 3))));

    succeeded = (ArgX1_3 == ArgY1_4);
    if (succeeded)
    {
      succeeded = (strcmp(ArgX2_5, ArgY2_6) == 0);
      if (succeeded)
      {
        succeeded = (ArgX3_7 == ArgY3_8);
        if (succeeded)
          succeeded = parse_tree__prog_data____Unify____mer_type_0_0(ArgX4_9, ArgY4_10);
      }
    }
  }
  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____structure_sharing_domain_and_status_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_9 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_10 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_9 == CastY_10);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  {
    MR_Word ArgX1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 0))));
    MR_Word ArgX2_7 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 1))) & (MR_Integer) 3);
    MR_Word ArgY2_8 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__3_3, 1))) & (MR_Integer) 3);
    MR_Word SubResult1_6;

    parse_tree__prog_data_pragma____Compare____structure_sharing_domain_0_0(&SubResult1_6, ArgX1_4, ArgY1_5);
    succeeded = (SubResult1_6 != (MR_Integer) 0);
    if (succeeded)
      *HeadVar__1_1 = SubResult1_6;
    else
    {
      MR_Integer Var_13 = (MR_Integer) (ArgX2_7);
      MR_Integer Var_14 = (MR_Integer) (ArgY2_8);

      succeeded = (Var_13 < Var_14);
      if (succeeded)
        *HeadVar__1_1 = (MR_Integer) 1;
      else
      {
        succeeded = (Var_13 > Var_14);
        if (succeeded)
          *HeadVar__1_1 = (MR_Integer) 2;
        else
          *HeadVar__1_1 = (MR_Integer) 0;
      }
    }
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____structure_sharing_domain_and_status_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_7 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_8 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_7 == CastY_8);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  {
    MR_Word ArgX1_3 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 0))));
    MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgX2_5 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__1_1, 1))) & (MR_Integer) 3);
    MR_Word ArgY2_6 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 1))) & (MR_Integer) 3);

    succeeded = parse_tree__prog_data_pragma____Unify____structure_sharing_domain_0_0(ArgX1_3, ArgY1_4);
    if (succeeded)
      succeeded = (ArgX2_5 == ArgY2_6);
  }
  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____structure_reuse_domain_and_status_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_9 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_10 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_9 == CastY_10);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  {
    MR_Word ArgX1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 0))));
    MR_Word ArgX2_7 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 1))) & (MR_Integer) 3);
    MR_Word ArgY2_8 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__3_3, 1))) & (MR_Integer) 3);
    MR_Word SubResult1_6;

    parse_tree__prog_data_pragma____Compare____structure_reuse_domain_0_0(&SubResult1_6, ArgX1_4, ArgY1_5);
    succeeded = (SubResult1_6 != (MR_Integer) 0);
    if (succeeded)
      *HeadVar__1_1 = SubResult1_6;
    else
    {
      MR_Integer Var_13 = (MR_Integer) (ArgX2_7);
      MR_Integer Var_14 = (MR_Integer) (ArgY2_8);

      succeeded = (Var_13 < Var_14);
      if (succeeded)
        *HeadVar__1_1 = (MR_Integer) 1;
      else
      {
        succeeded = (Var_13 > Var_14);
        if (succeeded)
          *HeadVar__1_1 = (MR_Integer) 2;
        else
          *HeadVar__1_1 = (MR_Integer) 0;
      }
    }
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____structure_reuse_domain_and_status_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_7 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_8 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_7 == CastY_8);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  {
    MR_Word ArgX1_3 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 0))));
    MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgX2_5 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__1_1, 1))) & (MR_Integer) 3);
    MR_Word ArgY2_6 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 1))) & (MR_Integer) 3);

    succeeded = parse_tree__prog_data_pragma____Unify____structure_reuse_domain_0_0(ArgX1_3, ArgY1_4);
    if (succeeded)
      succeeded = (ArgX2_5 == ArgY2_6);
  }
  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____special_proc_return_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_9 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_10 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_9 == CastY_10);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  {
    MR_String ArgX1_4 = ((MR_String) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_String ArgY1_5 = ((MR_String) ((MR_hl_field(0, HeadVar__3_3, 0))));
    MR_String ArgX2_7 = ((MR_String) ((MR_hl_field(0, HeadVar__2_2, 1))));
    MR_String ArgY2_8 = ((MR_String) ((MR_hl_field(0, HeadVar__3_3, 1))));
    MR_Word SubResult1_6;

    mercury__private_builtin__builtin_compare_string_3_p_0(&SubResult1_6, ArgX1_4, ArgY1_5);
    succeeded = (SubResult1_6 != (MR_Integer) 0);
    if (succeeded)
      *HeadVar__1_1 = SubResult1_6;
    else
      mercury__private_builtin__builtin_compare_string_3_p_0(HeadVar__1_1, ArgX2_7, ArgY2_8);
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____special_proc_return_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_7 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_8 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_7 == CastY_8);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  {
    MR_String ArgX1_3 = ((MR_String) ((MR_hl_field(0, HeadVar__1_1, 0))));
    MR_String ArgY1_4 = ((MR_String) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_String ArgX2_5 = ((MR_String) ((MR_hl_field(0, HeadVar__1_1, 1))));
    MR_String ArgY2_6 = ((MR_String) ((MR_hl_field(0, HeadVar__2_2, 1))));

    succeeded = (strcmp(ArgX1_3, ArgY1_4) == 0);
    if (succeeded)
      succeeded = (strcmp(ArgX2_5, ArgY2_6) == 0);
  }
  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____scc_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_Word Cast_HeadVar1_4 = HeadVar__2_2;
  MR_Word Cast_HeadVar2_5 = HeadVar__3_3;

  mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[35]), HeadVar__1_1, ((MR_Box) (Cast_HeadVar1_4)), ((MR_Box) (Cast_HeadVar2_5)));
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____scc_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Word Cast_HeadVar1_3 = HeadVar__1_1;
  MR_Word Cast_HeadVar2_4 = HeadVar__2_2;

  succeeded = mercury__builtin__unify_2_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[35]), ((MR_Box) (Cast_HeadVar1_3)), ((MR_Box) (Cast_HeadVar2_4)));
  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____proc_trailing_info_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_9 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_10 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_9 == CastY_10);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  {
    MR_Word ArgX1_4 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 0))) & (MR_Integer) 3);
    MR_Word ArgY1_5 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__3_3, 0))) & (MR_Integer) 3);
    MR_Word ArgX2_7 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 1))));
    MR_Word ArgY2_8 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 1))));
    MR_Word SubResult1_6;
    MR_Integer Var_13 = (MR_Integer) (ArgX1_4);
    MR_Integer Var_14 = (MR_Integer) (ArgY1_5);

    succeeded = (Var_13 < Var_14);
    if (succeeded)
    {
      SubResult1_6 = (MR_Integer) 1;
      succeeded = MR_TRUE;
    }
    else
    {
      succeeded = (Var_13 > Var_14);
      if (succeeded)
      {
        SubResult1_6 = (MR_Integer) 2;
        succeeded = MR_TRUE;
      }
    }
    if (succeeded)
      *HeadVar__1_1 = SubResult1_6;
    else
      mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[23]), HeadVar__1_1, ((MR_Box) (ArgX2_7)), ((MR_Box) (ArgY2_8)));
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____proc_trailing_info_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_7 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_8 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_7 == CastY_8);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  {
    MR_Word TypeInfo_9_9;
    MR_Word ArgX1_3 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__1_1, 0))) & (MR_Integer) 3);
    MR_Word ArgY1_4 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 0))) & (MR_Integer) 3);
    MR_Word ArgX2_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 1))));
    MR_Word ArgY2_6 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 1))));

    succeeded = (ArgX1_3 == ArgY1_4);
    if (succeeded)
    {
      TypeInfo_9_9 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[23]);
      succeeded = mercury__builtin__unify_2_p_0(TypeInfo_9_9, ((MR_Box) (ArgX2_5)), ((MR_Box) (ArgY2_6)));
    }
  }
  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____proc_table_struct_info_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_30 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_31 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_30 == CastY_31);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  {
    MR_Word ArgX1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 0))));
    MR_Word ArgX2_7 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 1))));
    MR_Word ArgY2_8 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 1))));
    MR_Word ArgX3_10 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 2))));
    MR_Word ArgY3_11 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 2))));
    MR_Integer ArgX4_13 = ((MR_Integer) ((MR_hl_field(0, HeadVar__2_2, 3))));
    MR_Integer ArgY4_14 = ((MR_Integer) ((MR_hl_field(0, HeadVar__3_3, 3))));
    MR_Integer ArgX5_16 = ((MR_Integer) ((MR_hl_field(0, HeadVar__2_2, 4))));
    MR_Integer ArgY5_17 = ((MR_Integer) ((MR_hl_field(0, HeadVar__3_3, 4))));
    MR_Word ArgX6_19 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 5))));
    MR_Word ArgY6_20 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 5))));
    MR_Word ArgX7_22 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 6))));
    MR_Word ArgY7_23 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 6))));
    MR_Word ArgX8_25 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 7))));
    MR_Word ArgY8_26 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 7))));
    MR_Word ArgX9_28 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 8))));
    MR_Word ArgY9_29 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 8))));
    MR_Word SubResult1_6;

    hlds__hlds_rtti____Compare____rtti_proc_label_0_0(&SubResult1_6, ArgX1_4, ArgY1_5);
    succeeded = (SubResult1_6 != (MR_Integer) 0);
    if (succeeded)
      *HeadVar__1_1 = SubResult1_6;
    else
    {
      MR_Word SubResult2_9;

      mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[2]), &SubResult2_9, ((MR_Box) (ArgX2_7)), ((MR_Box) (ArgY2_8)));
      succeeded = (SubResult2_9 != (MR_Integer) 0);
      if (succeeded)
        *HeadVar__1_1 = SubResult2_9;
      else
      {
        MR_Word SubResult3_12;

        mercury__term_context____Compare____term_context_0_0(&SubResult3_12, ArgX3_10, ArgY3_11);
        succeeded = (SubResult3_12 != (MR_Integer) 0);
        if (succeeded)
          *HeadVar__1_1 = SubResult3_12;
        else
        {
          MR_Word SubResult4_15;

          succeeded = (ArgX4_13 < ArgY4_14);
          if (succeeded)
          {
            SubResult4_15 = (MR_Integer) 1;
            succeeded = MR_TRUE;
          }
          else
          {
            succeeded = (ArgX4_13 > ArgY4_14);
            if (succeeded)
            {
              SubResult4_15 = (MR_Integer) 2;
              succeeded = MR_TRUE;
            }
          }
          if (succeeded)
            *HeadVar__1_1 = SubResult4_15;
          else
          {
            MR_Word SubResult5_18;

            succeeded = (ArgX5_16 < ArgY5_17);
            if (succeeded)
            {
              SubResult5_18 = (MR_Integer) 1;
              succeeded = MR_TRUE;
            }
            else
            {
              succeeded = (ArgX5_16 > ArgY5_17);
              if (succeeded)
              {
                SubResult5_18 = (MR_Integer) 2;
                succeeded = MR_TRUE;
              }
            }
            if (succeeded)
              *HeadVar__1_1 = SubResult5_18;
            else
            {
              MR_Word SubResult6_21;

              mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[52]), &SubResult6_21, ((MR_Box) (ArgX6_19)), ((MR_Box) (ArgY6_20)));
              succeeded = (SubResult6_21 != (MR_Integer) 0);
              if (succeeded)
                *HeadVar__1_1 = SubResult6_21;
              else
              {
                MR_Word SubResult7_24;

                mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[53]), &SubResult7_24, ((MR_Box) (ArgX7_22)), ((MR_Box) (ArgY7_23)));
                succeeded = (SubResult7_24 != (MR_Integer) 0);
                if (succeeded)
                  *HeadVar__1_1 = SubResult7_24;
                else
                {
                  MR_Word SubResult8_27;

                  hlds__hlds_pred____Compare____table_arg_infos_0_0(&SubResult8_27, ArgX8_25, ArgY8_26);
                  succeeded = (SubResult8_27 != (MR_Integer) 0);
                  if (succeeded)
                    *HeadVar__1_1 = SubResult8_27;
                  else
                    parse_tree__prog_data_pragma____Compare____tabled_eval_method_0_0(HeadVar__1_1, ArgX9_28, ArgY9_29);
                }
              }
            }
          }
        }
      }
    }
  }
}

void MR_CALL 
hlds__hlds_pred____Compare____table_arg_infos_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_9 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_10 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_9 == CastY_10);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  {
    MR_Word ArgX1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 0))));
    MR_Word ArgX2_7 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 1))));
    MR_Word ArgY2_8 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 1))));
    MR_Word SubResult1_6;

    mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[58]), &SubResult1_6, ((MR_Box) (ArgX1_4)), ((MR_Box) (ArgY1_5)));
    succeeded = (SubResult1_6 != (MR_Integer) 0);
    if (succeeded)
      *HeadVar__1_1 = SubResult1_6;
    else
      mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_1[11]), HeadVar__1_1, ((MR_Box) (ArgX2_7)), ((MR_Box) (ArgY2_8)));
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____proc_table_struct_info_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_21 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_22 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_21 == CastY_22);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  {
    MR_Word TypeInfo_24_24;
    MR_Word TypeInfo_26_26;
    MR_Word TypeInfo_27_27;
    MR_Word ArgX1_3 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 0))));
    MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgX2_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 1))));
    MR_Word ArgY2_6 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 1))));
    MR_Word ArgX3_7 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 2))));
    MR_Word ArgY3_8 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 2))));
    MR_Integer ArgX4_9 = ((MR_Integer) ((MR_hl_field(0, HeadVar__1_1, 3))));
    MR_Integer ArgY4_10 = ((MR_Integer) ((MR_hl_field(0, HeadVar__2_2, 3))));
    MR_Integer ArgX5_11 = ((MR_Integer) ((MR_hl_field(0, HeadVar__1_1, 4))));
    MR_Integer ArgY5_12 = ((MR_Integer) ((MR_hl_field(0, HeadVar__2_2, 4))));
    MR_Word ArgX6_13 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 5))));
    MR_Word ArgY6_14 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 5))));
    MR_Word ArgX7_15 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 6))));
    MR_Word ArgY7_16 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 6))));
    MR_Word ArgX8_17 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 7))));
    MR_Word ArgY8_18 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 7))));
    MR_Word ArgX9_19 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 8))));
    MR_Word ArgY9_20 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 8))));

    succeeded = hlds__hlds_rtti____Unify____rtti_proc_label_0_0(ArgX1_3, ArgY1_4);
    if (succeeded)
    {
      TypeInfo_24_24 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[2]);
      succeeded = mercury__builtin__unify_2_p_0(TypeInfo_24_24, ((MR_Box) (ArgX2_5)), ((MR_Box) (ArgY2_6)));
      if (succeeded)
      {
        succeeded = mercury__term_context____Unify____term_context_0_0(ArgX3_7, ArgY3_8);
        if (succeeded)
        {
          succeeded = (ArgX4_9 == ArgY4_10);
          if (succeeded)
          {
            succeeded = (ArgX5_11 == ArgY5_12);
            if (succeeded)
            {
              TypeInfo_26_26 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[52]);
              succeeded = mercury__builtin__unify_2_p_0(TypeInfo_26_26, ((MR_Box) (ArgX6_13)), ((MR_Box) (ArgY6_14)));
              if (succeeded)
              {
                TypeInfo_27_27 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[53]);
                succeeded = mercury__builtin__unify_2_p_0(TypeInfo_27_27, ((MR_Box) (ArgX7_15)), ((MR_Box) (ArgY7_16)));
                if (succeeded)
                {
                  succeeded = hlds__hlds_pred____Unify____table_arg_infos_0_0(ArgX8_17, ArgY8_18);
                  if (succeeded)
                    succeeded = parse_tree__prog_data_pragma____Unify____tabled_eval_method_0_0(ArgX9_19, ArgY9_20);
                }
              }
            }
          }
        }
      }
    }
  }
  return succeeded;
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____table_arg_infos_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_7 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_8 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_7 == CastY_8);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  {
    MR_Word TypeInfo_10_10;
    MR_Word ArgX1_3 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 0))));
    MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgX2_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 1))));
    MR_Word ArgY2_6 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 1))));

    succeeded = mercury__builtin__unify_2_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[58]), ((MR_Box) (ArgX1_3)), ((MR_Box) (ArgY1_4)));
    if (succeeded)
    {
      TypeInfo_10_10 = (MR_Word) (&hlds__hlds_pred_scalar_common_1[11]);
      succeeded = mercury__builtin__unify_2_p_0(TypeInfo_10_10, ((MR_Box) (ArgX2_5)), ((MR_Box) (ArgY2_6)));
    }
  }
  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____proc_table_io_info_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_6 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_7 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_6 == CastY_7);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  {
    MR_Word ArgX1_4 = (MR_Word) (HeadVar__2_2);
    MR_Word ArgY1_5 = (MR_Word) (HeadVar__3_3);

    mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[51]), HeadVar__1_1, ((MR_Box) (ArgX1_4)), ((MR_Box) (ArgY1_5)));
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____proc_table_io_info_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_5 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_6 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_5 == CastY_6);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  {
    MR_Word ArgX1_3 = (MR_Word) (HeadVar__1_1);
    MR_Word ArgY1_4 = (MR_Word) (HeadVar__2_2);

    succeeded = mercury__builtin__unify_2_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[51]), ((MR_Box) (ArgX1_3)), ((MR_Box) (ArgY1_4)));
  }
  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____proc_table_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_Word Cast_HeadVar1_4 = HeadVar__2_2;
  MR_Word Cast_HeadVar2_5 = HeadVar__3_3;

  mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_1[7]), HeadVar__1_1, ((MR_Box) (Cast_HeadVar1_4)), ((MR_Box) (Cast_HeadVar2_5)));
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____proc_table_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Word Cast_HeadVar1_3 = HeadVar__1_1;
  MR_Word Cast_HeadVar2_4 = HeadVar__2_2;

  succeeded = mercury__builtin__unify_2_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_1[7]), ((MR_Box) (Cast_HeadVar1_3)), ((MR_Box) (Cast_HeadVar2_4)));
  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____proc_mm_tabling_info_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_9 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_10 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_9 == CastY_10);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  {
    MR_Word ArgX1_4 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 0))) & (MR_Integer) 3);
    MR_Word ArgY1_5 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__3_3, 0))) & (MR_Integer) 3);
    MR_Word ArgX2_7 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 1))));
    MR_Word ArgY2_8 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 1))));
    MR_Word SubResult1_6;
    MR_Integer Var_13 = (MR_Integer) (ArgX1_4);
    MR_Integer Var_14 = (MR_Integer) (ArgY1_5);

    succeeded = (Var_13 < Var_14);
    if (succeeded)
    {
      SubResult1_6 = (MR_Integer) 1;
      succeeded = MR_TRUE;
    }
    else
    {
      succeeded = (Var_13 > Var_14);
      if (succeeded)
      {
        SubResult1_6 = (MR_Integer) 2;
        succeeded = MR_TRUE;
      }
    }
    if (succeeded)
      *HeadVar__1_1 = SubResult1_6;
    else
      mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[23]), HeadVar__1_1, ((MR_Box) (ArgX2_7)), ((MR_Box) (ArgY2_8)));
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____proc_mm_tabling_info_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_7 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_8 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_7 == CastY_8);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  {
    MR_Word TypeInfo_9_9;
    MR_Word ArgX1_3 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__1_1, 0))) & (MR_Integer) 3);
    MR_Word ArgY1_4 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 0))) & (MR_Integer) 3);
    MR_Word ArgX2_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 1))));
    MR_Word ArgY2_6 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 1))));

    succeeded = (ArgX1_3 == ArgY1_4);
    if (succeeded)
    {
      TypeInfo_9_9 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[23]);
      succeeded = mercury__builtin__unify_2_p_0(TypeInfo_9_9, ((MR_Box) (ArgX2_5)), ((MR_Box) (ArgY2_6)));
    }
  }
  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____proc_info_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_39 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_40 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_39 == CastY_40);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  {
    MR_Word ArgX1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 0))));
    MR_Word ArgX2_7 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 1))));
    MR_Word ArgY2_8 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 1))));
    MR_Word ArgX3_10 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 2))));
    MR_Word ArgY3_11 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 2))));
    MR_Word ArgX4_13 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 3))));
    MR_Word ArgY4_14 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 3))));
    MR_Word ArgX5_16 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 4))));
    MR_Word ArgY5_17 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 4))));
    MR_Word ArgX6_19 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 5))));
    MR_Word ArgY6_20 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 5))));
    MR_Word ArgX7_22 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 6))));
    MR_Word ArgY7_23 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 6))));
    MR_Word ArgX8_25 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 7))));
    MR_Word ArgY8_26 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 7))));
    MR_Word ArgX9_28 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 8))));
    MR_Word ArgY9_29 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 8))));
    MR_Word ArgX10_31 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 9))) & (MR_Integer) 7);
    MR_Word ArgY10_32 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__3_3, 9))) & (MR_Integer) 7);
    MR_Word ArgX11_34 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 10))));
    MR_Word ArgY11_35 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 10))));
    MR_Word ArgX12_37 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 11))));
    MR_Word ArgY12_38 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 11))));
    MR_Word SubResult1_6;

    mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[6]), &SubResult1_6, ((MR_Box) (ArgX1_4)), ((MR_Box) (ArgY1_5)));
    succeeded = (SubResult1_6 != (MR_Integer) 0);
    if (succeeded)
      *HeadVar__1_1 = SubResult1_6;
    else
    {
      MR_Word SubResult2_9;

      hlds__hlds_goal____Compare____hlds_goal_0_0(&SubResult2_9, ArgX2_7, ArgY2_8);
      succeeded = (SubResult2_9 != (MR_Integer) 0);
      if (succeeded)
        *HeadVar__1_1 = SubResult2_9;
      else
      {
        MR_Word SubResult3_12;

        parse_tree__var_table____Compare____var_table_0_0(&SubResult3_12, ArgX3_10, ArgY3_11);
        succeeded = (SubResult3_12 != (MR_Integer) 0);
        if (succeeded)
          *HeadVar__1_1 = SubResult3_12;
        else
        {
          MR_Word SubResult4_15;

          hlds__hlds_rtti____Compare____rtti_varmaps_0_0(&SubResult4_15, ArgX4_13, ArgY4_14);
          succeeded = (SubResult4_15 != (MR_Integer) 0);
          if (succeeded)
            *HeadVar__1_1 = SubResult4_15;
          else
          {
            MR_Word SubResult5_18;

            mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[24]), &SubResult5_18, ((MR_Box) (ArgX5_16)), ((MR_Box) (ArgY5_17)));
            succeeded = (SubResult5_18 != (MR_Integer) 0);
            if (succeeded)
              *HeadVar__1_1 = SubResult5_18;
            else
            {
              MR_Word SubResult6_21;

              mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[26]), &SubResult6_21, ((MR_Box) (ArgX6_19)), ((MR_Box) (ArgY6_20)));
              succeeded = (SubResult6_21 != (MR_Integer) 0);
              if (succeeded)
                *HeadVar__1_1 = SubResult6_21;
              else
              {
                MR_Word SubResult7_24;

                mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[25]), &SubResult7_24, ((MR_Box) (ArgX7_22)), ((MR_Box) (ArgY7_23)));
                succeeded = (SubResult7_24 != (MR_Integer) 0);
                if (succeeded)
                  *HeadVar__1_1 = SubResult7_24;
                else
                {
                  MR_Word SubResult8_27;

                  mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[28]), &SubResult8_27, ((MR_Box) (ArgX8_25)), ((MR_Box) (ArgY8_26)));
                  succeeded = (SubResult8_27 != (MR_Integer) 0);
                  if (succeeded)
                    *HeadVar__1_1 = SubResult8_27;
                  else
                  {
                    MR_Word SubResult9_30;

                    mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[29]), &SubResult9_30, ((MR_Box) (ArgX9_28)), ((MR_Box) (ArgY9_29)));
                    succeeded = (SubResult9_30 != (MR_Integer) 0);
                    if (succeeded)
                      *HeadVar__1_1 = SubResult9_30;
                    else
                    {
                      MR_Word SubResult10_33;
                      MR_Integer Var_53 = (MR_Integer) (ArgX10_31);
                      MR_Integer Var_54 = (MR_Integer) (ArgY10_32);

                      succeeded = (Var_53 < Var_54);
                      if (succeeded)
                      {
                        SubResult10_33 = (MR_Integer) 1;
                        succeeded = MR_TRUE;
                      }
                      else
                      {
                        succeeded = (Var_53 > Var_54);
                        if (succeeded)
                        {
                          SubResult10_33 = (MR_Integer) 2;
                          succeeded = MR_TRUE;
                        }
                      }
                      if (succeeded)
                        *HeadVar__1_1 = SubResult10_33;
                      else
                      {
                        MR_Word SubResult11_36;

                        parse_tree__prog_data_pragma____Compare____eval_method_0_0(&SubResult11_36, ArgX11_34, ArgY11_35);
                        succeeded = (SubResult11_36 != (MR_Integer) 0);
                        if (succeeded)
                          *HeadVar__1_1 = SubResult11_36;
                        else
                          hlds__hlds_pred____Compare____proc_sub_info_0_0(HeadVar__1_1, ArgX12_37, ArgY12_38);
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

static void MR_CALL 
hlds__hlds_pred____Compare____proc_sub_info_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_111 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_112 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_111 == CastY_112);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  {
    MR_Word ArgX1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 0))));
    MR_Word ArgX2_7 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 1))));
    MR_Word ArgY2_8 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 1))));
    MR_Word ArgX3_10 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 2))) & (MR_Integer) 1);
    MR_Word ArgY3_11 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__3_3, 2))) & (MR_Integer) 1);
    MR_Word ArgX4_13 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 3))));
    MR_Word ArgY4_14 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 3))));
    MR_Word ArgX5_16 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 4))) & (MR_Integer) 3);
    MR_Word ArgY5_17 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__3_3, 4))) & (MR_Integer) 3);
    MR_Word ArgX6_19 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 5))));
    MR_Word ArgY6_20 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 5))));
    MR_Word ArgX7_22 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 6))));
    MR_Word ArgY7_23 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 6))));
    MR_Word ArgX8_25 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 7))));
    MR_Word ArgY8_26 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 7))));
    MR_Word ArgX9_28 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 8))));
    MR_Word ArgY9_29 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 8))));
    MR_Word ArgX10_31 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 9))));
    MR_Word ArgY10_32 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 9))));
    MR_Word ArgX11_34 = ((((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 10))) >> 3)) & (MR_Integer) 1);
    MR_Word ArgY11_35 = ((((MR_Unsigned) ((MR_hl_field(0, HeadVar__3_3, 10))) >> 3)) & (MR_Integer) 1);
    MR_Word ArgX12_37 = ((((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 10))) >> 2)) & (MR_Integer) 1);
    MR_Word ArgY12_38 = ((((MR_Unsigned) ((MR_hl_field(0, HeadVar__3_3, 10))) >> 2)) & (MR_Integer) 1);
    MR_Word ArgX13_40 = ((((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 10))) >> 1)) & (MR_Integer) 1);
    MR_Word ArgY13_41 = ((((MR_Unsigned) ((MR_hl_field(0, HeadVar__3_3, 10))) >> 1)) & (MR_Integer) 1);
    MR_Word ArgX14_43 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 10))) & (MR_Integer) 1);
    MR_Word ArgY14_44 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__3_3, 10))) & (MR_Integer) 1);
    MR_Word ArgX15_46 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 11))));
    MR_Word ArgY15_47 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 11))));
    MR_Word ArgX16_49 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 12))));
    MR_Word ArgY16_50 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 12))));
    MR_Word ArgX17_52 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 13))));
    MR_Word ArgY17_53 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 13))));
    MR_Word ArgX18_55 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 14))));
    MR_Word ArgY18_56 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 14))));
    MR_Word ArgX19_58 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 15))));
    MR_Word ArgY19_59 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 15))));
    MR_Word ArgX20_61 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 16))));
    MR_Word ArgY20_62 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 16))));
    MR_Word ArgX21_64 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 17))));
    MR_Word ArgY21_65 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 17))));
    MR_Word ArgX22_67 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 18))));
    MR_Word ArgY22_68 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 18))));
    MR_Word ArgX23_70 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 19))) & (MR_Integer) 1);
    MR_Word ArgY23_71 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__3_3, 19))) & (MR_Integer) 1);
    MR_Word ArgX24_73 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 20))));
    MR_Word ArgY24_74 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 20))));
    MR_Word ArgX25_76 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 21))));
    MR_Word ArgY25_77 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 21))));
    MR_Word ArgX26_79 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 22))));
    MR_Word ArgY26_80 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 22))));
    MR_Word ArgX27_82 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 23))));
    MR_Word ArgY27_83 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 23))));
    MR_Word ArgX28_85 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 24))));
    MR_Word ArgY28_86 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 24))));
    MR_Word ArgX29_88 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 25))));
    MR_Word ArgY29_89 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 25))));
    MR_Word ArgX30_91 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 26))));
    MR_Word ArgY30_92 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 26))));
    MR_Word ArgX31_94 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 27))));
    MR_Word ArgY31_95 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 27))));
    MR_Word ArgX32_97 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 28))));
    MR_Word ArgY32_98 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 28))));
    MR_Word ArgX33_100 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 29))));
    MR_Word ArgY33_101 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 29))));
    MR_Word ArgX34_103 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 30))));
    MR_Word ArgY34_104 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 30))));
    MR_Word ArgX35_106 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 31))));
    MR_Word ArgY35_107 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 31))));
    MR_Word ArgX36_109 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 32))));
    MR_Word ArgY36_110 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 32))));
    MR_Word SubResult1_6;

    mercury__term_context____Compare____term_context_0_0(&SubResult1_6, ArgX1_4, ArgY1_5);
    succeeded = (SubResult1_6 != (MR_Integer) 0);
    if (succeeded)
      *HeadVar__1_1 = SubResult1_6;
    else
    {
      MR_Word SubResult2_9;

      parse_tree__prog_data____Compare____item_seq_num_0_0(&SubResult2_9, ArgX2_7, ArgY2_8);
      succeeded = (SubResult2_9 != (MR_Integer) 0);
      if (succeeded)
        *HeadVar__1_1 = SubResult2_9;
      else
      {
        MR_Word SubResult3_12;
        MR_Integer Var_149 = (MR_Integer) (ArgX3_10);
        MR_Integer Var_150 = (MR_Integer) (ArgY3_11);

        succeeded = (Var_149 < Var_150);
        if (succeeded)
        {
          SubResult3_12 = (MR_Integer) 1;
          succeeded = MR_TRUE;
        }
        else
        {
          succeeded = (Var_149 > Var_150);
          if (succeeded)
          {
            SubResult3_12 = (MR_Integer) 2;
            succeeded = MR_TRUE;
          }
        }
        if (succeeded)
          *HeadVar__1_1 = SubResult3_12;
        else
        {
          MR_Word SubResult4_15;

          mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[31]), &SubResult4_15, ((MR_Box) (ArgX4_13)), ((MR_Box) (ArgY4_14)));
          succeeded = (SubResult4_15 != (MR_Integer) 0);
          if (succeeded)
            *HeadVar__1_1 = SubResult4_15;
          else
          {
            MR_Word SubResult5_18;
            MR_Integer Var_151 = (MR_Integer) (ArgX5_16);
            MR_Integer Var_152 = (MR_Integer) (ArgY5_17);

            succeeded = (Var_151 < Var_152);
            if (succeeded)
            {
              SubResult5_18 = (MR_Integer) 1;
              succeeded = MR_TRUE;
            }
            else
            {
              succeeded = (Var_151 > Var_152);
              if (succeeded)
              {
                SubResult5_18 = (MR_Integer) 2;
                succeeded = MR_TRUE;
              }
            }
            if (succeeded)
              *HeadVar__1_1 = SubResult5_18;
            else
            {
              MR_Word SubResult6_21;

              mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[32]), &SubResult6_21, ((MR_Box) (ArgX6_19)), ((MR_Box) (ArgY6_20)));
              succeeded = (SubResult6_21 != (MR_Integer) 0);
              if (succeeded)
                *HeadVar__1_1 = SubResult6_21;
              else
              {
                MR_Word SubResult7_24;

                mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[33]), &SubResult7_24, ((MR_Box) (ArgX7_22)), ((MR_Box) (ArgY7_23)));
                succeeded = (SubResult7_24 != (MR_Integer) 0);
                if (succeeded)
                  *HeadVar__1_1 = SubResult7_24;
                else
                {
                  MR_Word SubResult8_27;

                  mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_1[4]), &SubResult8_27, ((MR_Box) (ArgX8_25)), ((MR_Box) (ArgY8_26)));
                  succeeded = (SubResult8_27 != (MR_Integer) 0);
                  if (succeeded)
                    *HeadVar__1_1 = SubResult8_27;
                  else
                  {
                    MR_Word SubResult9_30;

                    mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[34]), &SubResult9_30, ((MR_Box) (ArgX9_28)), ((MR_Box) (ArgY9_29)));
                    succeeded = (SubResult9_30 != (MR_Integer) 0);
                    if (succeeded)
                      *HeadVar__1_1 = SubResult9_30;
                    else
                    {
                      MR_Word SubResult10_33;

                      mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[35]), &SubResult10_33, ((MR_Box) (ArgX10_31)), ((MR_Box) (ArgY10_32)));
                      succeeded = (SubResult10_33 != (MR_Integer) 0);
                      if (succeeded)
                        *HeadVar__1_1 = SubResult10_33;
                      else
                      {
                        MR_Word SubResult11_36;
                        MR_Integer Var_153 = (MR_Integer) (ArgX11_34);
                        MR_Integer Var_154 = (MR_Integer) (ArgY11_35);

                        succeeded = (Var_153 < Var_154);
                        if (succeeded)
                        {
                          SubResult11_36 = (MR_Integer) 1;
                          succeeded = MR_TRUE;
                        }
                        else
                        {
                          succeeded = (Var_153 > Var_154);
                          if (succeeded)
                          {
                            SubResult11_36 = (MR_Integer) 2;
                            succeeded = MR_TRUE;
                          }
                        }
                        if (succeeded)
                          *HeadVar__1_1 = SubResult11_36;
                        else
                        {
                          MR_Word SubResult12_39;
                          MR_Integer Var_155 = (MR_Integer) (ArgX12_37);
                          MR_Integer Var_156 = (MR_Integer) (ArgY12_38);

                          succeeded = (Var_155 < Var_156);
                          if (succeeded)
                          {
                            SubResult12_39 = (MR_Integer) 1;
                            succeeded = MR_TRUE;
                          }
                          else
                          {
                            succeeded = (Var_155 > Var_156);
                            if (succeeded)
                            {
                              SubResult12_39 = (MR_Integer) 2;
                              succeeded = MR_TRUE;
                            }
                          }
                          if (succeeded)
                            *HeadVar__1_1 = SubResult12_39;
                          else
                          {
                            MR_Word SubResult13_42;
                            MR_Integer Var_157 = (MR_Integer) (ArgX13_40);
                            MR_Integer Var_158 = (MR_Integer) (ArgY13_41);

                            succeeded = (Var_157 < Var_158);
                            if (succeeded)
                            {
                              SubResult13_42 = (MR_Integer) 1;
                              succeeded = MR_TRUE;
                            }
                            else
                            {
                              succeeded = (Var_157 > Var_158);
                              if (succeeded)
                              {
                                SubResult13_42 = (MR_Integer) 2;
                                succeeded = MR_TRUE;
                              }
                            }
                            if (succeeded)
                              *HeadVar__1_1 = SubResult13_42;
                            else
                            {
                              MR_Word SubResult14_45;
                              MR_Integer Var_159 = (MR_Integer) (ArgX14_43);
                              MR_Integer Var_160 = (MR_Integer) (ArgY14_44);

                              succeeded = (Var_159 < Var_160);
                              if (succeeded)
                              {
                                SubResult14_45 = (MR_Integer) 1;
                                succeeded = MR_TRUE;
                              }
                              else
                              {
                                succeeded = (Var_159 > Var_160);
                                if (succeeded)
                                {
                                  SubResult14_45 = (MR_Integer) 2;
                                  succeeded = MR_TRUE;
                                }
                              }
                              if (succeeded)
                                *HeadVar__1_1 = SubResult14_45;
                              else
                              {
                                MR_Word SubResult15_48;

                                hlds__hlds_pred____Compare____has_tail_rec_call_0_0(&SubResult15_48, ArgX15_46, ArgY15_47);
                                succeeded = (SubResult15_48 != (MR_Integer) 0);
                                if (succeeded)
                                  *HeadVar__1_1 = SubResult15_48;
                                else
                                {
                                  MR_Word SubResult16_51;

                                  mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[36]), &SubResult16_51, ((MR_Box) (ArgX16_49)), ((MR_Box) (ArgY16_50)));
                                  succeeded = (SubResult16_51 != (MR_Integer) 0);
                                  if (succeeded)
                                    *HeadVar__1_1 = SubResult16_51;
                                  else
                                  {
                                    MR_Word SubResult17_54;

                                    mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[37]), &SubResult17_54, ((MR_Box) (ArgX17_52)), ((MR_Box) (ArgY17_53)));
                                    succeeded = (SubResult17_54 != (MR_Integer) 0);
                                    if (succeeded)
                                      *HeadVar__1_1 = SubResult17_54;
                                    else
                                    {
                                      MR_Word SubResult18_57;

                                      mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[15]), &SubResult18_57, ((MR_Box) (ArgX18_55)), ((MR_Box) (ArgY18_56)));
                                      succeeded = (SubResult18_57 != (MR_Integer) 0);
                                      if (succeeded)
                                        *HeadVar__1_1 = SubResult18_57;
                                      else
                                      {
                                        MR_Word SubResult19_60;

                                        mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[39]), &SubResult19_60, ((MR_Box) (ArgX19_58)), ((MR_Box) (ArgY19_59)));
                                        succeeded = (SubResult19_60 != (MR_Integer) 0);
                                        if (succeeded)
                                          *HeadVar__1_1 = SubResult19_60;
                                        else
                                        {
                                          MR_Word SubResult20_63;

                                          mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[40]), &SubResult20_63, ((MR_Box) (ArgX20_61)), ((MR_Box) (ArgY20_62)));
                                          succeeded = (SubResult20_63 != (MR_Integer) 0);
                                          if (succeeded)
                                            *HeadVar__1_1 = SubResult20_63;
                                          else
                                          {
                                            MR_Word SubResult21_66;

                                            mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[15]), &SubResult21_66, ((MR_Box) (ArgX21_64)), ((MR_Box) (ArgY21_65)));
                                            succeeded = (SubResult21_66 != (MR_Integer) 0);
                                            if (succeeded)
                                              *HeadVar__1_1 = SubResult21_66;
                                            else
                                            {
                                              MR_Word SubResult22_69;

                                              mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_1[9]), &SubResult22_69, ((MR_Box) (ArgX22_67)), ((MR_Box) (ArgY22_68)));
                                              succeeded = (SubResult22_69 != (MR_Integer) 0);
                                              if (succeeded)
                                                *HeadVar__1_1 = SubResult22_69;
                                              else
                                              {
                                                MR_Word SubResult23_72;
                                                MR_Integer Var_161 = (MR_Integer) (ArgX23_70);
                                                MR_Integer Var_162 = (MR_Integer) (ArgY23_71);

                                                succeeded = (Var_161 < Var_162);
                                                if (succeeded)
                                                {
                                                  SubResult23_72 = (MR_Integer) 1;
                                                  succeeded = MR_TRUE;
                                                }
                                                else
                                                {
                                                  succeeded = (Var_161 > Var_162);
                                                  if (succeeded)
                                                  {
                                                    SubResult23_72 = (MR_Integer) 2;
                                                    succeeded = MR_TRUE;
                                                  }
                                                }
                                                if (succeeded)
                                                  *HeadVar__1_1 = SubResult23_72;
                                                else
                                                {
                                                  MR_Word SubResult24_75;

                                                  mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[11]), &SubResult24_75, ((MR_Box) (ArgX24_73)), ((MR_Box) (ArgY24_74)));
                                                  succeeded = (SubResult24_75 != (MR_Integer) 0);
                                                  if (succeeded)
                                                    *HeadVar__1_1 = SubResult24_75;
                                                  else
                                                  {
                                                    MR_Word SubResult25_78;

                                                    mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[41]), &SubResult25_78, ((MR_Box) (ArgX25_76)), ((MR_Box) (ArgY25_77)));
                                                    succeeded = (SubResult25_78 != (MR_Integer) 0);
                                                    if (succeeded)
                                                      *HeadVar__1_1 = SubResult25_78;
                                                    else
                                                    {
                                                      MR_Word SubResult26_81;

                                                      mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[42]), &SubResult26_81, ((MR_Box) (ArgX26_79)), ((MR_Box) (ArgY26_80)));
                                                      succeeded = (SubResult26_81 != (MR_Integer) 0);
                                                      if (succeeded)
                                                        *HeadVar__1_1 = SubResult26_81;
                                                      else
                                                      {
                                                        MR_Word SubResult27_84;

                                                        mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[21]), &SubResult27_84, ((MR_Box) (ArgX27_82)), ((MR_Box) (ArgY27_83)));
                                                        succeeded = (SubResult27_84 != (MR_Integer) 0);
                                                        if (succeeded)
                                                          *HeadVar__1_1 = SubResult27_84;
                                                        else
                                                        {
                                                          MR_Word SubResult28_87;

                                                          mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[43]), &SubResult28_87, ((MR_Box) (ArgX28_85)), ((MR_Box) (ArgY28_86)));
                                                          succeeded = (SubResult28_87 != (MR_Integer) 0);
                                                          if (succeeded)
                                                            *HeadVar__1_1 = SubResult28_87;
                                                          else
                                                          {
                                                            MR_Word SubResult29_90;

                                                            mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[46]), &SubResult29_90, ((MR_Box) (ArgX29_88)), ((MR_Box) (ArgY29_89)));
                                                            succeeded = (SubResult29_90 != (MR_Integer) 0);
                                                            if (succeeded)
                                                              *HeadVar__1_1 = SubResult29_90;
                                                            else
                                                            {
                                                              MR_Word SubResult30_93;

                                                              mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[47]), &SubResult30_93, ((MR_Box) (ArgX30_91)), ((MR_Box) (ArgY30_92)));
                                                              succeeded = (SubResult30_93 != (MR_Integer) 0);
                                                              if (succeeded)
                                                                *HeadVar__1_1 = SubResult30_93;
                                                              else
                                                              {
                                                                MR_Word SubResult31_96;

                                                                transform_hlds__term_constr_main_types____Compare____termination2_info_0_0(&SubResult31_96, ArgX31_94, ArgY31_95);
                                                                succeeded = (SubResult31_96 != (MR_Integer) 0);
                                                                if (succeeded)
                                                                  *HeadVar__1_1 = SubResult31_96;
                                                                else
                                                                {
                                                                  MR_Word SubResult32_99;

                                                                  mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[48]), &SubResult32_99, ((MR_Box) (ArgX32_97)), ((MR_Box) (ArgY32_98)));
                                                                  succeeded = (SubResult32_99 != (MR_Integer) 0);
                                                                  if (succeeded)
                                                                    *HeadVar__1_1 = SubResult32_99;
                                                                  else
                                                                  {
                                                                    MR_Word SubResult33_102;

                                                                    mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[49]), &SubResult33_102, ((MR_Box) (ArgX33_100)), ((MR_Box) (ArgY33_101)));
                                                                    succeeded = (SubResult33_102 != (MR_Integer) 0);
                                                                    if (succeeded)
                                                                      *HeadVar__1_1 = SubResult33_102;
                                                                    else
                                                                    {
                                                                      MR_Word SubResult34_105;

                                                                      mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[50]), &SubResult34_105, ((MR_Box) (ArgX34_103)), ((MR_Box) (ArgY34_104)));
                                                                      succeeded = (SubResult34_105 != (MR_Integer) 0);
                                                                      if (succeeded)
                                                                        *HeadVar__1_1 = SubResult34_105;
                                                                      else
                                                                      {
                                                                        MR_Word SubResult35_108;

                                                                        hlds__hlds_pred____Compare____structure_sharing_info_0_0(&SubResult35_108, ArgX35_106, ArgY35_107);
                                                                        succeeded = (SubResult35_108 != (MR_Integer) 0);
                                                                        if (succeeded)
                                                                          *HeadVar__1_1 = SubResult35_108;
                                                                        else
                                                                          hlds__hlds_pred____Compare____structure_reuse_info_0_0(HeadVar__1_1, ArgX36_109, ArgY36_110);
                                                                      }
                                                                    }
                                                                  }
                                                                }
                                                              }
                                                            }
                                                          }
                                                        }
                                                      }
                                                    }
                                                  }
                                                }
                                              }
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

void MR_CALL 
hlds__hlds_pred____Compare____structure_sharing_info_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_9 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_10 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_9 == CastY_10);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  {
    MR_Word ArgX1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 0))));
    MR_Word ArgX2_7 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 1))));
    MR_Word ArgY2_8 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 1))));
    MR_Word SubResult1_6;

    mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[56]), &SubResult1_6, ((MR_Box) (ArgX1_4)), ((MR_Box) (ArgY1_5)));
    succeeded = (SubResult1_6 != (MR_Integer) 0);
    if (succeeded)
      *HeadVar__1_1 = SubResult1_6;
    else
      mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[57]), HeadVar__1_1, ((MR_Box) (ArgX2_7)), ((MR_Box) (ArgY2_8)));
  }
}

void MR_CALL 
hlds__hlds_pred____Compare____structure_reuse_info_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_9 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_10 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_9 == CastY_10);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  {
    MR_Word ArgX1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 0))));
    MR_Word ArgX2_7 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 1))));
    MR_Word ArgY2_8 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 1))));
    MR_Word SubResult1_6;

    mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[54]), &SubResult1_6, ((MR_Box) (ArgX1_4)), ((MR_Box) (ArgY1_5)));
    succeeded = (SubResult1_6 != (MR_Integer) 0);
    if (succeeded)
      *HeadVar__1_1 = SubResult1_6;
    else
      mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[55]), HeadVar__1_1, ((MR_Box) (ArgX2_7)), ((MR_Box) (ArgY2_8)));
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____proc_info_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_27 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_28 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_27 == CastY_28);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  {
    MR_Word TypeInfo_33_33;
    MR_Word TypeInfo_34_34;
    MR_Word TypeInfo_35_35;
    MR_Word TypeInfo_36_36;
    MR_Word TypeInfo_37_37;
    MR_Word ArgX1_3 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 0))));
    MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgX2_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 1))));
    MR_Word ArgY2_6 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 1))));
    MR_Word ArgX3_7 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 2))));
    MR_Word ArgY3_8 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 2))));
    MR_Word ArgX4_9 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 3))));
    MR_Word ArgY4_10 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 3))));
    MR_Word ArgX5_11 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 4))));
    MR_Word ArgY5_12 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 4))));
    MR_Word ArgX6_13 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 5))));
    MR_Word ArgY6_14 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 5))));
    MR_Word ArgX7_15 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 6))));
    MR_Word ArgY7_16 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 6))));
    MR_Word ArgX8_17 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 7))));
    MR_Word ArgY8_18 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 7))));
    MR_Word ArgX9_19 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 8))));
    MR_Word ArgY9_20 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 8))));
    MR_Word ArgX10_21 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__1_1, 9))) & (MR_Integer) 7);
    MR_Word ArgY10_22 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 9))) & (MR_Integer) 7);
    MR_Word ArgX11_23 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 10))));
    MR_Word ArgY11_24 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 10))));
    MR_Word ArgX12_25 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 11))));
    MR_Word ArgY12_26 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 11))));

    succeeded = mercury__builtin__unify_2_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[6]), ((MR_Box) (ArgX1_3)), ((MR_Box) (ArgY1_4)));
    if (succeeded)
    {
      succeeded = hlds__hlds_goal____Unify____hlds_goal_0_0(ArgX2_5, ArgY2_6);
      if (succeeded)
      {
        succeeded = parse_tree__var_table____Unify____var_table_0_0(ArgX3_7, ArgY3_8);
        if (succeeded)
        {
          succeeded = hlds__hlds_rtti____Unify____rtti_varmaps_0_0(ArgX4_9, ArgY4_10);
          if (succeeded)
          {
            TypeInfo_33_33 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[24]);
            succeeded = mercury__builtin__unify_2_p_0(TypeInfo_33_33, ((MR_Box) (ArgX5_11)), ((MR_Box) (ArgY5_12)));
            if (succeeded)
            {
              TypeInfo_34_34 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[26]);
              succeeded = mercury__builtin__unify_2_p_0(TypeInfo_34_34, ((MR_Box) (ArgX6_13)), ((MR_Box) (ArgY6_14)));
              if (succeeded)
              {
                TypeInfo_35_35 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[25]);
                succeeded = mercury__builtin__unify_2_p_0(TypeInfo_35_35, ((MR_Box) (ArgX7_15)), ((MR_Box) (ArgY7_16)));
                if (succeeded)
                {
                  TypeInfo_36_36 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[28]);
                  succeeded = mercury__builtin__unify_2_p_0(TypeInfo_36_36, ((MR_Box) (ArgX8_17)), ((MR_Box) (ArgY8_18)));
                  if (succeeded)
                  {
                    TypeInfo_37_37 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[29]);
                    succeeded = mercury__builtin__unify_2_p_0(TypeInfo_37_37, ((MR_Box) (ArgX9_19)), ((MR_Box) (ArgY9_20)));
                    if (succeeded)
                    {
                      succeeded = (ArgX10_21 == ArgY10_22);
                      if (succeeded)
                      {
                        succeeded = parse_tree__prog_data_pragma____Unify____eval_method_0_0(ArgX11_23, ArgY11_24);
                        if (succeeded)
                          succeeded = hlds__hlds_pred____Unify____proc_sub_info_0_0(ArgX12_25, ArgY12_26);
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  return succeeded;
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____proc_sub_info_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_75 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_76 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_75 == CastY_76);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  {
    MR_Word TypeInfo_79_79;
    MR_Word TypeInfo_80_80;
    MR_Word TypeInfo_81_81;
    MR_Word TypeInfo_82_82;
    MR_Word TypeInfo_83_83;
    MR_Word TypeInfo_84_84;
    MR_Word TypeInfo_85_85;
    MR_Word TypeInfo_86_86;
    MR_Word TypeInfo_87_87;
    MR_Word TypeInfo_88_88;
    MR_Word TypeInfo_89_89;
    MR_Word TypeInfo_90_90;
    MR_Word TypeInfo_91_91;
    MR_Word TypeInfo_92_92;
    MR_Word TypeInfo_93_93;
    MR_Word TypeInfo_94_94;
    MR_Word TypeInfo_95_95;
    MR_Word TypeInfo_96_96;
    MR_Word TypeInfo_97_97;
    MR_Word TypeInfo_98_98;
    MR_Word TypeInfo_100_100;
    MR_Word TypeInfo_101_101;
    MR_Word TypeInfo_102_102;
    MR_Word ArgX1_3 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 0))));
    MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgX2_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 1))));
    MR_Word ArgY2_6 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 1))));
    MR_Word ArgX3_7 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__1_1, 2))) & (MR_Integer) 1);
    MR_Word ArgY3_8 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 2))) & (MR_Integer) 1);
    MR_Word ArgX4_9 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 3))));
    MR_Word ArgY4_10 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 3))));
    MR_Word ArgX5_11 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__1_1, 4))) & (MR_Integer) 3);
    MR_Word ArgY5_12 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 4))) & (MR_Integer) 3);
    MR_Word ArgX6_13 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 5))));
    MR_Word ArgY6_14 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 5))));
    MR_Word ArgX7_15 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 6))));
    MR_Word ArgY7_16 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 6))));
    MR_Word ArgX8_17 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 7))));
    MR_Word ArgY8_18 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 7))));
    MR_Word ArgX9_19 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 8))));
    MR_Word ArgY9_20 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 8))));
    MR_Word ArgX10_21 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 9))));
    MR_Word ArgY10_22 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 9))));
    MR_Word ArgX11_23 = ((((MR_Unsigned) ((MR_hl_field(0, HeadVar__1_1, 10))) >> 3)) & (MR_Integer) 1);
    MR_Word ArgY11_24 = ((((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 10))) >> 3)) & (MR_Integer) 1);
    MR_Word ArgX12_25 = ((((MR_Unsigned) ((MR_hl_field(0, HeadVar__1_1, 10))) >> 2)) & (MR_Integer) 1);
    MR_Word ArgY12_26 = ((((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 10))) >> 2)) & (MR_Integer) 1);
    MR_Word ArgX13_27 = ((((MR_Unsigned) ((MR_hl_field(0, HeadVar__1_1, 10))) >> 1)) & (MR_Integer) 1);
    MR_Word ArgY13_28 = ((((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 10))) >> 1)) & (MR_Integer) 1);
    MR_Word ArgX14_29 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__1_1, 10))) & (MR_Integer) 1);
    MR_Word ArgY14_30 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 10))) & (MR_Integer) 1);
    MR_Word ArgX15_31 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 11))));
    MR_Word ArgY15_32 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 11))));
    MR_Word ArgX16_33 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 12))));
    MR_Word ArgY16_34 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 12))));
    MR_Word ArgX17_35 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 13))));
    MR_Word ArgY17_36 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 13))));
    MR_Word ArgX18_37 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 14))));
    MR_Word ArgY18_38 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 14))));
    MR_Word ArgX19_39 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 15))));
    MR_Word ArgY19_40 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 15))));
    MR_Word ArgX20_41 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 16))));
    MR_Word ArgY20_42 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 16))));
    MR_Word ArgX21_43 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 17))));
    MR_Word ArgY21_44 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 17))));
    MR_Word ArgX22_45 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 18))));
    MR_Word ArgY22_46 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 18))));
    MR_Word ArgX23_47 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__1_1, 19))) & (MR_Integer) 1);
    MR_Word ArgY23_48 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 19))) & (MR_Integer) 1);
    MR_Word ArgX24_49 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 20))));
    MR_Word ArgY24_50 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 20))));
    MR_Word ArgX25_51 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 21))));
    MR_Word ArgY25_52 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 21))));
    MR_Word ArgX26_53 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 22))));
    MR_Word ArgY26_54 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 22))));
    MR_Word ArgX27_55 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 23))));
    MR_Word ArgY27_56 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 23))));
    MR_Word ArgX28_57 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 24))));
    MR_Word ArgY28_58 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 24))));
    MR_Word ArgX29_59 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 25))));
    MR_Word ArgY29_60 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 25))));
    MR_Word ArgX30_61 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 26))));
    MR_Word ArgY30_62 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 26))));
    MR_Word ArgX31_63 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 27))));
    MR_Word ArgY31_64 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 27))));
    MR_Word ArgX32_65 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 28))));
    MR_Word ArgY32_66 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 28))));
    MR_Word ArgX33_67 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 29))));
    MR_Word ArgY33_68 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 29))));
    MR_Word ArgX34_69 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 30))));
    MR_Word ArgY34_70 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 30))));
    MR_Word ArgX35_71 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 31))));
    MR_Word ArgY35_72 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 31))));
    MR_Word ArgX36_73 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 32))));
    MR_Word ArgY36_74 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 32))));

    succeeded = mercury__term_context____Unify____term_context_0_0(ArgX1_3, ArgY1_4);
    if (succeeded)
    {
      succeeded = parse_tree__prog_data____Unify____item_seq_num_0_0(ArgX2_5, ArgY2_6);
      if (succeeded)
      {
        succeeded = (ArgX3_7 == ArgY3_8);
        if (succeeded)
        {
          TypeInfo_79_79 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[31]);
          succeeded = mercury__builtin__unify_2_p_0(TypeInfo_79_79, ((MR_Box) (ArgX4_9)), ((MR_Box) (ArgY4_10)));
          if (succeeded)
          {
            succeeded = (ArgX5_11 == ArgY5_12);
            if (succeeded)
            {
              TypeInfo_80_80 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[32]);
              succeeded = mercury__builtin__unify_2_p_0(TypeInfo_80_80, ((MR_Box) (ArgX6_13)), ((MR_Box) (ArgY6_14)));
              if (succeeded)
              {
                TypeInfo_81_81 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[33]);
                succeeded = mercury__builtin__unify_2_p_0(TypeInfo_81_81, ((MR_Box) (ArgX7_15)), ((MR_Box) (ArgY7_16)));
                if (succeeded)
                {
                  TypeInfo_82_82 = (MR_Word) (&hlds__hlds_pred_scalar_common_1[4]);
                  succeeded = mercury__builtin__unify_2_p_0(TypeInfo_82_82, ((MR_Box) (ArgX8_17)), ((MR_Box) (ArgY8_18)));
                  if (succeeded)
                  {
                    TypeInfo_83_83 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[34]);
                    succeeded = mercury__builtin__unify_2_p_0(TypeInfo_83_83, ((MR_Box) (ArgX9_19)), ((MR_Box) (ArgY9_20)));
                    if (succeeded)
                    {
                      TypeInfo_84_84 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[35]);
                      succeeded = mercury__builtin__unify_2_p_0(TypeInfo_84_84, ((MR_Box) (ArgX10_21)), ((MR_Box) (ArgY10_22)));
                      if (succeeded)
                      {
                        succeeded = (ArgX11_23 == ArgY11_24);
                        if (succeeded)
                        {
                          succeeded = (ArgX12_25 == ArgY12_26);
                          if (succeeded)
                          {
                            succeeded = (ArgX13_27 == ArgY13_28);
                            if (succeeded)
                            {
                              succeeded = (ArgX14_29 == ArgY14_30);
                              if (succeeded)
                              {
                                succeeded = hlds__hlds_pred____Unify____has_tail_rec_call_0_0(ArgX15_31, ArgY15_32);
                                if (succeeded)
                                {
                                  TypeInfo_85_85 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[36]);
                                  succeeded = mercury__builtin__unify_2_p_0(TypeInfo_85_85, ((MR_Box) (ArgX16_33)), ((MR_Box) (ArgY16_34)));
                                  if (succeeded)
                                  {
                                    TypeInfo_86_86 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[37]);
                                    succeeded = mercury__builtin__unify_2_p_0(TypeInfo_86_86, ((MR_Box) (ArgX17_35)), ((MR_Box) (ArgY17_36)));
                                    if (succeeded)
                                    {
                                      TypeInfo_87_87 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[15]);
                                      succeeded = mercury__builtin__unify_2_p_0(TypeInfo_87_87, ((MR_Box) (ArgX18_37)), ((MR_Box) (ArgY18_38)));
                                      if (succeeded)
                                      {
                                        TypeInfo_88_88 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[39]);
                                        succeeded = mercury__builtin__unify_2_p_0(TypeInfo_88_88, ((MR_Box) (ArgX19_39)), ((MR_Box) (ArgY19_40)));
                                        if (succeeded)
                                        {
                                          TypeInfo_89_89 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[40]);
                                          succeeded = mercury__builtin__unify_2_p_0(TypeInfo_89_89, ((MR_Box) (ArgX20_41)), ((MR_Box) (ArgY20_42)));
                                          if (succeeded)
                                          {
                                            TypeInfo_90_90 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[15]);
                                            succeeded = mercury__builtin__unify_2_p_0(TypeInfo_90_90, ((MR_Box) (ArgX21_43)), ((MR_Box) (ArgY21_44)));
                                            if (succeeded)
                                            {
                                              TypeInfo_91_91 = (MR_Word) (&hlds__hlds_pred_scalar_common_1[9]);
                                              succeeded = mercury__builtin__unify_2_p_0(TypeInfo_91_91, ((MR_Box) (ArgX22_45)), ((MR_Box) (ArgY22_46)));
                                              if (succeeded)
                                              {
                                                succeeded = (ArgX23_47 == ArgY23_48);
                                                if (succeeded)
                                                {
                                                  TypeInfo_92_92 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[11]);
                                                  succeeded = mercury__builtin__unify_2_p_0(TypeInfo_92_92, ((MR_Box) (ArgX24_49)), ((MR_Box) (ArgY24_50)));
                                                  if (succeeded)
                                                  {
                                                    TypeInfo_93_93 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[41]);
                                                    succeeded = mercury__builtin__unify_2_p_0(TypeInfo_93_93, ((MR_Box) (ArgX25_51)), ((MR_Box) (ArgY25_52)));
                                                    if (succeeded)
                                                    {
                                                      TypeInfo_94_94 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[42]);
                                                      succeeded = mercury__builtin__unify_2_p_0(TypeInfo_94_94, ((MR_Box) (ArgX26_53)), ((MR_Box) (ArgY26_54)));
                                                      if (succeeded)
                                                      {
                                                        TypeInfo_95_95 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[21]);
                                                        succeeded = mercury__builtin__unify_2_p_0(TypeInfo_95_95, ((MR_Box) (ArgX27_55)), ((MR_Box) (ArgY27_56)));
                                                        if (succeeded)
                                                        {
                                                          TypeInfo_96_96 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[43]);
                                                          succeeded = mercury__builtin__unify_2_p_0(TypeInfo_96_96, ((MR_Box) (ArgX28_57)), ((MR_Box) (ArgY28_58)));
                                                          if (succeeded)
                                                          {
                                                            TypeInfo_97_97 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[46]);
                                                            succeeded = mercury__builtin__unify_2_p_0(TypeInfo_97_97, ((MR_Box) (ArgX29_59)), ((MR_Box) (ArgY29_60)));
                                                            if (succeeded)
                                                            {
                                                              TypeInfo_98_98 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[47]);
                                                              succeeded = mercury__builtin__unify_2_p_0(TypeInfo_98_98, ((MR_Box) (ArgX30_61)), ((MR_Box) (ArgY30_62)));
                                                              if (succeeded)
                                                              {
                                                                succeeded = transform_hlds__term_constr_main_types____Unify____termination2_info_0_0(ArgX31_63, ArgY31_64);
                                                                if (succeeded)
                                                                {
                                                                  TypeInfo_100_100 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[48]);
                                                                  succeeded = mercury__builtin__unify_2_p_0(TypeInfo_100_100, ((MR_Box) (ArgX32_65)), ((MR_Box) (ArgY32_66)));
                                                                  if (succeeded)
                                                                  {
                                                                    TypeInfo_101_101 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[49]);
                                                                    succeeded = mercury__builtin__unify_2_p_0(TypeInfo_101_101, ((MR_Box) (ArgX33_67)), ((MR_Box) (ArgY33_68)));
                                                                    if (succeeded)
                                                                    {
                                                                      TypeInfo_102_102 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[50]);
                                                                      succeeded = mercury__builtin__unify_2_p_0(TypeInfo_102_102, ((MR_Box) (ArgX34_69)), ((MR_Box) (ArgY34_70)));
                                                                      if (succeeded)
                                                                      {
                                                                        succeeded = hlds__hlds_pred____Unify____structure_sharing_info_0_0(ArgX35_71, ArgY35_72);
                                                                        if (succeeded)
                                                                          succeeded = hlds__hlds_pred____Unify____structure_reuse_info_0_0(ArgX36_73, ArgY36_74);
                                                                      }
                                                                    }
                                                                  }
                                                                }
                                                              }
                                                            }
                                                          }
                                                        }
                                                      }
                                                    }
                                                  }
                                                }
                                              }
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  return succeeded;
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____structure_sharing_info_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_7 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_8 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_7 == CastY_8);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  {
    MR_Word TypeInfo_10_10;
    MR_Word ArgX1_3 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 0))));
    MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgX2_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 1))));
    MR_Word ArgY2_6 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 1))));

    succeeded = mercury__builtin__unify_2_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[56]), ((MR_Box) (ArgX1_3)), ((MR_Box) (ArgY1_4)));
    if (succeeded)
    {
      TypeInfo_10_10 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[57]);
      succeeded = mercury__builtin__unify_2_p_0(TypeInfo_10_10, ((MR_Box) (ArgX2_5)), ((MR_Box) (ArgY2_6)));
    }
  }
  return succeeded;
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____structure_reuse_info_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_7 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_8 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_7 == CastY_8);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  {
    MR_Word TypeInfo_10_10;
    MR_Word ArgX1_3 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 0))));
    MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgX2_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 1))));
    MR_Word ArgY2_6 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 1))));

    succeeded = mercury__builtin__unify_2_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[54]), ((MR_Box) (ArgX1_3)), ((MR_Box) (ArgY1_4)));
    if (succeeded)
    {
      TypeInfo_10_10 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[55]);
      succeeded = mercury__builtin__unify_2_p_0(TypeInfo_10_10, ((MR_Box) (ArgX2_5)), ((MR_Box) (ArgY2_6)));
    }
  }
  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____proc_id_0_0(
  MR_Word * HeadVar__1_1,
  MR_Integer HeadVar__2_2,
  MR_Integer HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer Cast_HeadVar1_4 = HeadVar__2_2;
  MR_Integer Cast_HeadVar2_5 = HeadVar__3_3;

  succeeded = (Cast_HeadVar1_4 < Cast_HeadVar2_5);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 1;
  else
  {
    succeeded = (Cast_HeadVar1_4 > Cast_HeadVar2_5);
    if (succeeded)
      *HeadVar__1_1 = (MR_Integer) 2;
    else
      *HeadVar__1_1 = (MR_Integer) 0;
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____proc_id_0_0(
  MR_Integer HeadVar__1_1,
  MR_Integer HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer Cast_HeadVar1_3 = HeadVar__1_1;
  MR_Integer Cast_HeadVar2_4 = HeadVar__2_2;

  succeeded = (Cast_HeadVar1_3 == Cast_HeadVar2_4);
  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____proc_foreign_exports_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer Cast_HeadVar1_4 = (MR_Integer) (HeadVar__2_2);
  MR_Integer Cast_HeadVar2_5 = (MR_Integer) (HeadVar__3_3);

  succeeded = (Cast_HeadVar1_4 < Cast_HeadVar2_5);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 1;
  else
  {
    succeeded = (Cast_HeadVar1_4 > Cast_HeadVar2_5);
    if (succeeded)
      *HeadVar__1_1 = (MR_Integer) 2;
    else
      *HeadVar__1_1 = (MR_Integer) 0;
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____proc_foreign_exports_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded = (HeadVar__1_1 == HeadVar__2_2);

  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____proc_exception_info_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_9 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_10 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_9 == CastY_10);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  {
    MR_Word ArgX1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 0))));
    MR_Word ArgX2_7 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 1))));
    MR_Word ArgY2_8 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 1))));
    MR_Word SubResult1_6;

    parse_tree__prog_data_pragma____Compare____exception_status_0_0(&SubResult1_6, ArgX1_4, ArgY1_5);
    succeeded = (SubResult1_6 != (MR_Integer) 0);
    if (succeeded)
      *HeadVar__1_1 = SubResult1_6;
    else
      mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[23]), HeadVar__1_1, ((MR_Box) (ArgX2_7)), ((MR_Box) (ArgY2_8)));
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____proc_exception_info_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_7 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_8 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_7 == CastY_8);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  {
    MR_Word TypeInfo_10_10;
    MR_Word ArgX1_3 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 0))));
    MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgX2_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 1))));
    MR_Word ArgY2_6 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 1))));

    succeeded = parse_tree__prog_data_pragma____Unify____exception_status_0_0(ArgX1_3, ArgY1_4);
    if (succeeded)
    {
      TypeInfo_10_10 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[23]);
      succeeded = mercury__builtin__unify_2_p_0(TypeInfo_10_10, ((MR_Box) (ArgX2_5)), ((MR_Box) (ArgY2_6)));
    }
  }
  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____pred_info_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_48 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_49 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_48 == CastY_49);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  {
    MR_Word ArgX1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 0))));
    MR_Word ArgX2_7 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 1))) & (MR_Integer) 1);
    MR_Word ArgY2_8 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__3_3, 1))) & (MR_Integer) 1);
    MR_String ArgX3_10 = ((MR_String) ((MR_hl_field(0, HeadVar__2_2, 2))));
    MR_String ArgY3_11 = ((MR_String) ((MR_hl_field(0, HeadVar__3_3, 2))));
    MR_Word ArgX4_13 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 3))));
    MR_Word ArgY4_14 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 3))));
    MR_Word ArgX5_16 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 4))));
    MR_Word ArgY5_17 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 4))));
    MR_Word ArgX6_19 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 5))));
    MR_Word ArgY6_20 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 5))));
    MR_Word ArgX7_22 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 6))));
    MR_Word ArgY7_23 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 6))));
    MR_Word ArgX8_25 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 7))));
    MR_Word ArgY8_26 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 7))));
    MR_Word ArgX9_28 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 8))));
    MR_Word ArgY9_29 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 8))));
    MR_Word ArgX10_31 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 9))));
    MR_Word ArgY10_32 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 9))));
    MR_Word ArgX11_34 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 10))));
    MR_Word ArgY11_35 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 10))));
    MR_Word ArgX12_37 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 11))));
    MR_Word ArgY12_38 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 11))));
    MR_Word ArgX13_40 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 12))));
    MR_Word ArgY13_41 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 12))));
    MR_Word ArgX14_43 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 13))));
    MR_Word ArgY14_44 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 13))));
    MR_Word ArgX15_46 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 14))));
    MR_Word ArgY15_47 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 14))));
    MR_Word SubResult1_6;

    mdbcomp__sym_name____Compare____sym_name_0_0(&SubResult1_6, ArgX1_4, ArgY1_5);
    succeeded = (SubResult1_6 != (MR_Integer) 0);
    if (succeeded)
      *HeadVar__1_1 = SubResult1_6;
    else
    {
      MR_Word SubResult2_9;
      MR_Integer Var_65 = (MR_Integer) (ArgX2_7);
      MR_Integer Var_66 = (MR_Integer) (ArgY2_8);

      succeeded = (Var_65 < Var_66);
      if (succeeded)
      {
        SubResult2_9 = (MR_Integer) 1;
        succeeded = MR_TRUE;
      }
      else
      {
        succeeded = (Var_65 > Var_66);
        if (succeeded)
        {
          SubResult2_9 = (MR_Integer) 2;
          succeeded = MR_TRUE;
        }
      }
      if (succeeded)
        *HeadVar__1_1 = SubResult2_9;
      else
      {
        MR_Word SubResult3_12;

        mercury__private_builtin__builtin_compare_string_3_p_0(&SubResult3_12, ArgX3_10, ArgY3_11);
        succeeded = (SubResult3_12 != (MR_Integer) 0);
        if (succeeded)
          *HeadVar__1_1 = SubResult3_12;
        else
        {
          MR_Word SubResult4_15;
          MR_Integer Var_67 = (MR_Integer) (ArgX4_13);
          MR_Integer Var_68 = (MR_Integer) (ArgY4_14);

          succeeded = (Var_67 < Var_68);
          if (succeeded)
          {
            SubResult4_15 = (MR_Integer) 1;
            succeeded = MR_TRUE;
          }
          else
          {
            succeeded = (Var_67 > Var_68);
            if (succeeded)
            {
              SubResult4_15 = (MR_Integer) 2;
              succeeded = MR_TRUE;
            }
          }
          if (succeeded)
            *HeadVar__1_1 = SubResult4_15;
          else
          {
            MR_Word SubResult5_18;

            hlds__pred_name____Compare____pred_origin_0_0(&SubResult5_18, ArgX5_16, ArgY5_17);
            succeeded = (SubResult5_18 != (MR_Integer) 0);
            if (succeeded)
              *HeadVar__1_1 = SubResult5_18;
            else
            {
              MR_Word SubResult6_21;

              hlds__status____Compare____pred_status_0_0(&SubResult6_21, ArgX6_19, ArgY6_20);
              succeeded = (SubResult6_21 != (MR_Integer) 0);
              if (succeeded)
                *HeadVar__1_1 = SubResult6_21;
              else
              {
                MR_Word SubResult7_24;

                mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[16]), &SubResult7_24, ((MR_Box) (ArgX7_22)), ((MR_Box) (ArgY7_23)));
                succeeded = (SubResult7_24 != (MR_Integer) 0);
                if (succeeded)
                  *HeadVar__1_1 = SubResult7_24;
                else
                {
                  MR_Word SubResult8_27;

                  mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[14]), &SubResult8_27, ((MR_Box) (ArgX8_25)), ((MR_Box) (ArgY8_26)));
                  succeeded = (SubResult8_27 != (MR_Integer) 0);
                  if (succeeded)
                    *HeadVar__1_1 = SubResult8_27;
                  else
                  {
                    MR_Word SubResult9_30;

                    mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[2]), &SubResult9_30, ((MR_Box) (ArgX9_28)), ((MR_Box) (ArgY9_29)));
                    succeeded = (SubResult9_30 != (MR_Integer) 0);
                    if (succeeded)
                      *HeadVar__1_1 = SubResult9_30;
                    else
                    {
                      MR_Word SubResult10_33;

                      mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[2]), &SubResult10_33, ((MR_Box) (ArgX10_31)), ((MR_Box) (ArgY10_32)));
                      succeeded = (SubResult10_33 != (MR_Integer) 0);
                      if (succeeded)
                        *HeadVar__1_1 = SubResult10_33;
                      else
                      {
                        MR_Word SubResult11_36;

                        mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[3]), &SubResult11_36, ((MR_Box) (ArgX11_34)), ((MR_Box) (ArgY11_35)));
                        succeeded = (SubResult11_36 != (MR_Integer) 0);
                        if (succeeded)
                          *HeadVar__1_1 = SubResult11_36;
                        else
                        {
                          MR_Word SubResult12_39;

                          parse_tree__prog_data____Compare____univ_exist_constraints_0_0(&SubResult12_39, ArgX12_37, ArgY12_38);
                          succeeded = (SubResult12_39 != (MR_Integer) 0);
                          if (succeeded)
                            *HeadVar__1_1 = SubResult12_39;
                          else
                          {
                            MR_Word SubResult13_42;

                            hlds__hlds_clauses____Compare____clauses_info_0_0(&SubResult13_42, ArgX13_40, ArgY13_41);
                            succeeded = (SubResult13_42 != (MR_Integer) 0);
                            if (succeeded)
                              *HeadVar__1_1 = SubResult13_42;
                            else
                            {
                              MR_Word SubResult14_45;

                              mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_1[7]), &SubResult14_45, ((MR_Box) (ArgX14_43)), ((MR_Box) (ArgY14_44)));
                              succeeded = (SubResult14_45 != (MR_Integer) 0);
                              if (succeeded)
                                *HeadVar__1_1 = SubResult14_45;
                              else
                                hlds__hlds_pred____Compare____pred_sub_info_0_0(HeadVar__1_1, ArgX15_46, ArgY15_47);
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

static void MR_CALL 
hlds__hlds_pred____Compare____pred_sub_info_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_54 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_55 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_54 == CastY_55);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  {
    MR_Word ArgX1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 0))));
    MR_Word ArgX2_7 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 1))));
    MR_Word ArgY2_8 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 1))));
    MR_Word ArgX3_10 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 2))));
    MR_Word ArgY3_11 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 2))));
    MR_Word ArgX4_13 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 3))));
    MR_Word ArgY4_14 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 3))));
    MR_Word ArgX5_16 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 4))));
    MR_Word ArgY5_17 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 4))));
    MR_Integer ArgX6_19 = ((MR_Integer) ((MR_hl_field(0, HeadVar__2_2, 5))));
    MR_Integer ArgY6_20 = ((MR_Integer) ((MR_hl_field(0, HeadVar__3_3, 5))));
    MR_Word ArgX7_22 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 6))));
    MR_Word ArgY7_23 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 6))));
    MR_Word ArgX8_25 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 7))));
    MR_Word ArgY8_26 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 7))));
    MR_Word ArgX9_28 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 8))));
    MR_Word ArgY9_29 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 8))));
    MR_Word ArgX10_31 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 9))));
    MR_Word ArgY10_32 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 9))));
    MR_Word ArgX11_34 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 10))));
    MR_Word ArgY11_35 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 10))));
    MR_Word ArgX12_37 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 11))));
    MR_Word ArgY12_38 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 11))));
    MR_Word ArgX13_40 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 12))));
    MR_Word ArgY13_41 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 12))));
    MR_Word ArgX14_43 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 13))));
    MR_Word ArgY14_44 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 13))));
    MR_Word ArgX15_46 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 14))));
    MR_Word ArgY15_47 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 14))));
    MR_Word ArgX16_49 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 15))));
    MR_Word ArgY16_50 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 15))));
    MR_Word ArgX17_52 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 16))));
    MR_Word ArgY17_53 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 16))));
    MR_Word SubResult1_6;

    mercury__term_context____Compare____term_context_0_0(&SubResult1_6, ArgX1_4, ArgY1_5);
    succeeded = (SubResult1_6 != (MR_Integer) 0);
    if (succeeded)
      *HeadVar__1_1 = SubResult1_6;
    else
    {
      MR_Word SubResult2_9;

      mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[17]), &SubResult2_9, ((MR_Box) (ArgX2_7)), ((MR_Box) (ArgY2_8)));
      succeeded = (SubResult2_9 != (MR_Integer) 0);
      if (succeeded)
        *HeadVar__1_1 = SubResult2_9;
      else
      {
        MR_Word SubResult3_12;

        hlds__hlds_pred____Compare____goal_type_0_0(&SubResult3_12, ArgX3_10, ArgY3_11);
        succeeded = (SubResult3_12 != (MR_Integer) 0);
        if (succeeded)
          *HeadVar__1_1 = SubResult3_12;
        else
        {
          MR_Word SubResult4_15;

          mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_1[1]), &SubResult4_15, ((MR_Box) (ArgX4_13)), ((MR_Box) (ArgY4_14)));
          succeeded = (SubResult4_15 != (MR_Integer) 0);
          if (succeeded)
            *HeadVar__1_1 = SubResult4_15;
          else
          {
            MR_Word SubResult5_18;

            mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_1[8]), &SubResult5_18, ((MR_Box) (ArgX5_16)), ((MR_Box) (ArgY5_17)));
            succeeded = (SubResult5_18 != (MR_Integer) 0);
            if (succeeded)
              *HeadVar__1_1 = SubResult5_18;
            else
            {
              MR_Word SubResult6_21;

              succeeded = (ArgX6_19 < ArgY6_20);
              if (succeeded)
              {
                SubResult6_21 = (MR_Integer) 1;
                succeeded = MR_TRUE;
              }
              else
              {
                succeeded = (ArgX6_19 > ArgY6_20);
                if (succeeded)
                {
                  SubResult6_21 = (MR_Integer) 2;
                  succeeded = MR_TRUE;
                }
              }
              if (succeeded)
                *HeadVar__1_1 = SubResult6_21;
              else
              {
                MR_Word SubResult7_24;

                mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[3]), &SubResult7_24, ((MR_Box) (ArgX7_22)), ((MR_Box) (ArgY7_23)));
                succeeded = (SubResult7_24 != (MR_Integer) 0);
                if (succeeded)
                  *HeadVar__1_1 = SubResult7_24;
                else
                {
                  MR_Word SubResult8_27;

                  mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_1[2]), &SubResult8_27, ((MR_Box) (ArgX8_25)), ((MR_Box) (ArgY8_26)));
                  succeeded = (SubResult8_27 != (MR_Integer) 0);
                  if (succeeded)
                    *HeadVar__1_1 = SubResult8_27;
                  else
                  {
                    MR_Word SubResult9_30;

                    mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_1[3]), &SubResult9_30, ((MR_Box) (ArgX9_28)), ((MR_Box) (ArgY9_29)));
                    succeeded = (SubResult9_30 != (MR_Integer) 0);
                    if (succeeded)
                      *HeadVar__1_1 = SubResult9_30;
                    else
                    {
                      MR_Word SubResult10_33;

                      mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[4]), &SubResult10_33, ((MR_Box) (ArgX10_31)), ((MR_Box) (ArgY10_32)));
                      succeeded = (SubResult10_33 != (MR_Integer) 0);
                      if (succeeded)
                        *HeadVar__1_1 = SubResult10_33;
                      else
                      {
                        MR_Word SubResult11_36;

                        hlds__inst_graph____Compare____inst_graph_info_0_0(&SubResult11_36, ArgX11_34, ArgY11_35);
                        succeeded = (SubResult11_36 != (MR_Integer) 0);
                        if (succeeded)
                          *HeadVar__1_1 = SubResult11_36;
                        else
                        {
                          MR_Word SubResult12_39;

                          mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[18]), &SubResult12_39, ((MR_Box) (ArgX12_37)), ((MR_Box) (ArgY12_38)));
                          succeeded = (SubResult12_39 != (MR_Integer) 0);
                          if (succeeded)
                            *HeadVar__1_1 = SubResult12_39;
                          else
                          {
                            MR_Word SubResult13_42;

                            mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_1[4]), &SubResult13_42, ((MR_Box) (ArgX13_40)), ((MR_Box) (ArgY13_41)));
                            succeeded = (SubResult13_42 != (MR_Integer) 0);
                            if (succeeded)
                              *HeadVar__1_1 = SubResult13_42;
                            else
                            {
                              MR_Word SubResult14_45;

                              mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[19]), &SubResult14_45, ((MR_Box) (ArgX14_43)), ((MR_Box) (ArgY14_44)));
                              succeeded = (SubResult14_45 != (MR_Integer) 0);
                              if (succeeded)
                                *HeadVar__1_1 = SubResult14_45;
                              else
                              {
                                MR_Word SubResult15_48;

                                mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[21]), &SubResult15_48, ((MR_Box) (ArgX15_46)), ((MR_Box) (ArgY15_47)));
                                succeeded = (SubResult15_48 != (MR_Integer) 0);
                                if (succeeded)
                                  *HeadVar__1_1 = SubResult15_48;
                                else
                                {
                                  MR_Word SubResult16_51;

                                  mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[22]), &SubResult16_51, ((MR_Box) (ArgX16_49)), ((MR_Box) (ArgY16_50)));
                                  succeeded = (SubResult16_51 != (MR_Integer) 0);
                                  if (succeeded)
                                    *HeadVar__1_1 = SubResult16_51;
                                  else
                                    mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[14]), HeadVar__1_1, ((MR_Box) (ArgX17_52)), ((MR_Box) (ArgY17_53)));
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____pred_info_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_33 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_34 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_33 == CastY_34);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  {
    MR_Word TypeInfo_39_39;
    MR_Word TypeInfo_40_40;
    MR_Word TypeInfo_41_41;
    MR_Word TypeInfo_42_42;
    MR_Word TypeInfo_43_43;
    MR_Word TypeInfo_46_46;
    MR_Word ArgX1_3 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 0))));
    MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgX2_5 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__1_1, 1))) & (MR_Integer) 1);
    MR_Word ArgY2_6 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 1))) & (MR_Integer) 1);
    MR_String ArgX3_7 = ((MR_String) ((MR_hl_field(0, HeadVar__1_1, 2))));
    MR_String ArgY3_8 = ((MR_String) ((MR_hl_field(0, HeadVar__2_2, 2))));
    MR_Word ArgX4_9 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 3))));
    MR_Word ArgY4_10 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 3))));
    MR_Word ArgX5_11 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 4))));
    MR_Word ArgY5_12 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 4))));
    MR_Word ArgX6_13 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 5))));
    MR_Word ArgY6_14 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 5))));
    MR_Word ArgX7_15 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 6))));
    MR_Word ArgY7_16 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 6))));
    MR_Word ArgX8_17 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 7))));
    MR_Word ArgY8_18 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 7))));
    MR_Word ArgX9_19 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 8))));
    MR_Word ArgY9_20 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 8))));
    MR_Word ArgX10_21 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 9))));
    MR_Word ArgY10_22 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 9))));
    MR_Word ArgX11_23 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 10))));
    MR_Word ArgY11_24 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 10))));
    MR_Word ArgX12_25 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 11))));
    MR_Word ArgY12_26 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 11))));
    MR_Word ArgX13_27 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 12))));
    MR_Word ArgY13_28 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 12))));
    MR_Word ArgX14_29 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 13))));
    MR_Word ArgY14_30 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 13))));
    MR_Word ArgX15_31 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 14))));
    MR_Word ArgY15_32 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 14))));
    MR_Integer Var_47;
    MR_Integer Var_48;

    succeeded = mdbcomp__sym_name____Unify____sym_name_0_0(ArgX1_3, ArgY1_4);
    if (succeeded)
    {
      succeeded = (ArgX2_5 == ArgY2_6);
      if (succeeded)
      {
        succeeded = (strcmp(ArgX3_7, ArgY3_8) == 0);
        if (succeeded)
        {
          Var_47 = (MR_Integer) (ArgX4_9);
          Var_48 = (MR_Integer) (ArgY4_10);
          succeeded = (Var_47 == Var_48);
          if (succeeded)
          {
            succeeded = hlds__pred_name____Unify____pred_origin_0_0(ArgX5_11, ArgY5_12);
            if (succeeded)
            {
              succeeded = hlds__status____Unify____pred_status_0_0(ArgX6_13, ArgY6_14);
              if (succeeded)
              {
                TypeInfo_39_39 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[16]);
                succeeded = mercury__builtin__unify_2_p_0(TypeInfo_39_39, ((MR_Box) (ArgX7_15)), ((MR_Box) (ArgY7_16)));
                if (succeeded)
                {
                  TypeInfo_40_40 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[14]);
                  succeeded = mercury__builtin__unify_2_p_0(TypeInfo_40_40, ((MR_Box) (ArgX8_17)), ((MR_Box) (ArgY8_18)));
                  if (succeeded)
                  {
                    TypeInfo_41_41 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[2]);
                    succeeded = mercury__builtin__unify_2_p_0(TypeInfo_41_41, ((MR_Box) (ArgX9_19)), ((MR_Box) (ArgY9_20)));
                    if (succeeded)
                    {
                      TypeInfo_42_42 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[2]);
                      succeeded = mercury__builtin__unify_2_p_0(TypeInfo_42_42, ((MR_Box) (ArgX10_21)), ((MR_Box) (ArgY10_22)));
                      if (succeeded)
                      {
                        TypeInfo_43_43 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[3]);
                        succeeded = mercury__builtin__unify_2_p_0(TypeInfo_43_43, ((MR_Box) (ArgX11_23)), ((MR_Box) (ArgY11_24)));
                        if (succeeded)
                        {
                          succeeded = parse_tree__prog_data____Unify____univ_exist_constraints_0_0(ArgX12_25, ArgY12_26);
                          if (succeeded)
                          {
                            succeeded = hlds__hlds_clauses____Unify____clauses_info_0_0(ArgX13_27, ArgY13_28);
                            if (succeeded)
                            {
                              TypeInfo_46_46 = (MR_Word) (&hlds__hlds_pred_scalar_common_1[7]);
                              succeeded = mercury__builtin__unify_2_p_0(TypeInfo_46_46, ((MR_Box) (ArgX14_29)), ((MR_Box) (ArgY14_30)));
                              if (succeeded)
                                succeeded = hlds__hlds_pred____Unify____pred_sub_info_0_0(ArgX15_31, ArgY15_32);
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  return succeeded;
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____pred_sub_info_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_37 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_38 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_37 == CastY_38);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  {
    MR_Word TypeInfo_40_40;
    MR_Word TypeInfo_41_41;
    MR_Word TypeInfo_42_42;
    MR_Word TypeInfo_43_43;
    MR_Word TypeInfo_44_44;
    MR_Word TypeInfo_45_45;
    MR_Word TypeInfo_46_46;
    MR_Word TypeInfo_48_48;
    MR_Word TypeInfo_49_49;
    MR_Word TypeInfo_50_50;
    MR_Word TypeInfo_51_51;
    MR_Word TypeInfo_52_52;
    MR_Word TypeInfo_53_53;
    MR_Word ArgX1_3 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 0))));
    MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgX2_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 1))));
    MR_Word ArgY2_6 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 1))));
    MR_Word ArgX3_7 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 2))));
    MR_Word ArgY3_8 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 2))));
    MR_Word ArgX4_9 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 3))));
    MR_Word ArgY4_10 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 3))));
    MR_Word ArgX5_11 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 4))));
    MR_Word ArgY5_12 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 4))));
    MR_Integer ArgX6_13 = ((MR_Integer) ((MR_hl_field(0, HeadVar__1_1, 5))));
    MR_Integer ArgY6_14 = ((MR_Integer) ((MR_hl_field(0, HeadVar__2_2, 5))));
    MR_Word ArgX7_15 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 6))));
    MR_Word ArgY7_16 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 6))));
    MR_Word ArgX8_17 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 7))));
    MR_Word ArgY8_18 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 7))));
    MR_Word ArgX9_19 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 8))));
    MR_Word ArgY9_20 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 8))));
    MR_Word ArgX10_21 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 9))));
    MR_Word ArgY10_22 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 9))));
    MR_Word ArgX11_23 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 10))));
    MR_Word ArgY11_24 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 10))));
    MR_Word ArgX12_25 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 11))));
    MR_Word ArgY12_26 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 11))));
    MR_Word ArgX13_27 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 12))));
    MR_Word ArgY13_28 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 12))));
    MR_Word ArgX14_29 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 13))));
    MR_Word ArgY14_30 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 13))));
    MR_Word ArgX15_31 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 14))));
    MR_Word ArgY15_32 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 14))));
    MR_Word ArgX16_33 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 15))));
    MR_Word ArgY16_34 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 15))));
    MR_Word ArgX17_35 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 16))));
    MR_Word ArgY17_36 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 16))));

    succeeded = mercury__term_context____Unify____term_context_0_0(ArgX1_3, ArgY1_4);
    if (succeeded)
    {
      TypeInfo_40_40 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[17]);
      succeeded = mercury__builtin__unify_2_p_0(TypeInfo_40_40, ((MR_Box) (ArgX2_5)), ((MR_Box) (ArgY2_6)));
      if (succeeded)
      {
        succeeded = hlds__hlds_pred____Unify____goal_type_0_0(ArgX3_7, ArgY3_8);
        if (succeeded)
        {
          TypeInfo_41_41 = (MR_Word) (&hlds__hlds_pred_scalar_common_1[1]);
          succeeded = mercury__builtin__unify_2_p_0(TypeInfo_41_41, ((MR_Box) (ArgX4_9)), ((MR_Box) (ArgY4_10)));
          if (succeeded)
          {
            TypeInfo_42_42 = (MR_Word) (&hlds__hlds_pred_scalar_common_1[8]);
            succeeded = mercury__builtin__unify_2_p_0(TypeInfo_42_42, ((MR_Box) (ArgX5_11)), ((MR_Box) (ArgY5_12)));
            if (succeeded)
            {
              succeeded = (ArgX6_13 == ArgY6_14);
              if (succeeded)
              {
                TypeInfo_43_43 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[3]);
                succeeded = mercury__builtin__unify_2_p_0(TypeInfo_43_43, ((MR_Box) (ArgX7_15)), ((MR_Box) (ArgY7_16)));
                if (succeeded)
                {
                  TypeInfo_44_44 = (MR_Word) (&hlds__hlds_pred_scalar_common_1[2]);
                  succeeded = mercury__builtin__unify_2_p_0(TypeInfo_44_44, ((MR_Box) (ArgX8_17)), ((MR_Box) (ArgY8_18)));
                  if (succeeded)
                  {
                    TypeInfo_45_45 = (MR_Word) (&hlds__hlds_pred_scalar_common_1[3]);
                    succeeded = mercury__builtin__unify_2_p_0(TypeInfo_45_45, ((MR_Box) (ArgX9_19)), ((MR_Box) (ArgY9_20)));
                    if (succeeded)
                    {
                      TypeInfo_46_46 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[4]);
                      succeeded = mercury__builtin__unify_2_p_0(TypeInfo_46_46, ((MR_Box) (ArgX10_21)), ((MR_Box) (ArgY10_22)));
                      if (succeeded)
                      {
                        succeeded = hlds__inst_graph____Unify____inst_graph_info_0_0(ArgX11_23, ArgY11_24);
                        if (succeeded)
                        {
                          TypeInfo_48_48 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[18]);
                          succeeded = mercury__builtin__unify_2_p_0(TypeInfo_48_48, ((MR_Box) (ArgX12_25)), ((MR_Box) (ArgY12_26)));
                          if (succeeded)
                          {
                            TypeInfo_49_49 = (MR_Word) (&hlds__hlds_pred_scalar_common_1[4]);
                            succeeded = mercury__builtin__unify_2_p_0(TypeInfo_49_49, ((MR_Box) (ArgX13_27)), ((MR_Box) (ArgY13_28)));
                            if (succeeded)
                            {
                              TypeInfo_50_50 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[19]);
                              succeeded = mercury__builtin__unify_2_p_0(TypeInfo_50_50, ((MR_Box) (ArgX14_29)), ((MR_Box) (ArgY14_30)));
                              if (succeeded)
                              {
                                TypeInfo_51_51 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[21]);
                                succeeded = mercury__builtin__unify_2_p_0(TypeInfo_51_51, ((MR_Box) (ArgX15_31)), ((MR_Box) (ArgY15_32)));
                                if (succeeded)
                                {
                                  TypeInfo_52_52 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[22]);
                                  succeeded = mercury__builtin__unify_2_p_0(TypeInfo_52_52, ((MR_Box) (ArgX16_33)), ((MR_Box) (ArgY16_34)));
                                  if (succeeded)
                                  {
                                    TypeInfo_53_53 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[14]);
                                    succeeded = mercury__builtin__unify_2_p_0(TypeInfo_53_53, ((MR_Box) (ArgX17_35)), ((MR_Box) (ArgY17_36)));
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____pred_id_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_6 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_7 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_6 == CastY_7);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  {
    MR_Integer ArgX1_4 = (MR_Integer) (HeadVar__2_2);
    MR_Integer ArgY1_5 = (MR_Integer) (HeadVar__3_3);

    succeeded = (ArgX1_4 < ArgY1_5);
    if (succeeded)
      *HeadVar__1_1 = (MR_Integer) 1;
    else
    {
      succeeded = (ArgX1_4 > ArgY1_5);
      if (succeeded)
        *HeadVar__1_1 = (MR_Integer) 2;
      else
        *HeadVar__1_1 = (MR_Integer) 0;
    }
  }
}

void MR_CALL 
hlds__hlds_pred____Compare____oisu_pred_kind_for_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_10 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_11 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_10 == CastY_11);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
    switch (MR_tag((MR_Word) HeadVar__2_2)) {
      default: /*NOTREACHED*/ MR_assert(0);
      case (MR_Integer) 0:
        switch (MR_tag((MR_Word) HeadVar__3_3)) {
          default: /*NOTREACHED*/ MR_assert(0);
          case (MR_Integer) 0:
            {
              MR_Word ArgX1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
              MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 0))));

              parse_tree__prog_data____Compare____type_ctor_0_0(HeadVar__1_1, ArgX1_4, ArgY1_5);
            }
            break;
          case (MR_Integer) 1:
          case (MR_Integer) 2:
            *HeadVar__1_1 = (MR_Integer) 1;
            break;
        }
        break;
      case (MR_Integer) 1:
        switch (MR_tag((MR_Word) HeadVar__3_3)) {
          default: /*NOTREACHED*/ MR_assert(0);
          case (MR_Integer) 0:
            *HeadVar__1_1 = (MR_Integer) 2;
            break;
          case (MR_Integer) 1:
            {
              MR_Word ArgX1_6 = ((MR_Word) ((MR_hl_field(1, HeadVar__2_2, 0))));
              MR_Word ArgY1_7 = ((MR_Word) ((MR_hl_field(1, HeadVar__3_3, 0))));

              parse_tree__prog_data____Compare____type_ctor_0_0(HeadVar__1_1, ArgX1_6, ArgY1_7);
            }
            break;
          case (MR_Integer) 2:
            *HeadVar__1_1 = (MR_Integer) 1;
            break;
        }
        break;
      case (MR_Integer) 2:
        switch (MR_tag((MR_Word) HeadVar__3_3)) {
          default: /*NOTREACHED*/ MR_assert(0);
          case (MR_Integer) 0:
          case (MR_Integer) 1:
            *HeadVar__1_1 = (MR_Integer) 2;
            break;
          case (MR_Integer) 2:
            {
              MR_Word ArgX1_8 = ((MR_Word) ((MR_hl_field(2, HeadVar__2_2, 0))));
              MR_Word ArgY1_9 = ((MR_Word) ((MR_hl_field(2, HeadVar__3_3, 0))));

              parse_tree__prog_data____Compare____type_ctor_0_0(HeadVar__1_1, ArgX1_8, ArgY1_9);
            }
            break;
        }
        break;
    }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____oisu_pred_kind_for_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_9 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_10 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_9 == CastY_10);
  if (succeeded)
    succeeded = MR_TRUE;
  else
    switch (MR_tag((MR_Word) HeadVar__1_1)) {
      default: /*NOTREACHED*/ MR_assert(0);
      case (MR_Integer) 0:
        {
          MR_Word ArgX1_3 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 0))));
          MR_Word ArgY1_4;

          succeeded = ((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 0);
          if (succeeded)
          {
            ArgY1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
            succeeded = parse_tree__prog_data____Unify____type_ctor_0_0(ArgX1_3, ArgY1_4);
          }
        }
        break;
      case (MR_Integer) 1:
        {
          MR_Word ArgX1_5 = ((MR_Word) ((MR_hl_field(1, HeadVar__1_1, 0))));
          MR_Word ArgY1_6;

          succeeded = ((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 1);
          if (succeeded)
          {
            ArgY1_6 = ((MR_Word) ((MR_hl_field(1, HeadVar__2_2, 0))));
            succeeded = parse_tree__prog_data____Unify____type_ctor_0_0(ArgX1_5, ArgY1_6);
          }
        }
        break;
      case (MR_Integer) 2:
        {
          MR_Word ArgX1_7 = ((MR_Word) ((MR_hl_field(2, HeadVar__1_1, 0))));
          MR_Word ArgY1_8;

          succeeded = ((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 2);
          if (succeeded)
          {
            ArgY1_8 = ((MR_Word) ((MR_hl_field(2, HeadVar__2_2, 0))));
            succeeded = parse_tree__prog_data____Unify____type_ctor_0_0(ArgX1_7, ArgY1_8);
          }
        }
        break;
    }
  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____np_goal_type_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer Cast_HeadVar1_4 = (MR_Integer) (HeadVar__2_2);
  MR_Integer Cast_HeadVar2_5 = (MR_Integer) (HeadVar__3_3);

  succeeded = (Cast_HeadVar1_4 < Cast_HeadVar2_5);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 1;
  else
  {
    succeeded = (Cast_HeadVar1_4 > Cast_HeadVar2_5);
    if (succeeded)
      *HeadVar__1_1 = (MR_Integer) 2;
    else
      *HeadVar__1_1 = (MR_Integer) 0;
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____np_goal_type_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded = (HeadVar__1_1 == HeadVar__2_2);

  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____needs_maxfr_slot_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer Cast_HeadVar1_4 = (MR_Integer) (HeadVar__2_2);
  MR_Integer Cast_HeadVar2_5 = (MR_Integer) (HeadVar__3_3);

  succeeded = (Cast_HeadVar1_4 < Cast_HeadVar2_5);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 1;
  else
  {
    succeeded = (Cast_HeadVar1_4 > Cast_HeadVar2_5);
    if (succeeded)
      *HeadVar__1_1 = (MR_Integer) 2;
    else
      *HeadVar__1_1 = (MR_Integer) 0;
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____needs_maxfr_slot_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded = (HeadVar__1_1 == HeadVar__2_2);

  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____maybe_predmode_decl_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer Cast_HeadVar1_4 = (MR_Integer) (HeadVar__2_2);
  MR_Integer Cast_HeadVar2_5 = (MR_Integer) (HeadVar__3_3);

  succeeded = (Cast_HeadVar1_4 < Cast_HeadVar2_5);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 1;
  else
  {
    succeeded = (Cast_HeadVar1_4 > Cast_HeadVar2_5);
    if (succeeded)
      *HeadVar__1_1 = (MR_Integer) 2;
    else
      *HeadVar__1_1 = (MR_Integer) 0;
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____maybe_predmode_decl_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded = (HeadVar__1_1 == HeadVar__2_2);

  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____liveness_info_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_Word Cast_HeadVar1_4 = HeadVar__2_2;
  MR_Word Cast_HeadVar2_5 = HeadVar__3_3;

  mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[15]), HeadVar__1_1, ((MR_Box) (Cast_HeadVar1_4)), ((MR_Box) (Cast_HeadVar2_5)));
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____liveness_info_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Word Cast_HeadVar1_3 = HeadVar__1_1;
  MR_Word Cast_HeadVar2_4 = HeadVar__2_2;

  succeeded = mercury__builtin__unify_2_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[15]), ((MR_Box) (Cast_HeadVar1_3)), ((MR_Box) (Cast_HeadVar2_4)));
  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____is_address_taken_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer Cast_HeadVar1_4 = (MR_Integer) (HeadVar__2_2);
  MR_Integer Cast_HeadVar2_5 = (MR_Integer) (HeadVar__3_3);

  succeeded = (Cast_HeadVar1_4 < Cast_HeadVar2_5);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 1;
  else
  {
    succeeded = (Cast_HeadVar1_4 > Cast_HeadVar2_5);
    if (succeeded)
      *HeadVar__1_1 = (MR_Integer) 2;
    else
      *HeadVar__1_1 = (MR_Integer) 0;
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____is_address_taken_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded = (HeadVar__1_1 == HeadVar__2_2);

  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____imported_sharing_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_12 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_13 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_12 == CastY_13);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  {
    MR_Word ArgX1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 0))));
    MR_Word ArgX2_7 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 1))));
    MR_Word ArgY2_8 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 1))));
    MR_Word ArgX3_10 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 2))));
    MR_Word ArgY3_11 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 2))));
    MR_Word SubResult1_6;

    mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[6]), &SubResult1_6, ((MR_Box) (ArgX1_4)), ((MR_Box) (ArgY1_5)));
    succeeded = (SubResult1_6 != (MR_Integer) 0);
    if (succeeded)
      *HeadVar__1_1 = SubResult1_6;
    else
    {
      MR_Word SubResult2_9;

      mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[14]), &SubResult2_9, ((MR_Box) (ArgX2_7)), ((MR_Box) (ArgY2_8)));
      succeeded = (SubResult2_9 != (MR_Integer) 0);
      if (succeeded)
        *HeadVar__1_1 = SubResult2_9;
      else
        parse_tree__prog_data_pragma____Compare____structure_sharing_domain_0_0(HeadVar__1_1, ArgX3_10, ArgY3_11);
    }
  }
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____imported_sharing_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_9 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_10 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_9 == CastY_10);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  {
    MR_Word TypeInfo_12_12;
    MR_Word ArgX1_3 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 0))));
    MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgX2_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 1))));
    MR_Word ArgY2_6 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 1))));
    MR_Word ArgX3_7 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 2))));
    MR_Word ArgY3_8 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 2))));

    succeeded = mercury__builtin__unify_2_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[6]), ((MR_Box) (ArgX1_3)), ((MR_Box) (ArgY1_4)));
    if (succeeded)
    {
      TypeInfo_12_12 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[14]);
      succeeded = mercury__builtin__unify_2_p_0(TypeInfo_12_12, ((MR_Box) (ArgX2_5)), ((MR_Box) (ArgY2_6)));
      if (succeeded)
        succeeded = parse_tree__prog_data_pragma____Unify____structure_sharing_domain_0_0(ArgX3_7, ArgY3_8);
    }
  }
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____imported_reuse_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_12 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_13 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_12 == CastY_13);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  {
    MR_Word ArgX1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 0))));
    MR_Word ArgX2_7 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 1))));
    MR_Word ArgY2_8 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 1))));
    MR_Word ArgX3_10 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 2))));
    MR_Word ArgY3_11 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 2))));
    MR_Word SubResult1_6;

    mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[6]), &SubResult1_6, ((MR_Box) (ArgX1_4)), ((MR_Box) (ArgY1_5)));
    succeeded = (SubResult1_6 != (MR_Integer) 0);
    if (succeeded)
      *HeadVar__1_1 = SubResult1_6;
    else
    {
      MR_Word SubResult2_9;

      mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[14]), &SubResult2_9, ((MR_Box) (ArgX2_7)), ((MR_Box) (ArgY2_8)));
      succeeded = (SubResult2_9 != (MR_Integer) 0);
      if (succeeded)
        *HeadVar__1_1 = SubResult2_9;
      else
        parse_tree__prog_data_pragma____Compare____structure_reuse_domain_0_0(HeadVar__1_1, ArgX3_10, ArgY3_11);
    }
  }
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____imported_reuse_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_9 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_10 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_9 == CastY_10);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  {
    MR_Word TypeInfo_12_12;
    MR_Word ArgX1_3 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 0))));
    MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgX2_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 1))));
    MR_Word ArgY2_6 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 1))));
    MR_Word ArgX3_7 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 2))));
    MR_Word ArgY3_8 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 2))));

    succeeded = mercury__builtin__unify_2_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[6]), ((MR_Box) (ArgX1_3)), ((MR_Box) (ArgY1_4)));
    if (succeeded)
    {
      TypeInfo_12_12 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[14]);
      succeeded = mercury__builtin__unify_2_p_0(TypeInfo_12_12, ((MR_Box) (ArgX2_5)), ((MR_Box) (ArgY2_6)));
      if (succeeded)
        succeeded = parse_tree__prog_data_pragma____Unify____structure_reuse_domain_0_0(ArgX3_7, ArgY3_8);
    }
  }
  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____implementation_language_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_6 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_7 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_6 == CastY_7);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  if ((HeadVar__2_2 == (MR_Word) ((MR_Unsigned) 0U)))
    if ((HeadVar__3_3 == (MR_Word) ((MR_Unsigned) 0U)))
      *HeadVar__1_1 = (MR_Integer) 0;
    else
      *HeadVar__1_1 = (MR_Integer) 1;
  else
  if ((HeadVar__3_3 == (MR_Word) ((MR_Unsigned) 0U)))
    *HeadVar__1_1 = (MR_Integer) 2;
  else
  {
    MR_Word ArgX1_4 = ((MR_Unsigned) ((MR_hl_field(1, HeadVar__2_2, 0))) & (MR_Integer) 3);
    MR_Word ArgY1_5 = ((MR_Unsigned) ((MR_hl_field(1, HeadVar__3_3, 0))) & (MR_Integer) 3);
    MR_Integer Var_9 = (MR_Integer) (ArgX1_4);
    MR_Integer Var_10 = (MR_Integer) (ArgY1_5);

    succeeded = (Var_9 < Var_10);
    if (succeeded)
      *HeadVar__1_1 = (MR_Integer) 1;
    else
    {
      succeeded = (Var_9 > Var_10);
      if (succeeded)
        *HeadVar__1_1 = (MR_Integer) 2;
      else
        *HeadVar__1_1 = (MR_Integer) 0;
    }
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____implementation_language_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_7 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_8 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_7 == CastY_8);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  if ((HeadVar__1_1 == (MR_Word) ((MR_Unsigned) 0U)))
  {
    MR_Integer CastX_5 = (MR_Integer) (HeadVar__1_1);
    MR_Integer CastY_6 = (MR_Integer) (HeadVar__2_2);

    succeeded = (CastY_6 == CastX_5);
  }
  else
  {
    MR_Word ArgX1_3 = ((MR_Unsigned) ((MR_hl_field(1, HeadVar__1_1, 0))) & (MR_Integer) 3);
    MR_Word ArgY1_4;

    succeeded = (HeadVar__2_2 != (MR_Word) ((MR_Unsigned) 0U));
    if (succeeded)
    {
      ArgY1_4 = ((MR_Unsigned) ((MR_hl_field(1, HeadVar__2_2, 0))) & (MR_Integer) 3);
      succeeded = (ArgX1_3 == ArgY1_4);
    }
  }
  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____hlds_deep_layout_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_9 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_10 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_9 == CastY_10);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  {
    MR_Word ArgX1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 0))));
    MR_Word ArgX2_7 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 1))));
    MR_Word ArgY2_8 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 1))));
    MR_Word SubResult1_6;

    hlds__hlds_pred____Compare____hlds_proc_static_0_0(&SubResult1_6, ArgX1_4, ArgY1_5);
    succeeded = (SubResult1_6 != (MR_Integer) 0);
    if (succeeded)
      *HeadVar__1_1 = SubResult1_6;
    else
      hlds__hlds_pred____Compare____hlds_deep_excp_vars_0_0(HeadVar__1_1, ArgX2_7, ArgY2_8);
  }
}

void MR_CALL 
hlds__hlds_pred____Compare____hlds_proc_static_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_18 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_19 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_18 == CastY_19);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  {
    MR_String ArgX1_4 = ((MR_String) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_String ArgY1_5 = ((MR_String) ((MR_hl_field(0, HeadVar__3_3, 0))));
    MR_Integer ArgX2_7 = ((MR_Integer) ((MR_hl_field(0, HeadVar__2_2, 1))));
    MR_Integer ArgY2_8 = ((MR_Integer) ((MR_hl_field(0, HeadVar__3_3, 1))));
    MR_Word ArgX3_10 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 2))) & (MR_Integer) 1);
    MR_Word ArgY3_11 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__3_3, 2))) & (MR_Integer) 1);
    MR_Word ArgX4_13 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 3))));
    MR_Word ArgY4_14 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 3))));
    MR_Word ArgX5_16 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 4))));
    MR_Word ArgY5_17 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 4))));
    MR_Word SubResult1_6;

    mercury__private_builtin__builtin_compare_string_3_p_0(&SubResult1_6, ArgX1_4, ArgY1_5);
    succeeded = (SubResult1_6 != (MR_Integer) 0);
    if (succeeded)
      *HeadVar__1_1 = SubResult1_6;
    else
    {
      MR_Word SubResult2_9;

      succeeded = (ArgX2_7 < ArgY2_8);
      if (succeeded)
      {
        SubResult2_9 = (MR_Integer) 1;
        succeeded = MR_TRUE;
      }
      else
      {
        succeeded = (ArgX2_7 > ArgY2_8);
        if (succeeded)
        {
          SubResult2_9 = (MR_Integer) 2;
          succeeded = MR_TRUE;
        }
      }
      if (succeeded)
        *HeadVar__1_1 = SubResult2_9;
      else
      {
        MR_Word SubResult3_12;
        MR_Integer Var_25 = (MR_Integer) (ArgX3_10);
        MR_Integer Var_26 = (MR_Integer) (ArgY3_11);

        succeeded = (Var_25 < Var_26);
        if (succeeded)
        {
          SubResult3_12 = (MR_Integer) 1;
          succeeded = MR_TRUE;
        }
        else
        {
          succeeded = (Var_25 > Var_26);
          if (succeeded)
          {
            SubResult3_12 = (MR_Integer) 2;
            succeeded = MR_TRUE;
          }
        }
        if (succeeded)
          *HeadVar__1_1 = SubResult3_12;
        else
        {
          MR_Word SubResult4_15;

          mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[12]), &SubResult4_15, ((MR_Box) (ArgX4_13)), ((MR_Box) (ArgY4_14)));
          succeeded = (SubResult4_15 != (MR_Integer) 0);
          if (succeeded)
            *HeadVar__1_1 = SubResult4_15;
          else
            mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[13]), HeadVar__1_1, ((MR_Box) (ArgX5_16)), ((MR_Box) (ArgY5_17)));
        }
      }
    }
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____hlds_deep_layout_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_7 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_8 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_7 == CastY_8);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  {
    MR_Word ArgX1_3 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 0))));
    MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgX2_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 1))));
    MR_Word ArgY2_6 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 1))));

    succeeded = hlds__hlds_pred____Unify____hlds_proc_static_0_0(ArgX1_3, ArgY1_4);
    if (succeeded)
      succeeded = hlds__hlds_pred____Unify____hlds_deep_excp_vars_0_0(ArgX2_5, ArgY2_6);
  }
  return succeeded;
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____hlds_proc_static_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_13 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_14 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_13 == CastY_14);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  {
    MR_Word TypeInfo_15_15;
    MR_Word TypeInfo_16_16;
    MR_String ArgX1_3 = ((MR_String) ((MR_hl_field(0, HeadVar__1_1, 0))));
    MR_String ArgY1_4 = ((MR_String) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Integer ArgX2_5 = ((MR_Integer) ((MR_hl_field(0, HeadVar__1_1, 1))));
    MR_Integer ArgY2_6 = ((MR_Integer) ((MR_hl_field(0, HeadVar__2_2, 1))));
    MR_Word ArgX3_7 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__1_1, 2))) & (MR_Integer) 1);
    MR_Word ArgY3_8 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 2))) & (MR_Integer) 1);
    MR_Word ArgX4_9 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 3))));
    MR_Word ArgY4_10 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 3))));
    MR_Word ArgX5_11 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 4))));
    MR_Word ArgY5_12 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 4))));

    succeeded = (strcmp(ArgX1_3, ArgY1_4) == 0);
    if (succeeded)
    {
      succeeded = (ArgX2_5 == ArgY2_6);
      if (succeeded)
      {
        succeeded = (ArgX3_7 == ArgY3_8);
        if (succeeded)
        {
          TypeInfo_15_15 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[12]);
          succeeded = mercury__builtin__unify_2_p_0(TypeInfo_15_15, ((MR_Box) (ArgX4_9)), ((MR_Box) (ArgY4_10)));
          if (succeeded)
          {
            TypeInfo_16_16 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[13]);
            succeeded = mercury__builtin__unify_2_p_0(TypeInfo_16_16, ((MR_Box) (ArgX5_11)), ((MR_Box) (ArgY5_12)));
          }
        }
      }
    }
  }
  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____hlds_deep_excp_vars_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_12 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_13 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_12 == CastY_13);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  {
    MR_Word ArgX1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 0))));
    MR_Word ArgX2_7 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 1))));
    MR_Word ArgY2_8 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 1))));
    MR_Word ArgX3_10 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 2))));
    MR_Word ArgY3_11 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 2))));
    MR_Word SubResult1_6;

    mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[1]), &SubResult1_6, ((MR_Box) (ArgX1_4)), ((MR_Box) (ArgY1_5)));
    succeeded = (SubResult1_6 != (MR_Integer) 0);
    if (succeeded)
      *HeadVar__1_1 = SubResult1_6;
    else
    {
      MR_Word SubResult2_9;

      mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[1]), &SubResult2_9, ((MR_Box) (ArgX2_7)), ((MR_Box) (ArgY2_8)));
      succeeded = (SubResult2_9 != (MR_Integer) 0);
      if (succeeded)
        *HeadVar__1_1 = SubResult2_9;
      else
        mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[11]), HeadVar__1_1, ((MR_Box) (ArgX3_10)), ((MR_Box) (ArgY3_11)));
    }
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____hlds_deep_excp_vars_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_9 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_10 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_9 == CastY_10);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  {
    MR_Word TypeInfo_12_12;
    MR_Word TypeInfo_13_13;
    MR_Word ArgX1_3 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 0))));
    MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgX2_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 1))));
    MR_Word ArgY2_6 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 1))));
    MR_Word ArgX3_7 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 2))));
    MR_Word ArgY3_8 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 2))));

    succeeded = mercury__builtin__unify_2_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[1]), ((MR_Box) (ArgX1_3)), ((MR_Box) (ArgY1_4)));
    if (succeeded)
    {
      TypeInfo_12_12 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[1]);
      succeeded = mercury__builtin__unify_2_p_0(TypeInfo_12_12, ((MR_Box) (ArgX2_5)), ((MR_Box) (ArgY2_6)));
      if (succeeded)
      {
        TypeInfo_13_13 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[11]);
        succeeded = mercury__builtin__unify_2_p_0(TypeInfo_13_13, ((MR_Box) (ArgX3_7)), ((MR_Box) (ArgY3_8)));
      }
    }
  }
  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____has_user_event_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer Cast_HeadVar1_4 = (MR_Integer) (HeadVar__2_2);
  MR_Integer Cast_HeadVar2_5 = (MR_Integer) (HeadVar__3_3);

  succeeded = (Cast_HeadVar1_4 < Cast_HeadVar2_5);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 1;
  else
  {
    succeeded = (Cast_HeadVar1_4 > Cast_HeadVar2_5);
    if (succeeded)
      *HeadVar__1_1 = (MR_Integer) 2;
    else
      *HeadVar__1_1 = (MR_Integer) 0;
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____has_user_event_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded = (HeadVar__1_1 == HeadVar__2_2);

  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____has_tail_rec_call_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_9 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_10 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_9 == CastY_10);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  {
    MR_Word ArgX1_4 = ((((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 0))) >> 1)) & (MR_Integer) 1);
    MR_Word ArgY1_5 = ((((MR_Unsigned) ((MR_hl_field(0, HeadVar__3_3, 0))) >> 1)) & (MR_Integer) 1);
    MR_Word ArgX2_7 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 0))) & (MR_Integer) 1);
    MR_Word ArgY2_8 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__3_3, 0))) & (MR_Integer) 1);
    MR_Word SubResult1_6;
    MR_Integer Var_13 = (MR_Integer) (ArgX1_4);
    MR_Integer Var_14 = (MR_Integer) (ArgY1_5);

    succeeded = (Var_13 < Var_14);
    if (succeeded)
    {
      SubResult1_6 = (MR_Integer) 1;
      succeeded = MR_TRUE;
    }
    else
    {
      succeeded = (Var_13 > Var_14);
      if (succeeded)
      {
        SubResult1_6 = (MR_Integer) 2;
        succeeded = MR_TRUE;
      }
    }
    if (succeeded)
      *HeadVar__1_1 = SubResult1_6;
    else
    {
      MR_Integer Var_15 = (MR_Integer) (ArgX2_7);
      MR_Integer Var_16 = (MR_Integer) (ArgY2_8);

      succeeded = (Var_15 < Var_16);
      if (succeeded)
        *HeadVar__1_1 = (MR_Integer) 1;
      else
      {
        succeeded = (Var_15 > Var_16);
        if (succeeded)
          *HeadVar__1_1 = (MR_Integer) 2;
        else
          *HeadVar__1_1 = (MR_Integer) 0;
      }
    }
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____has_tail_rec_call_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_7 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_8 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_7 == CastY_8);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  {
    MR_Word ArgX1_3 = ((((MR_Unsigned) ((MR_hl_field(0, HeadVar__1_1, 0))) >> 1)) & (MR_Integer) 1);
    MR_Word ArgY1_4 = ((((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 0))) >> 1)) & (MR_Integer) 1);
    MR_Word ArgX2_5 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__1_1, 0))) & (MR_Integer) 1);
    MR_Word ArgY2_6 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 0))) & (MR_Integer) 1);

    succeeded = (ArgX1_3 == ArgY1_4);
    if (succeeded)
      succeeded = (ArgX2_5 == ArgY2_6);
  }
  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____has_self_tail_rec_call_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer Cast_HeadVar1_4 = (MR_Integer) (HeadVar__2_2);
  MR_Integer Cast_HeadVar2_5 = (MR_Integer) (HeadVar__3_3);

  succeeded = (Cast_HeadVar1_4 < Cast_HeadVar2_5);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 1;
  else
  {
    succeeded = (Cast_HeadVar1_4 > Cast_HeadVar2_5);
    if (succeeded)
      *HeadVar__1_1 = (MR_Integer) 2;
    else
      *HeadVar__1_1 = (MR_Integer) 0;
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____has_self_tail_rec_call_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded = (HeadVar__1_1 == HeadVar__2_2);

  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____has_parallel_conj_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer Cast_HeadVar1_4 = (MR_Integer) (HeadVar__2_2);
  MR_Integer Cast_HeadVar2_5 = (MR_Integer) (HeadVar__3_3);

  succeeded = (Cast_HeadVar1_4 < Cast_HeadVar2_5);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 1;
  else
  {
    succeeded = (Cast_HeadVar1_4 > Cast_HeadVar2_5);
    if (succeeded)
      *HeadVar__1_1 = (MR_Integer) 2;
    else
      *HeadVar__1_1 = (MR_Integer) 0;
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____has_parallel_conj_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded = (HeadVar__1_1 == HeadVar__2_2);

  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____has_mutual_tail_rec_call_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer Cast_HeadVar1_4 = (MR_Integer) (HeadVar__2_2);
  MR_Integer Cast_HeadVar2_5 = (MR_Integer) (HeadVar__3_3);

  succeeded = (Cast_HeadVar1_4 < Cast_HeadVar2_5);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 1;
  else
  {
    succeeded = (Cast_HeadVar1_4 > Cast_HeadVar2_5);
    if (succeeded)
      *HeadVar__1_1 = (MR_Integer) 2;
    else
      *HeadVar__1_1 = (MR_Integer) 0;
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____has_mutual_tail_rec_call_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded = (HeadVar__1_1 == HeadVar__2_2);

  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____goal_type_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_8 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_9 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_8 == CastY_9);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  if (((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 1))
    if (((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 1))
    {
      MR_Word ArgX1_6 = ((MR_Unsigned) ((MR_hl_field(1, HeadVar__2_2, 0))) & (MR_Integer) 3);
      MR_Word ArgY1_7 = ((MR_Unsigned) ((MR_hl_field(1, HeadVar__3_3, 0))) & (MR_Integer) 3);
      MR_Integer Var_12 = (MR_Integer) (ArgX1_6);
      MR_Integer Var_13 = (MR_Integer) (ArgY1_7);

      succeeded = (Var_12 < Var_13);
      if (succeeded)
        *HeadVar__1_1 = (MR_Integer) 1;
      else
      {
        succeeded = (Var_12 > Var_13);
        if (succeeded)
          *HeadVar__1_1 = (MR_Integer) 2;
        else
          *HeadVar__1_1 = (MR_Integer) 0;
      }
    }
    else
      *HeadVar__1_1 = (MR_Integer) 2;
  else
  if (((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 1))
    *HeadVar__1_1 = (MR_Integer) 1;
  else
  {
    MR_Word ArgX1_4 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 0))) & (MR_Integer) 3);
    MR_Word ArgY1_5 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__3_3, 0))) & (MR_Integer) 3);
    MR_Integer Var_14 = (MR_Integer) (ArgX1_4);
    MR_Integer Var_15 = (MR_Integer) (ArgY1_5);

    succeeded = (Var_14 < Var_15);
    if (succeeded)
      *HeadVar__1_1 = (MR_Integer) 1;
    else
    {
      succeeded = (Var_14 > Var_15);
      if (succeeded)
        *HeadVar__1_1 = (MR_Integer) 2;
      else
        *HeadVar__1_1 = (MR_Integer) 0;
    }
  }
}

void MR_CALL 
hlds__hlds_pred____Compare____generic_call_id_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_21 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_22 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_21 == CastY_22);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
    switch (MR_tag((MR_Word) HeadVar__2_2)) {
      default: /*NOTREACHED*/ MR_assert(0);
      case (MR_Integer) 0:
        switch (MR_tag((MR_Word) HeadVar__3_3)) {
          default: /*NOTREACHED*/ MR_assert(0);
          case (MR_Integer) 0:
            {
              MR_Word ArgX1_4 = ((((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 0))) >> 1)) & (MR_Integer) 3);
              MR_Word ArgY1_5 = ((((MR_Unsigned) ((MR_hl_field(0, HeadVar__3_3, 0))) >> 1)) & (MR_Integer) 3);
              MR_Word ArgX2_7 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 0))) & (MR_Integer) 1);
              MR_Word ArgY2_8 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__3_3, 0))) & (MR_Integer) 1);
              MR_Word ArgX3_10 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 1))));
              MR_Word ArgY3_11 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 1))));
              MR_Word SubResult1_6;
              MR_Integer Var_32 = (MR_Integer) (ArgX1_4);
              MR_Integer Var_33 = (MR_Integer) (ArgY1_5);

              succeeded = (Var_32 < Var_33);
              if (succeeded)
              {
                SubResult1_6 = (MR_Integer) 1;
                succeeded = MR_TRUE;
              }
              else
              {
                succeeded = (Var_32 > Var_33);
                if (succeeded)
                {
                  SubResult1_6 = (MR_Integer) 2;
                  succeeded = MR_TRUE;
                }
              }
              if (succeeded)
                *HeadVar__1_1 = SubResult1_6;
              else
              {
                MR_Word SubResult2_9;
                MR_Integer Var_34 = (MR_Integer) (ArgX2_7);
                MR_Integer Var_35 = (MR_Integer) (ArgY2_8);

                succeeded = (Var_34 < Var_35);
                if (succeeded)
                {
                  SubResult2_9 = (MR_Integer) 1;
                  succeeded = MR_TRUE;
                }
                else
                {
                  succeeded = (Var_34 > Var_35);
                  if (succeeded)
                  {
                    SubResult2_9 = (MR_Integer) 2;
                    succeeded = MR_TRUE;
                  }
                }
                if (succeeded)
                  *HeadVar__1_1 = SubResult2_9;
                else
                {
                  MR_Integer Var_36 = (MR_Integer) (ArgX3_10);
                  MR_Integer Var_37 = (MR_Integer) (ArgY3_11);

                  succeeded = (Var_36 < Var_37);
                  if (succeeded)
                    *HeadVar__1_1 = (MR_Integer) 1;
                  else
                  {
                    succeeded = (Var_36 > Var_37);
                    if (succeeded)
                      *HeadVar__1_1 = (MR_Integer) 2;
                    else
                      *HeadVar__1_1 = (MR_Integer) 0;
                  }
                }
              }
            }
            break;
          case (MR_Integer) 1:
          case (MR_Integer) 2:
          case (MR_Integer) 3:
            *HeadVar__1_1 = (MR_Integer) 1;
            break;
        }
        break;
      case (MR_Integer) 1:
        switch (MR_tag((MR_Word) HeadVar__3_3)) {
          default: /*NOTREACHED*/ MR_assert(0);
          case (MR_Integer) 0:
            *HeadVar__1_1 = (MR_Integer) 2;
            break;
          case (MR_Integer) 1:
            {
              MR_Word ArgX1_12 = ((MR_Word) ((MR_hl_field(1, HeadVar__2_2, 0))));
              MR_Word ArgY1_13 = ((MR_Word) ((MR_hl_field(1, HeadVar__3_3, 0))));
              MR_Word ArgX2_15 = ((MR_Word) ((MR_hl_field(1, HeadVar__2_2, 1))));
              MR_Word ArgY2_16 = ((MR_Word) ((MR_hl_field(1, HeadVar__3_3, 1))));
              MR_Word SubResult1_14;

              parse_tree__prog_data____Compare____class_id_0_0(&SubResult1_14, ArgX1_12, ArgY1_13);
              succeeded = (SubResult1_14 != (MR_Integer) 0);
              if (succeeded)
                *HeadVar__1_1 = SubResult1_14;
              else
                parse_tree__prog_data____Compare____pf_sym_name_arity_0_0(HeadVar__1_1, ArgX2_15, ArgY2_16);
            }
            break;
          case (MR_Integer) 2:
          case (MR_Integer) 3:
            *HeadVar__1_1 = (MR_Integer) 1;
            break;
        }
        break;
      case (MR_Integer) 2:
        switch (MR_tag((MR_Word) HeadVar__3_3)) {
          default: /*NOTREACHED*/ MR_assert(0);
          case (MR_Integer) 0:
          case (MR_Integer) 1:
            *HeadVar__1_1 = (MR_Integer) 2;
            break;
          case (MR_Integer) 2:
            {
              MR_String ArgX1_17 = ((MR_String) ((MR_hl_field(2, HeadVar__2_2, 0))));
              MR_String ArgY1_18 = ((MR_String) ((MR_hl_field(2, HeadVar__3_3, 0))));

              mercury__private_builtin__builtin_compare_string_3_p_0(HeadVar__1_1, ArgX1_17, ArgY1_18);
            }
            break;
          case (MR_Integer) 3:
            *HeadVar__1_1 = (MR_Integer) 1;
            break;
        }
        break;
      case (MR_Integer) 3:
        switch (MR_tag((MR_Word) HeadVar__3_3)) {
          default: /*NOTREACHED*/ MR_assert(0);
          case (MR_Integer) 0:
          case (MR_Integer) 1:
          case (MR_Integer) 2:
            *HeadVar__1_1 = (MR_Integer) 2;
            break;
          case (MR_Integer) 3:
            {
              MR_Word ArgX1_19 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__2_2, 0))) & (MR_Integer) 7);
              MR_Word ArgY1_20 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__3_3, 0))) & (MR_Integer) 7);
              MR_Integer Var_30 = (MR_Integer) (ArgX1_19);
              MR_Integer Var_31 = (MR_Integer) (ArgY1_20);

              succeeded = (Var_30 < Var_31);
              if (succeeded)
                *HeadVar__1_1 = (MR_Integer) 1;
              else
              {
                succeeded = (Var_30 > Var_31);
                if (succeeded)
                  *HeadVar__1_1 = (MR_Integer) 2;
                else
                  *HeadVar__1_1 = (MR_Integer) 0;
              }
            }
            break;
        }
        break;
    }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____generic_call_id_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_17 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_18 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_17 == CastY_18);
  if (succeeded)
    succeeded = MR_TRUE;
  else
    switch (MR_tag((MR_Word) HeadVar__1_1)) {
      default: /*NOTREACHED*/ MR_assert(0);
      case (MR_Integer) 0:
        {
          MR_Word ArgX1_3 = ((((MR_Unsigned) ((MR_hl_field(0, HeadVar__1_1, 0))) >> 1)) & (MR_Integer) 3);
          MR_Word ArgY1_4;
          MR_Word ArgX2_5 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__1_1, 0))) & (MR_Integer) 1);
          MR_Word ArgY2_6;
          MR_Word ArgX3_7 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 1))));
          MR_Word ArgY3_8;
          MR_Integer Var_22;
          MR_Integer Var_23;

          succeeded = ((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 0);
          if (succeeded)
          {
            ArgY1_4 = ((((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 0))) >> 1)) & (MR_Integer) 3);
            ArgY2_6 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 0))) & (MR_Integer) 1);
            ArgY3_8 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 1))));
            succeeded = (ArgX1_3 == ArgY1_4);
            if (succeeded)
            {
              succeeded = (ArgX2_5 == ArgY2_6);
              if (succeeded)
              {
                Var_22 = (MR_Integer) (ArgX3_7);
                Var_23 = (MR_Integer) (ArgY3_8);
                succeeded = (Var_22 == Var_23);
              }
            }
          }
        }
        break;
      case (MR_Integer) 1:
        {
          MR_Word ArgX1_9 = ((MR_Word) ((MR_hl_field(1, HeadVar__1_1, 0))));
          MR_Word ArgY1_10;
          MR_Word ArgX2_11 = ((MR_Word) ((MR_hl_field(1, HeadVar__1_1, 1))));
          MR_Word ArgY2_12;

          succeeded = ((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 1);
          if (succeeded)
          {
            ArgY1_10 = ((MR_Word) ((MR_hl_field(1, HeadVar__2_2, 0))));
            ArgY2_12 = ((MR_Word) ((MR_hl_field(1, HeadVar__2_2, 1))));
            succeeded = parse_tree__prog_data____Unify____class_id_0_0(ArgX1_9, ArgY1_10);
            if (succeeded)
              succeeded = parse_tree__prog_data____Unify____pf_sym_name_arity_0_0(ArgX2_11, ArgY2_12);
          }
        }
        break;
      case (MR_Integer) 2:
        {
          MR_String ArgX1_13 = ((MR_String) ((MR_hl_field(2, HeadVar__1_1, 0))));
          MR_String ArgY1_14;

          succeeded = ((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 2);
          if (succeeded)
          {
            ArgY1_14 = ((MR_String) ((MR_hl_field(2, HeadVar__2_2, 0))));
            succeeded = (strcmp(ArgX1_13, ArgY1_14) == 0);
          }
        }
        break;
      case (MR_Integer) 3:
        {
          MR_Word ArgX1_15 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__1_1, 0))) & (MR_Integer) 7);
          MR_Word ArgY1_16;

          succeeded = ((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3);
          if (succeeded)
          {
            ArgY1_16 = ((MR_Unsigned) ((MR_hl_field(3, HeadVar__2_2, 0))) & (MR_Integer) 7);
            succeeded = (ArgX1_15 == ArgY1_16);
          }
        }
        break;
    }
  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____format_call_info_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_9 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_10 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_9 == CastY_10);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  {
    MR_Word ArgX1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 0))));
    MR_Word ArgX2_7 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 1))));
    MR_Word ArgY2_8 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 1))));
    MR_Word SubResult1_6;

    mercury__term_context____Compare____term_context_0_0(&SubResult1_6, ArgX1_4, ArgY1_5);
    succeeded = (SubResult1_6 != (MR_Integer) 0);
    if (succeeded)
      *HeadVar__1_1 = SubResult1_6;
    else
      mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[10]), HeadVar__1_1, ((MR_Box) (ArgX2_7)), ((MR_Box) (ArgY2_8)));
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____format_call_info_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_7 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_8 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_7 == CastY_8);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  {
    MR_Word TypeInfo_10_10;
    MR_Word ArgX1_3 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 0))));
    MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgX2_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 1))));
    MR_Word ArgY2_6 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 1))));

    succeeded = mercury__term_context____Unify____term_context_0_0(ArgX1_3, ArgY1_4);
    if (succeeded)
    {
      TypeInfo_10_10 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[10]);
      succeeded = mercury__builtin__unify_2_p_0(TypeInfo_10_10, ((MR_Box) (ArgX2_5)), ((MR_Box) (ArgY2_6)));
    }
  }
  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____external_type_params_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_Word Cast_HeadVar1_4 = HeadVar__2_2;
  MR_Word Cast_HeadVar2_5 = HeadVar__3_3;

  mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[3]), HeadVar__1_1, ((MR_Box) (Cast_HeadVar1_4)), ((MR_Box) (Cast_HeadVar2_5)));
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____external_type_params_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Word Cast_HeadVar1_3 = HeadVar__1_1;
  MR_Word Cast_HeadVar2_4 = HeadVar__2_2;

  succeeded = mercury__builtin__unify_2_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[3]), ((MR_Box) (Cast_HeadVar1_3)), ((MR_Box) (Cast_HeadVar2_4)));
  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____detism_decl_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer Cast_HeadVar1_4 = (MR_Integer) (HeadVar__2_2);
  MR_Integer Cast_HeadVar2_5 = (MR_Integer) (HeadVar__3_3);

  succeeded = (Cast_HeadVar1_4 < Cast_HeadVar2_5);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 1;
  else
  {
    succeeded = (Cast_HeadVar1_4 > Cast_HeadVar2_5);
    if (succeeded)
      *HeadVar__1_1 = (MR_Integer) 2;
    else
      *HeadVar__1_1 = (MR_Integer) 0;
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____detism_decl_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded = (HeadVar__1_1 == HeadVar__2_2);

  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____deep_recursion_info_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_9 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_10 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_9 == CastY_10);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  {
    MR_Word ArgX1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 0))));
    MR_Word ArgX2_7 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 1))));
    MR_Word ArgY2_8 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 1))));
    MR_Word SubResult1_6;

    hlds__hlds_pred____Compare____deep_profile_role_0_0(&SubResult1_6, ArgX1_4, ArgY1_5);
    succeeded = (SubResult1_6 != (MR_Integer) 0);
    if (succeeded)
      *HeadVar__1_1 = SubResult1_6;
    else
      mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[9]), HeadVar__1_1, ((MR_Box) (ArgX2_7)), ((MR_Box) (ArgY2_8)));
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____deep_recursion_info_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_7 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_8 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_7 == CastY_8);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  {
    MR_Word TypeInfo_9_9;
    MR_Word ArgX1_3 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 0))));
    MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgX2_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 1))));
    MR_Word ArgY2_6 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 1))));

    succeeded = hlds__hlds_pred____Unify____deep_profile_role_0_0(ArgX1_3, ArgY1_4);
    if (succeeded)
    {
      TypeInfo_9_9 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[9]);
      succeeded = mercury__builtin__unify_2_p_0(TypeInfo_9_9, ((MR_Box) (ArgX2_5)), ((MR_Box) (ArgY2_6)));
    }
  }
  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____deep_profile_role_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_8 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_9 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_8 == CastY_9);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  if (((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 0))
    if (((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 0))
    {
      MR_Word ArgX1_4 = (MR_Word) ((MR_Word) (HeadVar__2_2));
      MR_Word ArgY1_5 = (MR_Word) ((MR_Word) (HeadVar__3_3));

      hlds__hlds_pred____Compare____pred_proc_id_0_0(HeadVar__1_1, ArgX1_4, ArgY1_5);
    }
    else
      *HeadVar__1_1 = (MR_Integer) 1;
  else
  if (((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 0))
    *HeadVar__1_1 = (MR_Integer) 2;
  else
  {
    MR_Word ArgX1_6 = (MR_Word) (MR_body((MR_Word) (HeadVar__2_2), (MR_Integer) 1));
    MR_Word ArgY1_7 = (MR_Word) (MR_body((MR_Word) (HeadVar__3_3), (MR_Integer) 1));

    hlds__hlds_pred____Compare____pred_proc_id_0_0(HeadVar__1_1, ArgX1_6, ArgY1_7);
  }
}

void MR_CALL 
hlds__hlds_pred____Compare____pred_proc_id_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_9 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_10 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_9 == CastY_10);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  {
    MR_Word ArgX1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 0))));
    MR_Integer ArgX2_7 = ((MR_Integer) ((MR_hl_field(0, HeadVar__2_2, 1))));
    MR_Integer ArgY2_8 = ((MR_Integer) ((MR_hl_field(0, HeadVar__3_3, 1))));
    MR_Word SubResult1_6;
    MR_Integer Var_13 = (MR_Integer) (ArgX1_4);
    MR_Integer Var_14 = (MR_Integer) (ArgY1_5);

    succeeded = (Var_13 < Var_14);
    if (succeeded)
    {
      SubResult1_6 = (MR_Integer) 1;
      succeeded = MR_TRUE;
    }
    else
    {
      succeeded = (Var_13 > Var_14);
      if (succeeded)
      {
        SubResult1_6 = (MR_Integer) 2;
        succeeded = MR_TRUE;
      }
    }
    if (succeeded)
      *HeadVar__1_1 = SubResult1_6;
    else
    {
      succeeded = (ArgX2_7 < ArgY2_8);
      if (succeeded)
        *HeadVar__1_1 = (MR_Integer) 1;
      else
      {
        succeeded = (ArgX2_7 > ArgY2_8);
        if (succeeded)
          *HeadVar__1_1 = (MR_Integer) 2;
        else
          *HeadVar__1_1 = (MR_Integer) 0;
      }
    }
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____deep_profile_role_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_7 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_8 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_7 == CastY_8);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  if (((MR_tag((MR_Word) HeadVar__1_1)) == (MR_Integer) 0))
  {
    MR_Word ArgX1_3 = (MR_Word) ((MR_Word) (HeadVar__1_1));
    MR_Word ArgY1_4;

    succeeded = ((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 0);
    if (succeeded)
    {
      ArgY1_4 = (MR_Word) ((MR_Word) (HeadVar__2_2));
      succeeded = hlds__hlds_pred____Unify____pred_proc_id_0_0(ArgX1_3, ArgY1_4);
    }
  }
  else
  {
    MR_Word ArgX1_5 = (MR_Word) (MR_body((MR_Word) (HeadVar__1_1), (MR_Integer) 1));
    MR_Word ArgY1_6;

    succeeded = ((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 1);
    if (succeeded)
    {
      ArgY1_6 = (MR_Word) (MR_body((MR_Word) (HeadVar__2_2), (MR_Integer) 1));
      succeeded = hlds__hlds_pred____Unify____pred_proc_id_0_0(ArgX1_5, ArgY1_6);
    }
  }
  return succeeded;
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____pred_proc_id_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_7 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_8 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_7 == CastY_8);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  {
    MR_Word ArgX1_3 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 0))));
    MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Integer ArgX2_5 = ((MR_Integer) ((MR_hl_field(0, HeadVar__1_1, 1))));
    MR_Integer ArgY2_6 = ((MR_Integer) ((MR_hl_field(0, HeadVar__2_2, 1))));
    MR_Integer CastX_11 = (MR_Integer) (ArgX1_3);
    MR_Integer CastY_12 = (MR_Integer) (ArgY1_4);

    succeeded = (CastX_11 == CastY_12);
    if (succeeded)
      succeeded = MR_TRUE;
    else
    {
      MR_Integer ArgX1_9 = (MR_Integer) (ArgX1_3);
      MR_Integer ArgY1_10 = (MR_Integer) (ArgY1_4);

      succeeded = (ArgX1_9 == ArgY1_10);
    }
    if (succeeded)
      succeeded = (ArgX2_5 == ArgY2_6);
  }
  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____deep_profile_proc_info_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_12 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_13 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_12 == CastY_13);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  {
    MR_Word ArgX1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 0))));
    MR_Word ArgX2_7 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 1))));
    MR_Word ArgY2_8 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 1))));
    MR_Word ArgX3_10 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 2))));
    MR_Word ArgY3_11 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 2))));
    MR_Word SubResult1_6;

    mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[7]), &SubResult1_6, ((MR_Box) (ArgX1_4)), ((MR_Box) (ArgY1_5)));
    succeeded = (SubResult1_6 != (MR_Integer) 0);
    if (succeeded)
      *HeadVar__1_1 = SubResult1_6;
    else
    {
      MR_Word SubResult2_9;

      mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[8]), &SubResult2_9, ((MR_Box) (ArgX2_7)), ((MR_Box) (ArgY2_8)));
      succeeded = (SubResult2_9 != (MR_Integer) 0);
      if (succeeded)
        *HeadVar__1_1 = SubResult2_9;
      else
        hlds__hlds_pred____Compare____deep_original_body_0_0(HeadVar__1_1, ArgX3_10, ArgY3_11);
    }
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____deep_profile_proc_info_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_9 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_10 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_9 == CastY_10);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  {
    MR_Word TypeInfo_12_12;
    MR_Word ArgX1_3 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 0))));
    MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgX2_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 1))));
    MR_Word ArgY2_6 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 1))));
    MR_Word ArgX3_7 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 2))));
    MR_Word ArgY3_8 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 2))));

    succeeded = mercury__builtin__unify_2_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[7]), ((MR_Box) (ArgX1_3)), ((MR_Box) (ArgY1_4)));
    if (succeeded)
    {
      TypeInfo_12_12 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[8]);
      succeeded = mercury__builtin__unify_2_p_0(TypeInfo_12_12, ((MR_Box) (ArgX2_5)), ((MR_Box) (ArgY2_6)));
      if (succeeded)
        succeeded = hlds__hlds_pred____Unify____deep_original_body_0_0(ArgX3_7, ArgY3_8);
    }
  }
  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____deep_original_body_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_18 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_19 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_18 == CastY_19);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  {
    MR_Word ArgX1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 0))));
    MR_Word ArgX2_7 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 1))));
    MR_Word ArgY2_8 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 1))));
    MR_Word ArgX3_10 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 2))));
    MR_Word ArgY3_11 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 2))));
    MR_Word ArgX4_13 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 3))));
    MR_Word ArgY4_14 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 3))));
    MR_Word ArgX5_16 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 4))) & (MR_Integer) 7);
    MR_Word ArgY5_17 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__3_3, 4))) & (MR_Integer) 7);
    MR_Word SubResult1_6;

    hlds__hlds_goal____Compare____hlds_goal_0_0(&SubResult1_6, ArgX1_4, ArgY1_5);
    succeeded = (SubResult1_6 != (MR_Integer) 0);
    if (succeeded)
      *HeadVar__1_1 = SubResult1_6;
    else
    {
      MR_Word SubResult2_9;

      mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[6]), &SubResult2_9, ((MR_Box) (ArgX2_7)), ((MR_Box) (ArgY2_8)));
      succeeded = (SubResult2_9 != (MR_Integer) 0);
      if (succeeded)
        *HeadVar__1_1 = SubResult2_9;
      else
      {
        MR_Word SubResult3_12;

        hlds__instmap____Compare____instmap_0_0(&SubResult3_12, ArgX3_10, ArgY3_11);
        succeeded = (SubResult3_12 != (MR_Integer) 0);
        if (succeeded)
          *HeadVar__1_1 = SubResult3_12;
        else
        {
          MR_Word SubResult4_15;

          parse_tree__var_table____Compare____var_table_0_0(&SubResult4_15, ArgX4_13, ArgY4_14);
          succeeded = (SubResult4_15 != (MR_Integer) 0);
          if (succeeded)
            *HeadVar__1_1 = SubResult4_15;
          else
          {
            MR_Integer Var_25 = (MR_Integer) (ArgX5_16);
            MR_Integer Var_26 = (MR_Integer) (ArgY5_17);

            succeeded = (Var_25 < Var_26);
            if (succeeded)
              *HeadVar__1_1 = (MR_Integer) 1;
            else
            {
              succeeded = (Var_25 > Var_26);
              if (succeeded)
                *HeadVar__1_1 = (MR_Integer) 2;
              else
                *HeadVar__1_1 = (MR_Integer) 0;
            }
          }
        }
      }
    }
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____deep_original_body_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_13 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_14 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_13 == CastY_14);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  {
    MR_Word TypeInfo_16_16;
    MR_Word ArgX1_3 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 0))));
    MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgX2_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 1))));
    MR_Word ArgY2_6 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 1))));
    MR_Word ArgX3_7 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 2))));
    MR_Word ArgY3_8 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 2))));
    MR_Word ArgX4_9 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 3))));
    MR_Word ArgY4_10 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 3))));
    MR_Word ArgX5_11 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__1_1, 4))) & (MR_Integer) 7);
    MR_Word ArgY5_12 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 4))) & (MR_Integer) 7);

    succeeded = hlds__hlds_goal____Unify____hlds_goal_0_0(ArgX1_3, ArgY1_4);
    if (succeeded)
    {
      TypeInfo_16_16 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[6]);
      succeeded = mercury__builtin__unify_2_p_0(TypeInfo_16_16, ((MR_Box) (ArgX2_5)), ((MR_Box) (ArgY2_6)));
      if (succeeded)
      {
        succeeded = hlds__instmap____Unify____instmap_0_0(ArgX3_7, ArgY3_8);
        if (succeeded)
        {
          succeeded = parse_tree__var_table____Unify____var_table_0_0(ArgX4_9, ArgY4_10);
          if (succeeded)
            succeeded = (ArgX5_11 == ArgY5_12);
        }
      }
    }
  }
  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____decl_section_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer Cast_HeadVar1_4 = (MR_Integer) (HeadVar__2_2);
  MR_Integer Cast_HeadVar2_5 = (MR_Integer) (HeadVar__3_3);

  succeeded = (Cast_HeadVar1_4 < Cast_HeadVar2_5);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 1;
  else
  {
    succeeded = (Cast_HeadVar1_4 > Cast_HeadVar2_5);
    if (succeeded)
      *HeadVar__1_1 = (MR_Integer) 2;
    else
      *HeadVar__1_1 = (MR_Integer) 0;
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____decl_section_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded = (HeadVar__1_1 == HeadVar__2_2);

  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____cur_user_decl_info_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_12 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_13 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_12 == CastY_13);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  {
    MR_Word ArgX1_4 = ((((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 0))) >> 1)) & (MR_Integer) 1);
    MR_Word ArgY1_5 = ((((MR_Unsigned) ((MR_hl_field(0, HeadVar__3_3, 0))) >> 1)) & (MR_Integer) 1);
    MR_Word ArgX2_7 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 0))) & (MR_Integer) 1);
    MR_Word ArgY2_8 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__3_3, 0))) & (MR_Integer) 1);
    MR_Word ArgX3_10 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 1))));
    MR_Word ArgY3_11 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 1))));
    MR_Word SubResult1_6;
    MR_Integer Var_17 = (MR_Integer) (ArgX1_4);
    MR_Integer Var_18 = (MR_Integer) (ArgY1_5);

    succeeded = (Var_17 < Var_18);
    if (succeeded)
    {
      SubResult1_6 = (MR_Integer) 1;
      succeeded = MR_TRUE;
    }
    else
    {
      succeeded = (Var_17 > Var_18);
      if (succeeded)
      {
        SubResult1_6 = (MR_Integer) 2;
        succeeded = MR_TRUE;
      }
    }
    if (succeeded)
      *HeadVar__1_1 = SubResult1_6;
    else
    {
      MR_Word SubResult2_9;
      MR_Integer Var_19 = (MR_Integer) (ArgX2_7);
      MR_Integer Var_20 = (MR_Integer) (ArgY2_8);

      succeeded = (Var_19 < Var_20);
      if (succeeded)
      {
        SubResult2_9 = (MR_Integer) 1;
        succeeded = MR_TRUE;
      }
      else
      {
        succeeded = (Var_19 > Var_20);
        if (succeeded)
        {
          SubResult2_9 = (MR_Integer) 2;
          succeeded = MR_TRUE;
        }
      }
      if (succeeded)
        *HeadVar__1_1 = SubResult2_9;
      else
        parse_tree__prog_data____Compare____item_seq_num_0_0(HeadVar__1_1, ArgX3_10, ArgY3_11);
    }
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____cur_user_decl_info_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_9 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_10 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_9 == CastY_10);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  {
    MR_Word ArgX1_3 = ((((MR_Unsigned) ((MR_hl_field(0, HeadVar__1_1, 0))) >> 1)) & (MR_Integer) 1);
    MR_Word ArgY1_4 = ((((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 0))) >> 1)) & (MR_Integer) 1);
    MR_Word ArgX2_5 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__1_1, 0))) & (MR_Integer) 1);
    MR_Word ArgY2_6 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 0))) & (MR_Integer) 1);
    MR_Word ArgX3_7 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 1))));
    MR_Word ArgY3_8 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 1))));

    succeeded = (ArgX1_3 == ArgY1_4);
    if (succeeded)
    {
      succeeded = (ArgX2_5 == ArgY2_6);
      if (succeeded)
        succeeded = parse_tree__prog_data____Unify____item_seq_num_0_0(ArgX3_7, ArgY3_8);
    }
  }
  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____can_process_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer Cast_HeadVar1_4 = (MR_Integer) (HeadVar__2_2);
  MR_Integer Cast_HeadVar2_5 = (MR_Integer) (HeadVar__3_3);

  succeeded = (Cast_HeadVar1_4 < Cast_HeadVar2_5);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 1;
  else
  {
    succeeded = (Cast_HeadVar1_4 > Cast_HeadVar2_5);
    if (succeeded)
      *HeadVar__1_1 = (MR_Integer) 2;
    else
      *HeadVar__1_1 = (MR_Integer) 0;
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____can_process_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded = (HeadVar__1_1 == HeadVar__2_2);

  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____call_site_static_data_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_50 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_51 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_50 == CastY_51);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
    switch (MR_tag((MR_Word) HeadVar__2_2)) {
      default: /*NOTREACHED*/ MR_assert(0);
      case (MR_Integer) 0:
        switch (MR_tag((MR_Word) HeadVar__3_3)) {
          default: /*NOTREACHED*/ MR_assert(0);
          case (MR_Integer) 0:
            {
              MR_Word ArgX1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
              MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 0))));
              MR_String ArgX2_7 = ((MR_String) ((MR_hl_field(0, HeadVar__2_2, 1))));
              MR_String ArgY2_8 = ((MR_String) ((MR_hl_field(0, HeadVar__3_3, 1))));
              MR_String ArgX3_10 = ((MR_String) ((MR_hl_field(0, HeadVar__2_2, 2))));
              MR_String ArgY3_11 = ((MR_String) ((MR_hl_field(0, HeadVar__3_3, 2))));
              MR_Integer ArgX4_13 = ((MR_Integer) ((MR_hl_field(0, HeadVar__2_2, 3))));
              MR_Integer ArgY4_14 = ((MR_Integer) ((MR_hl_field(0, HeadVar__3_3, 3))));
              MR_Word ArgX5_16 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 4))));
              MR_Word ArgY5_17 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 4))));
              MR_Word SubResult1_6;

              hlds__hlds_rtti____Compare____rtti_proc_label_0_0(&SubResult1_6, ArgX1_4, ArgY1_5);
              succeeded = (SubResult1_6 != (MR_Integer) 0);
              if (succeeded)
                *HeadVar__1_1 = SubResult1_6;
              else
              {
                MR_Word SubResult2_9;

                mercury__private_builtin__builtin_compare_string_3_p_0(&SubResult2_9, ArgX2_7, ArgY2_8);
                succeeded = (SubResult2_9 != (MR_Integer) 0);
                if (succeeded)
                  *HeadVar__1_1 = SubResult2_9;
                else
                {
                  MR_Word SubResult3_12;

                  mercury__private_builtin__builtin_compare_string_3_p_0(&SubResult3_12, ArgX3_10, ArgY3_11);
                  succeeded = (SubResult3_12 != (MR_Integer) 0);
                  if (succeeded)
                    *HeadVar__1_1 = SubResult3_12;
                  else
                  {
                    MR_Word SubResult4_15;

                    succeeded = (ArgX4_13 < ArgY4_14);
                    if (succeeded)
                    {
                      SubResult4_15 = (MR_Integer) 1;
                      succeeded = MR_TRUE;
                    }
                    else
                    {
                      succeeded = (ArgX4_13 > ArgY4_14);
                      if (succeeded)
                      {
                        SubResult4_15 = (MR_Integer) 2;
                        succeeded = MR_TRUE;
                      }
                    }
                    if (succeeded)
                      *HeadVar__1_1 = SubResult4_15;
                    else
                      mdbcomp__goal_path____Compare____forward_goal_path_0_0(HeadVar__1_1, ArgX5_16, ArgY5_17);
                  }
                }
              }
            }
            break;
          case (MR_Integer) 1:
          case (MR_Integer) 2:
          case (MR_Integer) 3:
            *HeadVar__1_1 = (MR_Integer) 1;
            break;
        }
        break;
      case (MR_Integer) 1:
        switch (MR_tag((MR_Word) HeadVar__3_3)) {
          default: /*NOTREACHED*/ MR_assert(0);
          case (MR_Integer) 0:
            *HeadVar__1_1 = (MR_Integer) 2;
            break;
          case (MR_Integer) 1:
            {
              MR_String ArgX1_18 = ((MR_String) ((MR_hl_field(1, HeadVar__2_2, 0))));
              MR_String ArgY1_19 = ((MR_String) ((MR_hl_field(1, HeadVar__3_3, 0))));
              MR_Integer ArgX2_21 = ((MR_Integer) ((MR_hl_field(1, HeadVar__2_2, 1))));
              MR_Integer ArgY2_22 = ((MR_Integer) ((MR_hl_field(1, HeadVar__3_3, 1))));
              MR_Word ArgX3_24 = ((MR_Word) ((MR_hl_field(1, HeadVar__2_2, 2))));
              MR_Word ArgY3_25 = ((MR_Word) ((MR_hl_field(1, HeadVar__3_3, 2))));
              MR_Word SubResult1_20;

              mercury__private_builtin__builtin_compare_string_3_p_0(&SubResult1_20, ArgX1_18, ArgY1_19);
              succeeded = (SubResult1_20 != (MR_Integer) 0);
              if (succeeded)
                *HeadVar__1_1 = SubResult1_20;
              else
              {
                MR_Word SubResult2_23;

                succeeded = (ArgX2_21 < ArgY2_22);
                if (succeeded)
                {
                  SubResult2_23 = (MR_Integer) 1;
                  succeeded = MR_TRUE;
                }
                else
                {
                  succeeded = (ArgX2_21 > ArgY2_22);
                  if (succeeded)
                  {
                    SubResult2_23 = (MR_Integer) 2;
                    succeeded = MR_TRUE;
                  }
                }
                if (succeeded)
                  *HeadVar__1_1 = SubResult2_23;
                else
                  mdbcomp__goal_path____Compare____forward_goal_path_0_0(HeadVar__1_1, ArgX3_24, ArgY3_25);
              }
            }
            break;
          case (MR_Integer) 2:
          case (MR_Integer) 3:
            *HeadVar__1_1 = (MR_Integer) 1;
            break;
        }
        break;
      case (MR_Integer) 2:
        switch (MR_tag((MR_Word) HeadVar__3_3)) {
          default: /*NOTREACHED*/ MR_assert(0);
          case (MR_Integer) 0:
          case (MR_Integer) 1:
            *HeadVar__1_1 = (MR_Integer) 2;
            break;
          case (MR_Integer) 2:
            {
              MR_String ArgX1_26 = ((MR_String) ((MR_hl_field(2, HeadVar__2_2, 0))));
              MR_String ArgY1_27 = ((MR_String) ((MR_hl_field(2, HeadVar__3_3, 0))));
              MR_Integer ArgX2_29 = ((MR_Integer) ((MR_hl_field(2, HeadVar__2_2, 1))));
              MR_Integer ArgY2_30 = ((MR_Integer) ((MR_hl_field(2, HeadVar__3_3, 1))));
              MR_Word ArgX3_32 = ((MR_Word) ((MR_hl_field(2, HeadVar__2_2, 2))));
              MR_Word ArgY3_33 = ((MR_Word) ((MR_hl_field(2, HeadVar__3_3, 2))));
              MR_Word SubResult1_28;

              mercury__private_builtin__builtin_compare_string_3_p_0(&SubResult1_28, ArgX1_26, ArgY1_27);
              succeeded = (SubResult1_28 != (MR_Integer) 0);
              if (succeeded)
                *HeadVar__1_1 = SubResult1_28;
              else
              {
                MR_Word SubResult2_31;

                succeeded = (ArgX2_29 < ArgY2_30);
                if (succeeded)
                {
                  SubResult2_31 = (MR_Integer) 1;
                  succeeded = MR_TRUE;
                }
                else
                {
                  succeeded = (ArgX2_29 > ArgY2_30);
                  if (succeeded)
                  {
                    SubResult2_31 = (MR_Integer) 2;
                    succeeded = MR_TRUE;
                  }
                }
                if (succeeded)
                  *HeadVar__1_1 = SubResult2_31;
                else
                  mdbcomp__goal_path____Compare____forward_goal_path_0_0(HeadVar__1_1, ArgX3_32, ArgY3_33);
              }
            }
            break;
          case (MR_Integer) 3:
            *HeadVar__1_1 = (MR_Integer) 1;
            break;
        }
        break;
      case (MR_Integer) 3:
        switch (((MR_Integer) ((MR_hl_field(3, HeadVar__2_2, 0))))) {
          default: /*NOTREACHED*/ MR_assert(0);
          case (MR_Integer) 0:
            switch (MR_tag((MR_Word) HeadVar__3_3)) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 0:
              case (MR_Integer) 1:
              case (MR_Integer) 2:
                *HeadVar__1_1 = (MR_Integer) 2;
                break;
              case (MR_Integer) 3:
                switch (((MR_Integer) ((MR_hl_field(3, HeadVar__3_3, 0))))) {
                  default: /*NOTREACHED*/ MR_assert(0);
                  case (MR_Integer) 0:
                    {
                      MR_String ArgX1_34 = ((MR_String) ((MR_hl_field(3, HeadVar__2_2, 1))));
                      MR_String ArgY1_35 = ((MR_String) ((MR_hl_field(3, HeadVar__3_3, 1))));
                      MR_Integer ArgX2_37 = ((MR_Integer) ((MR_hl_field(3, HeadVar__2_2, 2))));
                      MR_Integer ArgY2_38 = ((MR_Integer) ((MR_hl_field(3, HeadVar__3_3, 2))));
                      MR_Word ArgX3_40 = ((MR_Word) ((MR_hl_field(3, HeadVar__2_2, 3))));
                      MR_Word ArgY3_41 = ((MR_Word) ((MR_hl_field(3, HeadVar__3_3, 3))));
                      MR_Word SubResult1_36;

                      mercury__private_builtin__builtin_compare_string_3_p_0(&SubResult1_36, ArgX1_34, ArgY1_35);
                      succeeded = (SubResult1_36 != (MR_Integer) 0);
                      if (succeeded)
                        *HeadVar__1_1 = SubResult1_36;
                      else
                      {
                        MR_Word SubResult2_39;

                        succeeded = (ArgX2_37 < ArgY2_38);
                        if (succeeded)
                        {
                          SubResult2_39 = (MR_Integer) 1;
                          succeeded = MR_TRUE;
                        }
                        else
                        {
                          succeeded = (ArgX2_37 > ArgY2_38);
                          if (succeeded)
                          {
                            SubResult2_39 = (MR_Integer) 2;
                            succeeded = MR_TRUE;
                          }
                        }
                        if (succeeded)
                          *HeadVar__1_1 = SubResult2_39;
                        else
                          mdbcomp__goal_path____Compare____forward_goal_path_0_0(HeadVar__1_1, ArgX3_40, ArgY3_41);
                      }
                    }
                    break;
                  case (MR_Integer) 1:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                }
                break;
            }
            break;
          case (MR_Integer) 1:
            switch (MR_tag((MR_Word) HeadVar__3_3)) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 0:
              case (MR_Integer) 1:
              case (MR_Integer) 2:
                *HeadVar__1_1 = (MR_Integer) 2;
                break;
              case (MR_Integer) 3:
                switch (((MR_Integer) ((MR_hl_field(3, HeadVar__3_3, 0))))) {
                  default: /*NOTREACHED*/ MR_assert(0);
                  case (MR_Integer) 0:
                    *HeadVar__1_1 = (MR_Integer) 2;
                    break;
                  case (MR_Integer) 1:
                    {
                      MR_String ArgX1_42 = ((MR_String) ((MR_hl_field(3, HeadVar__2_2, 1))));
                      MR_String ArgY1_43 = ((MR_String) ((MR_hl_field(3, HeadVar__3_3, 1))));
                      MR_Integer ArgX2_45 = ((MR_Integer) ((MR_hl_field(3, HeadVar__2_2, 2))));
                      MR_Integer ArgY2_46 = ((MR_Integer) ((MR_hl_field(3, HeadVar__3_3, 2))));
                      MR_Word ArgX3_48 = ((MR_Word) ((MR_hl_field(3, HeadVar__2_2, 3))));
                      MR_Word ArgY3_49 = ((MR_Word) ((MR_hl_field(3, HeadVar__3_3, 3))));
                      MR_Word SubResult1_44;

                      mercury__private_builtin__builtin_compare_string_3_p_0(&SubResult1_44, ArgX1_42, ArgY1_43);
                      succeeded = (SubResult1_44 != (MR_Integer) 0);
                      if (succeeded)
                        *HeadVar__1_1 = SubResult1_44;
                      else
                      {
                        MR_Word SubResult2_47;

                        succeeded = (ArgX2_45 < ArgY2_46);
                        if (succeeded)
                        {
                          SubResult2_47 = (MR_Integer) 1;
                          succeeded = MR_TRUE;
                        }
                        else
                        {
                          succeeded = (ArgX2_45 > ArgY2_46);
                          if (succeeded)
                          {
                            SubResult2_47 = (MR_Integer) 2;
                            succeeded = MR_TRUE;
                          }
                        }
                        if (succeeded)
                          *HeadVar__1_1 = SubResult2_47;
                        else
                          mdbcomp__goal_path____Compare____forward_goal_path_0_0(HeadVar__1_1, ArgX3_48, ArgY3_49);
                      }
                    }
                    break;
                }
                break;
            }
            break;
        }
        break;
    }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____call_site_static_data_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_37 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_38 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_37 == CastY_38);
  if (succeeded)
    succeeded = MR_TRUE;
  else
    switch (MR_tag((MR_Word) HeadVar__1_1)) {
      default: /*NOTREACHED*/ MR_assert(0);
      case (MR_Integer) 0:
        {
          MR_Word ArgX1_3 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 0))));
          MR_Word ArgY1_4;
          MR_String ArgX2_5 = ((MR_String) ((MR_hl_field(0, HeadVar__1_1, 1))));
          MR_String ArgY2_6;
          MR_String ArgX3_7 = ((MR_String) ((MR_hl_field(0, HeadVar__1_1, 2))));
          MR_String ArgY3_8;
          MR_Integer ArgX4_9 = ((MR_Integer) ((MR_hl_field(0, HeadVar__1_1, 3))));
          MR_Integer ArgY4_10;
          MR_Word ArgX5_11 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 4))));
          MR_Word ArgY5_12;

          succeeded = ((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 0);
          if (succeeded)
          {
            ArgY1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
            ArgY2_6 = ((MR_String) ((MR_hl_field(0, HeadVar__2_2, 1))));
            ArgY3_8 = ((MR_String) ((MR_hl_field(0, HeadVar__2_2, 2))));
            ArgY4_10 = ((MR_Integer) ((MR_hl_field(0, HeadVar__2_2, 3))));
            ArgY5_12 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 4))));
            succeeded = hlds__hlds_rtti____Unify____rtti_proc_label_0_0(ArgX1_3, ArgY1_4);
            if (succeeded)
            {
              succeeded = (strcmp(ArgX2_5, ArgY2_6) == 0);
              if (succeeded)
              {
                succeeded = (strcmp(ArgX3_7, ArgY3_8) == 0);
                if (succeeded)
                {
                  succeeded = (ArgX4_9 == ArgY4_10);
                  if (succeeded)
                    succeeded = mdbcomp__goal_path____Unify____forward_goal_path_0_0(ArgX5_11, ArgY5_12);
                }
              }
            }
          }
        }
        break;
      case (MR_Integer) 1:
        {
          MR_String ArgX1_13 = ((MR_String) ((MR_hl_field(1, HeadVar__1_1, 0))));
          MR_String ArgY1_14;
          MR_Integer ArgX2_15 = ((MR_Integer) ((MR_hl_field(1, HeadVar__1_1, 1))));
          MR_Integer ArgY2_16;
          MR_Word ArgX3_17 = ((MR_Word) ((MR_hl_field(1, HeadVar__1_1, 2))));
          MR_Word ArgY3_18;

          succeeded = ((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 1);
          if (succeeded)
          {
            ArgY1_14 = ((MR_String) ((MR_hl_field(1, HeadVar__2_2, 0))));
            ArgY2_16 = ((MR_Integer) ((MR_hl_field(1, HeadVar__2_2, 1))));
            ArgY3_18 = ((MR_Word) ((MR_hl_field(1, HeadVar__2_2, 2))));
            succeeded = (strcmp(ArgX1_13, ArgY1_14) == 0);
            if (succeeded)
            {
              succeeded = (ArgX2_15 == ArgY2_16);
              if (succeeded)
                succeeded = mdbcomp__goal_path____Unify____forward_goal_path_0_0(ArgX3_17, ArgY3_18);
            }
          }
        }
        break;
      case (MR_Integer) 2:
        {
          MR_String ArgX1_19 = ((MR_String) ((MR_hl_field(2, HeadVar__1_1, 0))));
          MR_String ArgY1_20;
          MR_Integer ArgX2_21 = ((MR_Integer) ((MR_hl_field(2, HeadVar__1_1, 1))));
          MR_Integer ArgY2_22;
          MR_Word ArgX3_23 = ((MR_Word) ((MR_hl_field(2, HeadVar__1_1, 2))));
          MR_Word ArgY3_24;

          succeeded = ((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 2);
          if (succeeded)
          {
            ArgY1_20 = ((MR_String) ((MR_hl_field(2, HeadVar__2_2, 0))));
            ArgY2_22 = ((MR_Integer) ((MR_hl_field(2, HeadVar__2_2, 1))));
            ArgY3_24 = ((MR_Word) ((MR_hl_field(2, HeadVar__2_2, 2))));
            succeeded = (strcmp(ArgX1_19, ArgY1_20) == 0);
            if (succeeded)
            {
              succeeded = (ArgX2_21 == ArgY2_22);
              if (succeeded)
                succeeded = mdbcomp__goal_path____Unify____forward_goal_path_0_0(ArgX3_23, ArgY3_24);
            }
          }
        }
        break;
      case (MR_Integer) 3:
        switch (((MR_Integer) ((MR_hl_field(3, HeadVar__1_1, 0))))) {
          default: /*NOTREACHED*/ MR_assert(0);
          case (MR_Integer) 0:
            {
              MR_String ArgX1_25 = ((MR_String) ((MR_hl_field(3, HeadVar__1_1, 1))));
              MR_String ArgY1_26;
              MR_Integer ArgX2_27 = ((MR_Integer) ((MR_hl_field(3, HeadVar__1_1, 2))));
              MR_Integer ArgY2_28;
              MR_Word ArgX3_29 = ((MR_Word) ((MR_hl_field(3, HeadVar__1_1, 3))));
              MR_Word ArgY3_30;

              succeeded = ((((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, HeadVar__2_2, 0)))) == (MR_Integer) 0)));
              if (succeeded)
              {
                ArgY1_26 = ((MR_String) ((MR_hl_field(3, HeadVar__2_2, 1))));
                ArgY2_28 = ((MR_Integer) ((MR_hl_field(3, HeadVar__2_2, 2))));
                ArgY3_30 = ((MR_Word) ((MR_hl_field(3, HeadVar__2_2, 3))));
                succeeded = (strcmp(ArgX1_25, ArgY1_26) == 0);
                if (succeeded)
                {
                  succeeded = (ArgX2_27 == ArgY2_28);
                  if (succeeded)
                    succeeded = mdbcomp__goal_path____Unify____forward_goal_path_0_0(ArgX3_29, ArgY3_30);
                }
              }
            }
            break;
          case (MR_Integer) 1:
            {
              MR_String ArgX1_31 = ((MR_String) ((MR_hl_field(3, HeadVar__1_1, 1))));
              MR_String ArgY1_32;
              MR_Integer ArgX2_33 = ((MR_Integer) ((MR_hl_field(3, HeadVar__1_1, 2))));
              MR_Integer ArgY2_34;
              MR_Word ArgX3_35 = ((MR_Word) ((MR_hl_field(3, HeadVar__1_1, 3))));
              MR_Word ArgY3_36;

              succeeded = ((((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(3, HeadVar__2_2, 0)))) == (MR_Integer) 1)));
              if (succeeded)
              {
                ArgY1_32 = ((MR_String) ((MR_hl_field(3, HeadVar__2_2, 1))));
                ArgY2_34 = ((MR_Integer) ((MR_hl_field(3, HeadVar__2_2, 2))));
                ArgY3_36 = ((MR_Word) ((MR_hl_field(3, HeadVar__2_2, 3))));
                succeeded = (strcmp(ArgX1_31, ArgY1_32) == 0);
                if (succeeded)
                {
                  succeeded = (ArgX2_33 == ArgY2_34);
                  if (succeeded)
                    succeeded = mdbcomp__goal_path____Unify____forward_goal_path_0_0(ArgX3_35, ArgY3_36);
                }
              }
            }
            break;
        }
        break;
    }
  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____call_id_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_11 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_12 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_11 == CastY_12);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  if (((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 1))
    if (((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 1))
    {
      MR_Word ArgX1_6 = ((MR_Word) ((MR_hl_field(1, HeadVar__2_2, 0))));
      MR_Word ArgY1_7 = ((MR_Word) ((MR_hl_field(1, HeadVar__3_3, 0))));
      MR_Word ArgX2_9 = ((MR_Word) ((MR_hl_field(1, HeadVar__2_2, 1))));
      MR_Word ArgY2_10 = ((MR_Word) ((MR_hl_field(1, HeadVar__3_3, 1))));
      MR_Word SubResult1_8;

      parse_tree__var_db____Compare____var_name_source_0_0(&SubResult1_8, ArgX1_6, ArgY1_7);
      succeeded = (SubResult1_8 != (MR_Integer) 0);
      if (succeeded)
        *HeadVar__1_1 = SubResult1_8;
      else
        hlds__hlds_goal____Compare____generic_call_0_0(HeadVar__1_1, ArgX2_9, ArgY2_10);
    }
    else
      *HeadVar__1_1 = (MR_Integer) 2;
  else
  if (((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 1))
    *HeadVar__1_1 = (MR_Integer) 1;
  else
  {
    MR_Word ArgX1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 0))));

    parse_tree__prog_data____Compare____pf_sym_name_arity_0_0(HeadVar__1_1, ArgX1_4, ArgY1_5);
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____call_id_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_9 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_10 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_9 == CastY_10);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  if (((MR_tag((MR_Word) HeadVar__1_1)) == (MR_Integer) 1))
  {
    MR_Word ArgX1_5 = ((MR_Word) ((MR_hl_field(1, HeadVar__1_1, 0))));
    MR_Word ArgY1_6;
    MR_Word ArgX2_7 = ((MR_Word) ((MR_hl_field(1, HeadVar__1_1, 1))));
    MR_Word ArgY2_8;

    succeeded = ((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 1);
    if (succeeded)
    {
      ArgY1_6 = ((MR_Word) ((MR_hl_field(1, HeadVar__2_2, 0))));
      ArgY2_8 = ((MR_Word) ((MR_hl_field(1, HeadVar__2_2, 1))));
      succeeded = parse_tree__var_db____Unify____var_name_source_0_0(ArgX1_5, ArgY1_6);
      if (succeeded)
        succeeded = hlds__hlds_goal____Unify____generic_call_0_0(ArgX2_7, ArgY2_8);
    }
  }
  else
  {
    MR_Word ArgX1_3 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 0))));
    MR_Word ArgY1_4;

    succeeded = ((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 0);
    if (succeeded)
    {
      ArgY1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
      succeeded = parse_tree__prog_data____Unify____pf_sym_name_arity_0_0(ArgX1_3, ArgY1_4);
    }
  }
  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____arg_modes_map_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_Word Cast_HeadVar1_4 = HeadVar__2_2;
  MR_Word Cast_HeadVar2_5 = HeadVar__3_3;

  mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_1[6]), HeadVar__1_1, ((MR_Box) (Cast_HeadVar1_4)), ((MR_Box) (Cast_HeadVar2_5)));
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____arg_modes_map_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Word Cast_HeadVar1_3 = HeadVar__1_1;
  MR_Word Cast_HeadVar2_4 = HeadVar__2_2;

  succeeded = mercury__builtin__unify_2_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_1[6]), ((MR_Box) (Cast_HeadVar1_3)), ((MR_Box) (Cast_HeadVar2_4)));
  return succeeded;
}

void MR_CALL 
hlds__hlds_pred____Compare____arg_info_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_9 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_10 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_9 == CastY_10);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  {
    MR_Word ArgX1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 0))));
    MR_Word ArgX2_7 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 1))) & (MR_Integer) 3);
    MR_Word ArgY2_8 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__3_3, 1))) & (MR_Integer) 3);
    MR_Word SubResult1_6;

    hlds__hlds_pred____Compare____arg_loc_0_0(&SubResult1_6, ArgX1_4, ArgY1_5);
    succeeded = (SubResult1_6 != (MR_Integer) 0);
    if (succeeded)
      *HeadVar__1_1 = SubResult1_6;
    else
    {
      MR_Integer Var_13 = (MR_Integer) (ArgX2_7);
      MR_Integer Var_14 = (MR_Integer) (ArgY2_8);

      succeeded = (Var_13 < Var_14);
      if (succeeded)
        *HeadVar__1_1 = (MR_Integer) 1;
      else
      {
        succeeded = (Var_13 > Var_14);
        if (succeeded)
          *HeadVar__1_1 = (MR_Integer) 2;
        else
          *HeadVar__1_1 = (MR_Integer) 0;
      }
    }
  }
}

void MR_CALL 
hlds__hlds_pred____Compare____arg_loc_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  MR_bool succeeded;
  MR_Integer CastX_9 = (MR_Integer) (HeadVar__2_2);
  MR_Integer CastY_10 = (MR_Integer) (HeadVar__3_3);

  succeeded = (CastX_9 == CastY_10);
  if (succeeded)
    *HeadVar__1_1 = (MR_Integer) 0;
  else
  {
    MR_Word ArgX1_4 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 0))) & (MR_Integer) 1);
    MR_Word ArgY1_5 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__3_3, 0))) & (MR_Integer) 1);
    MR_Integer ArgX2_7 = ((MR_Integer) ((MR_hl_field(0, HeadVar__2_2, 1))));
    MR_Integer ArgY2_8 = ((MR_Integer) ((MR_hl_field(0, HeadVar__3_3, 1))));
    MR_Word SubResult1_6;
    MR_Integer Var_13 = (MR_Integer) (ArgX1_4);
    MR_Integer Var_14 = (MR_Integer) (ArgY1_5);

    succeeded = (Var_13 < Var_14);
    if (succeeded)
    {
      SubResult1_6 = (MR_Integer) 1;
      succeeded = MR_TRUE;
    }
    else
    {
      succeeded = (Var_13 > Var_14);
      if (succeeded)
      {
        SubResult1_6 = (MR_Integer) 2;
        succeeded = MR_TRUE;
      }
    }
    if (succeeded)
      *HeadVar__1_1 = SubResult1_6;
    else
    {
      succeeded = (ArgX2_7 < ArgY2_8);
      if (succeeded)
        *HeadVar__1_1 = (MR_Integer) 1;
      else
      {
        succeeded = (ArgX2_7 > ArgY2_8);
        if (succeeded)
          *HeadVar__1_1 = (MR_Integer) 2;
        else
          *HeadVar__1_1 = (MR_Integer) 0;
      }
    }
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____arg_info_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_7 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_8 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_7 == CastY_8);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  {
    MR_Word ArgX1_3 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 0))));
    MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__2_2, 0))));
    MR_Word ArgX2_5 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__1_1, 1))) & (MR_Integer) 3);
    MR_Word ArgY2_6 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 1))) & (MR_Integer) 3);

    succeeded = hlds__hlds_pred____Unify____arg_loc_0_0(ArgX1_3, ArgY1_4);
    if (succeeded)
      succeeded = (ArgX2_5 == ArgY2_6);
  }
  return succeeded;
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____arg_loc_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_7 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_8 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_7 == CastY_8);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  {
    MR_Word ArgX1_3 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__1_1, 0))) & (MR_Integer) 1);
    MR_Word ArgY1_4 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 0))) & (MR_Integer) 1);
    MR_Integer ArgX2_5 = ((MR_Integer) ((MR_hl_field(0, HeadVar__1_1, 1))));
    MR_Integer ArgY2_6 = ((MR_Integer) ((MR_hl_field(0, HeadVar__2_2, 1))));

    succeeded = (ArgX1_3 == ArgY1_4);
    if (succeeded)
      succeeded = (ArgX2_5 == ArgY2_6);
  }
  return succeeded;
}

MR_bool MR_CALL 
hlds__hlds_pred__pred_info_is_promise_2_p_0(
  MR_Word PredInfo_3,
  MR_Word * PromiseType_4)
{
  MR_bool succeeded;
  MR_Word Var_5;
  MR_Word Var_6 = ((MR_Word) ((MR_hl_field(0, PredInfo_3, 14))));

  Var_5 = ((MR_Word) ((MR_hl_field(0, Var_6, 2))));
  succeeded = ((MR_tag((MR_Word) Var_5)) == (MR_Integer) 1);
  if (succeeded)
    *PromiseType_4 = ((MR_Unsigned) ((MR_hl_field(1, Var_5, 0))) & (MR_Integer) 3);
  return succeeded;
}

MR_Word MR_CALL 
hlds__hlds_pred__builtin_state_4_f_0(
  MR_Word ModuleInfo_6,
  MR_Word CallerPredId_7,
  MR_Word PredId_8,
  MR_Integer _ProcId_9)
{
  MR_Word BuiltinState_10;

  BuiltinState_10 = hlds__hlds_pred__f_85_110_117_115_101_100_65_114_103_115_95_95_102_117_110_99_95_95_98_117_105_108_116_105_110_95_115_116_97_116_101_95_95_91_52_93_95_48_4_f_0(ModuleInfo_6, CallerPredId_7, PredId_8);
  return BuiltinState_10;
}

MR_Word MR_CALL 
hlds__hlds_pred__f_85_110_117_115_101_100_65_114_103_115_95_95_102_117_110_99_95_95_98_117_105_108_116_105_110_95_115_116_97_116_101_95_95_91_52_93_95_48_4_f_0(
  MR_Word ModuleInfo_6,
  MR_Word CallerPredId_7,
  MR_Word PredId_8)
{
  MR_bool succeeded;
  MR_Word BuiltinState_10;
  MR_Word PredInfo_11;
  MR_Word ModuleName_12;
  MR_String PredName_13;
  MR_Word PredFormArity_14;

  hlds__hlds_module__module_info_pred_info_3_p_0(ModuleInfo_6, PredId_8, &PredInfo_11);
  ModuleName_12 = hlds__hlds_pred__pred_info_module_1_f_0(PredInfo_11);
  PredName_13 = hlds__hlds_pred__pred_info_name_1_f_0(PredInfo_11);
  PredFormArity_14 = hlds__hlds_pred__pred_info_pred_form_arity_1_f_0(PredInfo_11);
  succeeded = hlds__hlds_pred__is_inline_builtin_3_p_0(ModuleName_12, PredName_13, PredFormArity_14);
  if (succeeded)
  {
    {
      MR_Word Globals_15;
      MR_Word OptTuple_16;
      MR_Word Var_17;

      hlds__hlds_module__module_info_get_globals_2_p_0(ModuleInfo_6, &Globals_15);
      libs__globals__get_opt_tuple_2_p_0(Globals_15, &OptTuple_16);
      Var_17 = ((((MR_Unsigned) ((MR_hl_field(0, OptTuple_16, 0))) >> 31)) & (MR_Integer) 1);
      succeeded = (Var_17 == (MR_Integer) 0);
      if (succeeded)
      {
        {
          MR_Word Var_18 = ((((MR_Unsigned) ((MR_hl_field(0, OptTuple_16, 0))) >> 29)) & (MR_Integer) 1);

          succeeded = (Var_18 == (MR_Integer) 0);
        }
        if (!(succeeded))
        {
          MR_Word Var_267;

          succeeded = (strcmp(PredName_13, (MR_String) "store_at_ref_impure") == 0);
          if (succeeded)
          {
            Var_267 = mdbcomp__builtin_modules__mercury_private_builtin_module_0_f_0();
            succeeded = mdbcomp__sym_name____Unify____sym_name_0_0(ModuleName_12, Var_267);
          }
        }
      }
    }
    if (!(succeeded))
      succeeded = hlds__hlds_pred____Unify____pred_id_0_0(CallerPredId_7, PredId_8);
  }
  if (succeeded)
    BuiltinState_10 = (MR_Integer) 0;
  else
    BuiltinState_10 = (MR_Integer) 1;
  return BuiltinState_10;
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____pred_id_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_5 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_6 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_5 == CastY_6);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  {
    MR_Integer ArgX1_3 = (MR_Integer) (HeadVar__1_1);
    MR_Integer ArgY1_4 = (MR_Integer) (HeadVar__2_2);

    succeeded = (ArgX1_3 == ArgY1_4);
  }
  return succeeded;
}

static MR_bool MR_CALL 
hlds__hlds_pred__is_inline_builtin_3_p_0(
  MR_Word ModuleName_4,
  MR_String PredName_5,
  MR_Word PredFormArity_6)
{
  MR_bool succeeded;
  MR_Integer Arity_7 = (MR_Integer) (PredFormArity_6);

  succeeded = (Arity_7 <= (MR_Integer) 3);
  if (succeeded)
    succeeded = backend_libs__builtin_ops__test_if_builtin_3_p_0(ModuleName_4, PredName_5, Arity_7);
  return succeeded;
}

MR_bool MR_CALL 
hlds__hlds_pred__pred_info_is_builtin_1_p_0(
  MR_Word PredInfo_2)
{
  MR_bool succeeded;
  MR_Word ModuleName_3 = ((MR_Word) ((MR_hl_field(0, PredInfo_2, 0))));
  MR_String PredName_4 = ((MR_String) ((MR_hl_field(0, PredInfo_2, 2))));
  MR_Word PredFormArity_5 = ((MR_Word) ((MR_hl_field(0, PredInfo_2, 3))));
  MR_Integer Arity_48 = (MR_Integer) (PredFormArity_5);

  succeeded = (Arity_48 <= (MR_Integer) 3);
  if (succeeded)
    succeeded = backend_libs__builtin_ops__test_if_builtin_3_p_0(ModuleName_3, PredName_4, Arity_48);
  return succeeded;
}

MR_bool MR_CALL 
hlds__hlds_pred__is_unify_index_or_compare_pred_1_p_0(
  MR_Word PredInfo_2)
{
  MR_bool succeeded;
  MR_Word Origin_3 = ((MR_Word) ((MR_hl_field(0, PredInfo_2, 4))));
  MR_Word Var_6;

  succeeded = ((MR_tag((MR_Word) Origin_3)) == (MR_Integer) 1);
  if (succeeded)
  {
    Var_6 = ((MR_Word) ((MR_hl_field(1, Origin_3, 0))));
    succeeded = ((MR_tag((MR_Word) Var_6)) == (MR_Integer) 0);
  }
  return succeeded;
}

MR_bool MR_CALL 
hlds__hlds_pred__is_unify_pred_1_p_0(
  MR_Word PredInfo_2)
{
  MR_bool succeeded;
  MR_Word Origin_3 = ((MR_Word) ((MR_hl_field(0, PredInfo_2, 4))));
  MR_Word Var_5;
  MR_Word Var_6;

  succeeded = ((MR_tag((MR_Word) Origin_3)) == (MR_Integer) 1);
  if (succeeded)
  {
    Var_5 = ((MR_Word) ((MR_hl_field(1, Origin_3, 0))));
    succeeded = ((MR_tag((MR_Word) Var_5)) == (MR_Integer) 0);
    if (succeeded)
    {
      Var_6 = ((MR_Unsigned) ((MR_hl_field(0, Var_5, 0))) & (MR_Integer) 3);
      succeeded = (Var_6 == (MR_Integer) 0);
    }
  }
  return succeeded;
}

MR_bool MR_CALL 
hlds__hlds_pred__pred_info_is_field_access_function_5_p_0(
  MR_Word ModuleInfo_6,
  MR_Word PredInfo_7,
  MR_Word * Accesstype_8,
  MR_Word * FieldName_9,
  MR_Word * OoMFieldDefns_10)
{
  MR_bool succeeded;
  MR_Word Module_11 = ((MR_Word) ((MR_hl_field(0, PredInfo_7, 0))));
  MR_String Name_12 = ((MR_String) ((MR_hl_field(0, PredInfo_7, 2))));
  MR_Word PredFormArity_13 = ((MR_Word) ((MR_hl_field(0, PredInfo_7, 3))));
  MR_Integer FuncArityInt_14;
  MR_Word Var_15 = ((MR_Unsigned) ((MR_hl_field(0, PredInfo_7, 1))) & (MR_Integer) 1);
  MR_Word Var_16;
  MR_Word Var_17;
  MR_Word Var_18;
  MR_Integer Var_19;

  succeeded = (Var_15 == (MR_Integer) 1);
  if (succeeded)
  {
    Var_16 = (MR_Integer) 1;
    parse_tree__prog_util__user_arity_pred_form_arity_3_p_1(Var_16, &Var_17, PredFormArity_13);
    FuncArityInt_14 = (MR_Integer) (Var_17);
    {
      Var_18 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
      MR_hl_field(1, Var_18, 0) = ((MR_Box) (Module_11));
      MR_hl_field(1, Var_18, 1) = ((MR_Box) (Name_12));
    }
    succeeded = hlds__hlds_pred__is_field_access_function_name_6_p_0(ModuleInfo_6, Var_18, &Var_19, Accesstype_8, FieldName_9, OoMFieldDefns_10);
    if (succeeded)
      succeeded = (FuncArityInt_14 == Var_19);
  }
  return succeeded;
}

MR_bool MR_CALL 
hlds__hlds_pred__is_field_access_function_name_6_p_0(
  MR_Word ModuleInfo_7,
  MR_Word FuncName_8,
  MR_Integer * Arity_9,
  MR_Word * AccessType_10,
  MR_Word * FieldName_11,
  MR_Word * OoMFieldDefns_12)
{
  MR_bool succeeded;
  MR_Word CtorFieldTable_14;
  MR_Word FieldName0_13;
  MR_Box conv0_OoMFieldDefns_12;

  succeeded = mdbcomp__sym_name__remove_sym_name_suffix_3_p_0(FuncName_8, (MR_String) " :=", &FieldName0_13);
  if (succeeded)
  {
    *Arity_9 = (MR_Integer) 2;
    *AccessType_10 = (MR_Integer) 1;
    *FieldName_11 = FieldName0_13;
  }
  else
  {
    *Arity_9 = (MR_Integer) 1;
    *AccessType_10 = (MR_Integer) 0;
    *FieldName_11 = FuncName_8;
  }
  hlds__hlds_module__module_info_get_ctor_field_table_2_p_0(ModuleInfo_7, &CtorFieldTable_14);
  succeeded = mercury__map__search_3_p_0((MR_Word) (&mdbcomp__sym_name__mdbcomp__sym_name__type_ctor_info_sym_name_0), (MR_Word) (&hlds__hlds_pred_scalar_common_2[5]), CtorFieldTable_14, ((MR_Box) (*FieldName_11)), &conv0_OoMFieldDefns_12);
  if (succeeded)
  {
    *OoMFieldDefns_12 = ((MR_Word) (conv0_OoMFieldDefns_12));
    succeeded = MR_TRUE;
  }
  return succeeded;
}

void MR_CALL 
hlds__hlds_pred__construct_field_access_function_name_3_p_0(
  MR_Word HeadVar__1_1,
  MR_Word FieldName_2,
  MR_Word * HeadVar__3_3)
{
  switch (HeadVar__1_1) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 0:
      *HeadVar__3_3 = FieldName_2;
      break;
    case (MR_Integer) 1:
      mdbcomp__sym_name__add_sym_name_suffix_3_p_0(FieldName_2, (MR_String) " :=", HeadVar__3_3);
      break;
  }
}

void MR_CALL 
hlds__hlds_pred__body_should_use_typeinfo_liveness_3_p_0(
  MR_Word PredInfo_4,
  MR_Word Globals_5,
  MR_Word * BodyTypeInfoLiveness_6)
{
  MR_bool succeeded;
  MR_Word PredModule_7 = ((MR_Word) ((MR_hl_field(0, PredInfo_4, 0))));
  MR_String PredName_8 = ((MR_String) ((MR_hl_field(0, PredInfo_4, 2))));
  MR_Integer PredFormArityInt_9;
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, PredInfo_4, 3))));

  PredFormArityInt_9 = (MR_Integer) (Var_13);
  succeeded = mdbcomp__program_representation__no_type_info_builtin_3_p_0(PredModule_7, PredName_8, PredFormArityInt_9);
  if (succeeded)
    *BodyTypeInfoLiveness_6 = (MR_Integer) 0;
  else
    libs__globals__lookup_bool_option_3_p_0(Globals_5, (MR_Integer) 759, BodyTypeInfoLiveness_6);
}

void MR_CALL 
hlds__hlds_pred__proc_interface_should_use_typeinfo_liveness_4_p_0(
  MR_Word PredInfo_5,
  MR_Integer ProcId_6,
  MR_Word Globals_7,
  MR_Word * InterfaceTypeInfoLiveness_8)
{
  MR_bool succeeded;
  MR_Word PredModule_9 = ((MR_Word) ((MR_hl_field(0, PredInfo_5, 0))));
  MR_String PredName_10 = ((MR_String) ((MR_hl_field(0, PredInfo_5, 2))));
  MR_Integer PredFormArityInt_11;
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, PredInfo_5, 3))));

  PredFormArityInt_11 = (MR_Integer) (Var_21);
  succeeded = mdbcomp__program_representation__no_type_info_builtin_3_p_0(PredModule_9, PredName_10, PredFormArityInt_11);
  if (succeeded)
    *InterfaceTypeInfoLiveness_8 = (MR_Integer) 0;
  else
  {
    MR_Word Status_12 = ((MR_Word) ((MR_hl_field(0, PredInfo_5, 5))));
    MR_Word ProcTable_13 = ((MR_Word) ((MR_hl_field(0, PredInfo_5, 13))));
    MR_Word ProcInfo_14;
    MR_Word IsAddressTaken_15;
    MR_Box conv0_ProcInfo_14;

    mercury__map__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_108_111_111_107_117_112_95_95_91_75_32_61_32_105_110_116_93_95_48_95_49_3_p_0((MR_Word) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_info_0), ProcTable_13, ProcId_6, &conv0_ProcInfo_14);
    ProcInfo_14 = ((MR_Word) (conv0_ProcInfo_14));
    hlds__hlds_pred__proc_info_get_is_address_taken_2_p_0(ProcInfo_14, &IsAddressTaken_15);
    succeeded = (IsAddressTaken_15 == (MR_Integer) 0);
    if (!(succeeded))
    {
      {
        MR_Word Var_89 = (MR_Word) (Status_12);

        succeeded = (Var_89 != (MR_Word) ((MR_Unsigned) 32U));
      }
      if (!(succeeded))
      {
        succeeded = libs__globals__lookup_bool_option_3_p_1(Globals_7, (MR_Integer) 83, (MR_Integer) 1);
        if (!(succeeded))
        {
          succeeded = libs__globals__lookup_bool_option_3_p_1(Globals_7, (MR_Integer) 84, (MR_Integer) 1);
          if (!(succeeded))
          {
            MR_Word Var_95;

            libs__globals__lookup_bool_option_3_p_0(Globals_7, (MR_Integer) 759, &Var_95);
            succeeded = ((MR_Integer) 1 == Var_95);
          }
        }
      }
    }
    if (succeeded)
      *InterfaceTypeInfoLiveness_8 = (MR_Integer) 1;
    else
      *InterfaceTypeInfoLiveness_8 = (MR_Integer) 0;
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_reset_imported_structure_reuse_2_p_0(
  MR_Word STATE_VARIABLE_ProcInfo_0_4,
  MR_Word * STATE_VARIABLE_ProcInfo_5)
{
  MR_Word Var_8 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_4, 11))));
  MR_Word Var_9;
  MR_Word Var_10 = ((MR_Word) ((MR_hl_field(0, Var_8, 32))));
  MR_Word Var_11;
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_4, 0))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_4, 1))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_4, 2))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_4, 3))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_4, 4))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_4, 5))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_4, 6))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_4, 7))));
  MR_Word Var_20 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_4, 8))));
  MR_Word Var_21 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_4, 9))) & (MR_Integer) 7);
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_4, 10))));
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, Var_8, 0))));
  MR_Word Var_24 = ((MR_Word) ((MR_hl_field(0, Var_8, 1))));
  MR_Word Var_25 = ((MR_Unsigned) ((MR_hl_field(0, Var_8, 2))) & (MR_Integer) 1);
  MR_Word Var_26 = ((MR_Word) ((MR_hl_field(0, Var_8, 3))));
  MR_Word Var_27 = ((MR_Unsigned) ((MR_hl_field(0, Var_8, 4))) & (MR_Integer) 3);
  MR_Word Var_28 = ((MR_Word) ((MR_hl_field(0, Var_8, 5))));
  MR_Word Var_29 = ((MR_Word) ((MR_hl_field(0, Var_8, 6))));
  MR_Word Var_30 = ((MR_Word) ((MR_hl_field(0, Var_8, 7))));
  MR_Word Var_31 = ((MR_Word) ((MR_hl_field(0, Var_8, 8))));
  MR_Word Var_32 = ((MR_Word) ((MR_hl_field(0, Var_8, 9))));
  MR_Word Var_37 = ((MR_Word) ((MR_hl_field(0, Var_8, 11))));
  MR_Word Var_38 = ((MR_Word) ((MR_hl_field(0, Var_8, 12))));
  MR_Word Var_39 = ((MR_Word) ((MR_hl_field(0, Var_8, 13))));
  MR_Word Var_40 = ((MR_Word) ((MR_hl_field(0, Var_8, 14))));
  MR_Word Var_41 = ((MR_Word) ((MR_hl_field(0, Var_8, 15))));
  MR_Word Var_42 = ((MR_Word) ((MR_hl_field(0, Var_8, 16))));
  MR_Word Var_43 = ((MR_Word) ((MR_hl_field(0, Var_8, 17))));
  MR_Word Var_44 = ((MR_Word) ((MR_hl_field(0, Var_8, 18))));
  MR_Word Var_45 = ((MR_Unsigned) ((MR_hl_field(0, Var_8, 19))) & (MR_Integer) 1);
  MR_Word Var_46 = ((MR_Word) ((MR_hl_field(0, Var_8, 20))));
  MR_Word Var_47 = ((MR_Word) ((MR_hl_field(0, Var_8, 21))));
  MR_Word Var_48 = ((MR_Word) ((MR_hl_field(0, Var_8, 22))));
  MR_Word Var_49 = ((MR_Word) ((MR_hl_field(0, Var_8, 23))));
  MR_Word Var_50 = ((MR_Word) ((MR_hl_field(0, Var_8, 24))));
  MR_Word Var_51 = ((MR_Word) ((MR_hl_field(0, Var_8, 25))));
  MR_Word Var_52 = ((MR_Word) ((MR_hl_field(0, Var_8, 26))));
  MR_Word Var_53 = ((MR_Word) ((MR_hl_field(0, Var_8, 27))));
  MR_Word Var_54 = ((MR_Word) ((MR_hl_field(0, Var_8, 28))));
  MR_Word Var_55 = ((MR_Word) ((MR_hl_field(0, Var_8, 29))));
  MR_Word Var_56 = ((MR_Word) ((MR_hl_field(0, Var_8, 30))));
  MR_Word Var_57 = ((MR_Word) ((MR_hl_field(0, Var_8, 31))));
  MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(0, Var_8, 10)));
  MR_Word Var_58 = ((MR_Word) ((MR_hl_field(0, Var_10, 0))));

  {
    Var_11 = (MR_Word) MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_11, 0) = ((MR_Box) (Var_58));
    MR_hl_field(0, Var_11, 1) = ((MR_Box) ((MR_Unsigned) 0U));
  }
  {
    Var_9 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_9, 0) = ((MR_Box) (Var_23));
    MR_hl_field(0, Var_9, 1) = ((MR_Box) (Var_24));
    MR_hl_field(0, Var_9, 2) = (MR_Box) ((MR_Unsigned) (Var_25));
    MR_hl_field(0, Var_9, 3) = ((MR_Box) (Var_26));
    MR_hl_field(0, Var_9, 4) = (MR_Box) ((MR_Unsigned) (Var_27));
    MR_hl_field(0, Var_9, 5) = ((MR_Box) (Var_28));
    MR_hl_field(0, Var_9, 6) = ((MR_Box) (Var_29));
    MR_hl_field(0, Var_9, 7) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_9, 8) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_9, 9) = ((MR_Box) (Var_32));
    MR_hl_field(0, Var_9, 10) = (MR_Box) (packed_word_3);
    MR_hl_field(0, Var_9, 11) = ((MR_Box) (Var_37));
    MR_hl_field(0, Var_9, 12) = ((MR_Box) (Var_38));
    MR_hl_field(0, Var_9, 13) = ((MR_Box) (Var_39));
    MR_hl_field(0, Var_9, 14) = ((MR_Box) (Var_40));
    MR_hl_field(0, Var_9, 15) = ((MR_Box) (Var_41));
    MR_hl_field(0, Var_9, 16) = ((MR_Box) (Var_42));
    MR_hl_field(0, Var_9, 17) = ((MR_Box) (Var_43));
    MR_hl_field(0, Var_9, 18) = ((MR_Box) (Var_44));
    MR_hl_field(0, Var_9, 19) = (MR_Box) ((MR_Unsigned) (Var_45));
    MR_hl_field(0, Var_9, 20) = ((MR_Box) (Var_46));
    MR_hl_field(0, Var_9, 21) = ((MR_Box) (Var_47));
    MR_hl_field(0, Var_9, 22) = ((MR_Box) (Var_48));
    MR_hl_field(0, Var_9, 23) = ((MR_Box) (Var_49));
    MR_hl_field(0, Var_9, 24) = ((MR_Box) (Var_50));
    MR_hl_field(0, Var_9, 25) = ((MR_Box) (Var_51));
    MR_hl_field(0, Var_9, 26) = ((MR_Box) (Var_52));
    MR_hl_field(0, Var_9, 27) = ((MR_Box) (Var_53));
    MR_hl_field(0, Var_9, 28) = ((MR_Box) (Var_54));
    MR_hl_field(0, Var_9, 29) = ((MR_Box) (Var_55));
    MR_hl_field(0, Var_9, 30) = ((MR_Box) (Var_56));
    MR_hl_field(0, Var_9, 31) = ((MR_Box) (Var_57));
    MR_hl_field(0, Var_9, 32) = ((MR_Box) (Var_11));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_ProcInfo_5 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_20));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_21));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_22));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_9));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_imported_structure_reuse_5_p_0(
  MR_Word HeadVars_6,
  MR_Word Types_7,
  MR_Word Reuse_8,
  MR_Word STATE_VARIABLE_ProcInfo_0_12,
  MR_Word * STATE_VARIABLE_ProcInfo_13)
{
  MR_Word ImportedReuse_10;
  MR_Word MaybeImportedReuse_11;
  MR_Word Var_15;
  MR_Word Var_16;
  MR_Word Var_17;
  MR_Word Var_18;
  MR_Word Var_19;
  MR_Word Var_20;
  MR_Word Var_21;
  MR_Word Var_22;
  MR_Word Var_23;
  MR_Word Var_24;
  MR_Word Var_25;
  MR_Word Var_26;
  MR_Word Var_27;
  MR_Word Var_28;
  MR_Word Var_29;
  MR_Word Var_30;
  MR_Word Var_31;
  MR_Word Var_32;
  MR_Word Var_33;
  MR_Word Var_34;
  MR_Word Var_35;
  MR_Word Var_36;
  MR_Word Var_37;
  MR_Word Var_38;
  MR_Word Var_39;
  MR_Word Var_44;
  MR_Word Var_45;
  MR_Word Var_46;
  MR_Word Var_47;
  MR_Word Var_48;
  MR_Word Var_49;
  MR_Word Var_50;
  MR_Word Var_51;
  MR_Word Var_52;
  MR_Word Var_53;
  MR_Word Var_54;
  MR_Word Var_55;
  MR_Word Var_56;
  MR_Word Var_57;
  MR_Word Var_58;
  MR_Word Var_59;
  MR_Word Var_60;
  MR_Word Var_61;
  MR_Word Var_62;
  MR_Word Var_63;
  MR_Word Var_64;
  MR_Unsigned packed_word_3;
  MR_Word Var_65;

  {
    ImportedReuse_10 = (MR_Word) MR_new_object(MR_Word, (3 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, ImportedReuse_10, 0) = ((MR_Box) (HeadVars_6));
    MR_hl_field(0, ImportedReuse_10, 1) = ((MR_Box) (Types_7));
    MR_hl_field(0, ImportedReuse_10, 2) = ((MR_Box) (Reuse_8));
  }
  {
    MaybeImportedReuse_11 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (1 * sizeof(MR_Word)), NULL, NULL));
    MR_hl_field(1, MaybeImportedReuse_11, 0) = ((MR_Box) (ImportedReuse_10));
  }
  Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_12, 0))));
  Var_20 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_12, 1))));
  Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_12, 2))));
  Var_22 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_12, 3))));
  Var_23 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_12, 4))));
  Var_24 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_12, 5))));
  Var_25 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_12, 6))));
  Var_26 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_12, 7))));
  Var_27 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_12, 8))));
  Var_28 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_12, 9))) & (MR_Integer) 7);
  Var_29 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_12, 10))));
  Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_12, 11))));
  Var_30 = ((MR_Word) ((MR_hl_field(0, Var_15, 0))));
  Var_31 = ((MR_Word) ((MR_hl_field(0, Var_15, 1))));
  Var_32 = ((MR_Unsigned) ((MR_hl_field(0, Var_15, 2))) & (MR_Integer) 1);
  Var_33 = ((MR_Word) ((MR_hl_field(0, Var_15, 3))));
  Var_34 = ((MR_Unsigned) ((MR_hl_field(0, Var_15, 4))) & (MR_Integer) 3);
  Var_35 = ((MR_Word) ((MR_hl_field(0, Var_15, 5))));
  Var_36 = ((MR_Word) ((MR_hl_field(0, Var_15, 6))));
  Var_37 = ((MR_Word) ((MR_hl_field(0, Var_15, 7))));
  Var_38 = ((MR_Word) ((MR_hl_field(0, Var_15, 8))));
  Var_39 = ((MR_Word) ((MR_hl_field(0, Var_15, 9))));
  packed_word_3 = (MR_Unsigned) ((MR_hl_field(0, Var_15, 10)));
  Var_44 = ((MR_Word) ((MR_hl_field(0, Var_15, 11))));
  Var_45 = ((MR_Word) ((MR_hl_field(0, Var_15, 12))));
  Var_46 = ((MR_Word) ((MR_hl_field(0, Var_15, 13))));
  Var_47 = ((MR_Word) ((MR_hl_field(0, Var_15, 14))));
  Var_48 = ((MR_Word) ((MR_hl_field(0, Var_15, 15))));
  Var_49 = ((MR_Word) ((MR_hl_field(0, Var_15, 16))));
  Var_50 = ((MR_Word) ((MR_hl_field(0, Var_15, 17))));
  Var_51 = ((MR_Word) ((MR_hl_field(0, Var_15, 18))));
  Var_52 = ((MR_Unsigned) ((MR_hl_field(0, Var_15, 19))) & (MR_Integer) 1);
  Var_53 = ((MR_Word) ((MR_hl_field(0, Var_15, 20))));
  Var_54 = ((MR_Word) ((MR_hl_field(0, Var_15, 21))));
  Var_55 = ((MR_Word) ((MR_hl_field(0, Var_15, 22))));
  Var_56 = ((MR_Word) ((MR_hl_field(0, Var_15, 23))));
  Var_57 = ((MR_Word) ((MR_hl_field(0, Var_15, 24))));
  Var_58 = ((MR_Word) ((MR_hl_field(0, Var_15, 25))));
  Var_59 = ((MR_Word) ((MR_hl_field(0, Var_15, 26))));
  Var_60 = ((MR_Word) ((MR_hl_field(0, Var_15, 27))));
  Var_61 = ((MR_Word) ((MR_hl_field(0, Var_15, 28))));
  Var_62 = ((MR_Word) ((MR_hl_field(0, Var_15, 29))));
  Var_63 = ((MR_Word) ((MR_hl_field(0, Var_15, 30))));
  Var_64 = ((MR_Word) ((MR_hl_field(0, Var_15, 31))));
  Var_17 = ((MR_Word) ((MR_hl_field(0, Var_15, 32))));
  Var_65 = ((MR_Word) ((MR_hl_field(0, Var_17, 0))));
  {
    Var_18 = (MR_Word) MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_18, 0) = ((MR_Box) (Var_65));
    MR_hl_field(0, Var_18, 1) = ((MR_Box) (MaybeImportedReuse_11));
  }
  {
    Var_16 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_16, 0) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_16, 1) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_16, 2) = (MR_Box) ((MR_Unsigned) (Var_32));
    MR_hl_field(0, Var_16, 3) = ((MR_Box) (Var_33));
    MR_hl_field(0, Var_16, 4) = (MR_Box) ((MR_Unsigned) (Var_34));
    MR_hl_field(0, Var_16, 5) = ((MR_Box) (Var_35));
    MR_hl_field(0, Var_16, 6) = ((MR_Box) (Var_36));
    MR_hl_field(0, Var_16, 7) = ((MR_Box) (Var_37));
    MR_hl_field(0, Var_16, 8) = ((MR_Box) (Var_38));
    MR_hl_field(0, Var_16, 9) = ((MR_Box) (Var_39));
    MR_hl_field(0, Var_16, 10) = (MR_Box) (packed_word_3);
    MR_hl_field(0, Var_16, 11) = ((MR_Box) (Var_44));
    MR_hl_field(0, Var_16, 12) = ((MR_Box) (Var_45));
    MR_hl_field(0, Var_16, 13) = ((MR_Box) (Var_46));
    MR_hl_field(0, Var_16, 14) = ((MR_Box) (Var_47));
    MR_hl_field(0, Var_16, 15) = ((MR_Box) (Var_48));
    MR_hl_field(0, Var_16, 16) = ((MR_Box) (Var_49));
    MR_hl_field(0, Var_16, 17) = ((MR_Box) (Var_50));
    MR_hl_field(0, Var_16, 18) = ((MR_Box) (Var_51));
    MR_hl_field(0, Var_16, 19) = (MR_Box) ((MR_Unsigned) (Var_52));
    MR_hl_field(0, Var_16, 20) = ((MR_Box) (Var_53));
    MR_hl_field(0, Var_16, 21) = ((MR_Box) (Var_54));
    MR_hl_field(0, Var_16, 22) = ((MR_Box) (Var_55));
    MR_hl_field(0, Var_16, 23) = ((MR_Box) (Var_56));
    MR_hl_field(0, Var_16, 24) = ((MR_Box) (Var_57));
    MR_hl_field(0, Var_16, 25) = ((MR_Box) (Var_58));
    MR_hl_field(0, Var_16, 26) = ((MR_Box) (Var_59));
    MR_hl_field(0, Var_16, 27) = ((MR_Box) (Var_60));
    MR_hl_field(0, Var_16, 28) = ((MR_Box) (Var_61));
    MR_hl_field(0, Var_16, 29) = ((MR_Box) (Var_62));
    MR_hl_field(0, Var_16, 30) = ((MR_Box) (Var_63));
    MR_hl_field(0, Var_16, 31) = ((MR_Box) (Var_64));
    MR_hl_field(0, Var_16, 32) = ((MR_Box) (Var_18));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_ProcInfo_13 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_20));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_22));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_23));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_24));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_25));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_26));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_27));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_28));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_29));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_16));
  }
}

MR_bool MR_CALL 
hlds__hlds_pred__proc_info_get_imported_structure_reuse_4_p_0(
  MR_Word ProcInfo_5,
  MR_Word * HeadVars_6,
  MR_Word * Types_7,
  MR_Word * Reuse_8)
{
  MR_bool succeeded;
  MR_Word MaybeImportedReuse_9;
  MR_Word ImportedReuse_10;
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, ProcInfo_5, 11))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, Var_11, 32))));

  MaybeImportedReuse_9 = ((MR_Word) ((MR_hl_field(0, Var_12, 1))));
  succeeded = (MaybeImportedReuse_9 != (MR_Word) ((MR_Unsigned) 0U));
  if (succeeded)
  {
    ImportedReuse_10 = ((MR_Word) ((MR_hl_field(1, MaybeImportedReuse_9, 0))));
    *HeadVars_6 = ((MR_Word) ((MR_hl_field(0, ImportedReuse_10, 0))));
    *Types_7 = ((MR_Word) ((MR_hl_field(0, ImportedReuse_10, 1))));
    *Reuse_8 = ((MR_Word) ((MR_hl_field(0, ImportedReuse_10, 2))));
    succeeded = MR_TRUE;
  }
  return succeeded;
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_structure_reuse_3_p_0(
  MR_Word Reuse_4,
  MR_Word STATE_VARIABLE_ProcInfo_0_6,
  MR_Word * STATE_VARIABLE_ProcInfo_7)
{
  MR_Word Var_9;
  MR_Word Var_10;
  MR_Word Var_11;
  MR_Word Var_12;
  MR_Word Var_13;
  MR_Word Var_14;
  MR_Word Var_15;
  MR_Word Var_16;
  MR_Word Var_17;
  MR_Word Var_18;
  MR_Word Var_19;
  MR_Word Var_20;
  MR_Word Var_21;
  MR_Word Var_22;
  MR_Word Var_23;
  MR_Word Var_24;
  MR_Word Var_25;
  MR_Word Var_26;
  MR_Word Var_27;
  MR_Word Var_28;
  MR_Word Var_29;
  MR_Word Var_30;
  MR_Word Var_31;
  MR_Word Var_32;
  MR_Word Var_33;
  MR_Word Var_34;
  MR_Word Var_39;
  MR_Word Var_40;
  MR_Word Var_41;
  MR_Word Var_42;
  MR_Word Var_43;
  MR_Word Var_44;
  MR_Word Var_45;
  MR_Word Var_46;
  MR_Word Var_47;
  MR_Word Var_48;
  MR_Word Var_49;
  MR_Word Var_50;
  MR_Word Var_51;
  MR_Word Var_52;
  MR_Word Var_53;
  MR_Word Var_54;
  MR_Word Var_55;
  MR_Word Var_56;
  MR_Word Var_57;
  MR_Word Var_58;
  MR_Word Var_59;
  MR_Unsigned packed_word_3;
  MR_Word Var_61;

  {
    Var_9 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (1 * sizeof(MR_Word)), NULL, NULL));
    MR_hl_field(1, Var_9, 0) = ((MR_Box) (Reuse_4));
  }
  Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_6, 0))));
  Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_6, 1))));
  Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_6, 2))));
  Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_6, 3))));
  Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_6, 4))));
  Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_6, 5))));
  Var_20 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_6, 6))));
  Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_6, 7))));
  Var_22 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_6, 8))));
  Var_23 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_6, 9))) & (MR_Integer) 7);
  Var_24 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_6, 10))));
  Var_10 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_6, 11))));
  Var_25 = ((MR_Word) ((MR_hl_field(0, Var_10, 0))));
  Var_26 = ((MR_Word) ((MR_hl_field(0, Var_10, 1))));
  Var_27 = ((MR_Unsigned) ((MR_hl_field(0, Var_10, 2))) & (MR_Integer) 1);
  Var_28 = ((MR_Word) ((MR_hl_field(0, Var_10, 3))));
  Var_29 = ((MR_Unsigned) ((MR_hl_field(0, Var_10, 4))) & (MR_Integer) 3);
  Var_30 = ((MR_Word) ((MR_hl_field(0, Var_10, 5))));
  Var_31 = ((MR_Word) ((MR_hl_field(0, Var_10, 6))));
  Var_32 = ((MR_Word) ((MR_hl_field(0, Var_10, 7))));
  Var_33 = ((MR_Word) ((MR_hl_field(0, Var_10, 8))));
  Var_34 = ((MR_Word) ((MR_hl_field(0, Var_10, 9))));
  packed_word_3 = (MR_Unsigned) ((MR_hl_field(0, Var_10, 10)));
  Var_39 = ((MR_Word) ((MR_hl_field(0, Var_10, 11))));
  Var_40 = ((MR_Word) ((MR_hl_field(0, Var_10, 12))));
  Var_41 = ((MR_Word) ((MR_hl_field(0, Var_10, 13))));
  Var_42 = ((MR_Word) ((MR_hl_field(0, Var_10, 14))));
  Var_43 = ((MR_Word) ((MR_hl_field(0, Var_10, 15))));
  Var_44 = ((MR_Word) ((MR_hl_field(0, Var_10, 16))));
  Var_45 = ((MR_Word) ((MR_hl_field(0, Var_10, 17))));
  Var_46 = ((MR_Word) ((MR_hl_field(0, Var_10, 18))));
  Var_47 = ((MR_Unsigned) ((MR_hl_field(0, Var_10, 19))) & (MR_Integer) 1);
  Var_48 = ((MR_Word) ((MR_hl_field(0, Var_10, 20))));
  Var_49 = ((MR_Word) ((MR_hl_field(0, Var_10, 21))));
  Var_50 = ((MR_Word) ((MR_hl_field(0, Var_10, 22))));
  Var_51 = ((MR_Word) ((MR_hl_field(0, Var_10, 23))));
  Var_52 = ((MR_Word) ((MR_hl_field(0, Var_10, 24))));
  Var_53 = ((MR_Word) ((MR_hl_field(0, Var_10, 25))));
  Var_54 = ((MR_Word) ((MR_hl_field(0, Var_10, 26))));
  Var_55 = ((MR_Word) ((MR_hl_field(0, Var_10, 27))));
  Var_56 = ((MR_Word) ((MR_hl_field(0, Var_10, 28))));
  Var_57 = ((MR_Word) ((MR_hl_field(0, Var_10, 29))));
  Var_58 = ((MR_Word) ((MR_hl_field(0, Var_10, 30))));
  Var_59 = ((MR_Word) ((MR_hl_field(0, Var_10, 31))));
  Var_12 = ((MR_Word) ((MR_hl_field(0, Var_10, 32))));
  Var_61 = ((MR_Word) ((MR_hl_field(0, Var_12, 1))));
  {
    Var_13 = (MR_Word) MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_13, 0) = ((MR_Box) (Var_9));
    MR_hl_field(0, Var_13, 1) = ((MR_Box) (Var_61));
  }
  {
    Var_11 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_11, 0) = ((MR_Box) (Var_25));
    MR_hl_field(0, Var_11, 1) = ((MR_Box) (Var_26));
    MR_hl_field(0, Var_11, 2) = (MR_Box) ((MR_Unsigned) (Var_27));
    MR_hl_field(0, Var_11, 3) = ((MR_Box) (Var_28));
    MR_hl_field(0, Var_11, 4) = (MR_Box) ((MR_Unsigned) (Var_29));
    MR_hl_field(0, Var_11, 5) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_11, 6) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_11, 7) = ((MR_Box) (Var_32));
    MR_hl_field(0, Var_11, 8) = ((MR_Box) (Var_33));
    MR_hl_field(0, Var_11, 9) = ((MR_Box) (Var_34));
    MR_hl_field(0, Var_11, 10) = (MR_Box) (packed_word_3);
    MR_hl_field(0, Var_11, 11) = ((MR_Box) (Var_39));
    MR_hl_field(0, Var_11, 12) = ((MR_Box) (Var_40));
    MR_hl_field(0, Var_11, 13) = ((MR_Box) (Var_41));
    MR_hl_field(0, Var_11, 14) = ((MR_Box) (Var_42));
    MR_hl_field(0, Var_11, 15) = ((MR_Box) (Var_43));
    MR_hl_field(0, Var_11, 16) = ((MR_Box) (Var_44));
    MR_hl_field(0, Var_11, 17) = ((MR_Box) (Var_45));
    MR_hl_field(0, Var_11, 18) = ((MR_Box) (Var_46));
    MR_hl_field(0, Var_11, 19) = (MR_Box) ((MR_Unsigned) (Var_47));
    MR_hl_field(0, Var_11, 20) = ((MR_Box) (Var_48));
    MR_hl_field(0, Var_11, 21) = ((MR_Box) (Var_49));
    MR_hl_field(0, Var_11, 22) = ((MR_Box) (Var_50));
    MR_hl_field(0, Var_11, 23) = ((MR_Box) (Var_51));
    MR_hl_field(0, Var_11, 24) = ((MR_Box) (Var_52));
    MR_hl_field(0, Var_11, 25) = ((MR_Box) (Var_53));
    MR_hl_field(0, Var_11, 26) = ((MR_Box) (Var_54));
    MR_hl_field(0, Var_11, 27) = ((MR_Box) (Var_55));
    MR_hl_field(0, Var_11, 28) = ((MR_Box) (Var_56));
    MR_hl_field(0, Var_11, 29) = ((MR_Box) (Var_57));
    MR_hl_field(0, Var_11, 30) = ((MR_Box) (Var_58));
    MR_hl_field(0, Var_11, 31) = ((MR_Box) (Var_59));
    MR_hl_field(0, Var_11, 32) = ((MR_Box) (Var_13));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_ProcInfo_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_20));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_22));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_23));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_24));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_11));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_structure_reuse_2_p_0(
  MR_Word ProcInfo_3,
  MR_Word * MaybeReuse_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, ProcInfo_3, 11))));
  MR_Word Var_6 = ((MR_Word) ((MR_hl_field(0, Var_5, 32))));

  *MaybeReuse_4 = ((MR_Word) ((MR_hl_field(0, Var_6, 0))));
}

void MR_CALL 
hlds__hlds_pred__proc_info_reset_imported_structure_sharing_2_p_0(
  MR_Word STATE_VARIABLE_ProcInfo_0_4,
  MR_Word * STATE_VARIABLE_ProcInfo_5)
{
  MR_Word Var_8 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_4, 11))));
  MR_Word Var_9;
  MR_Word Var_10 = ((MR_Word) ((MR_hl_field(0, Var_8, 31))));
  MR_Word Var_11;
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_4, 0))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_4, 1))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_4, 2))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_4, 3))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_4, 4))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_4, 5))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_4, 6))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_4, 7))));
  MR_Word Var_20 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_4, 8))));
  MR_Word Var_21 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_4, 9))) & (MR_Integer) 7);
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_4, 10))));
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, Var_8, 0))));
  MR_Word Var_24 = ((MR_Word) ((MR_hl_field(0, Var_8, 1))));
  MR_Word Var_25 = ((MR_Unsigned) ((MR_hl_field(0, Var_8, 2))) & (MR_Integer) 1);
  MR_Word Var_26 = ((MR_Word) ((MR_hl_field(0, Var_8, 3))));
  MR_Word Var_27 = ((MR_Unsigned) ((MR_hl_field(0, Var_8, 4))) & (MR_Integer) 3);
  MR_Word Var_28 = ((MR_Word) ((MR_hl_field(0, Var_8, 5))));
  MR_Word Var_29 = ((MR_Word) ((MR_hl_field(0, Var_8, 6))));
  MR_Word Var_30 = ((MR_Word) ((MR_hl_field(0, Var_8, 7))));
  MR_Word Var_31 = ((MR_Word) ((MR_hl_field(0, Var_8, 8))));
  MR_Word Var_32 = ((MR_Word) ((MR_hl_field(0, Var_8, 9))));
  MR_Word Var_37 = ((MR_Word) ((MR_hl_field(0, Var_8, 11))));
  MR_Word Var_38 = ((MR_Word) ((MR_hl_field(0, Var_8, 12))));
  MR_Word Var_39 = ((MR_Word) ((MR_hl_field(0, Var_8, 13))));
  MR_Word Var_40 = ((MR_Word) ((MR_hl_field(0, Var_8, 14))));
  MR_Word Var_41 = ((MR_Word) ((MR_hl_field(0, Var_8, 15))));
  MR_Word Var_42 = ((MR_Word) ((MR_hl_field(0, Var_8, 16))));
  MR_Word Var_43 = ((MR_Word) ((MR_hl_field(0, Var_8, 17))));
  MR_Word Var_44 = ((MR_Word) ((MR_hl_field(0, Var_8, 18))));
  MR_Word Var_45 = ((MR_Unsigned) ((MR_hl_field(0, Var_8, 19))) & (MR_Integer) 1);
  MR_Word Var_46 = ((MR_Word) ((MR_hl_field(0, Var_8, 20))));
  MR_Word Var_47 = ((MR_Word) ((MR_hl_field(0, Var_8, 21))));
  MR_Word Var_48 = ((MR_Word) ((MR_hl_field(0, Var_8, 22))));
  MR_Word Var_49 = ((MR_Word) ((MR_hl_field(0, Var_8, 23))));
  MR_Word Var_50 = ((MR_Word) ((MR_hl_field(0, Var_8, 24))));
  MR_Word Var_51 = ((MR_Word) ((MR_hl_field(0, Var_8, 25))));
  MR_Word Var_52 = ((MR_Word) ((MR_hl_field(0, Var_8, 26))));
  MR_Word Var_53 = ((MR_Word) ((MR_hl_field(0, Var_8, 27))));
  MR_Word Var_54 = ((MR_Word) ((MR_hl_field(0, Var_8, 28))));
  MR_Word Var_55 = ((MR_Word) ((MR_hl_field(0, Var_8, 29))));
  MR_Word Var_56 = ((MR_Word) ((MR_hl_field(0, Var_8, 30))));
  MR_Word Var_57 = ((MR_Word) ((MR_hl_field(0, Var_8, 32))));
  MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(0, Var_8, 10)));
  MR_Word Var_58 = ((MR_Word) ((MR_hl_field(0, Var_10, 0))));

  {
    Var_11 = (MR_Word) MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_11, 0) = ((MR_Box) (Var_58));
    MR_hl_field(0, Var_11, 1) = ((MR_Box) ((MR_Unsigned) 0U));
  }
  {
    Var_9 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_9, 0) = ((MR_Box) (Var_23));
    MR_hl_field(0, Var_9, 1) = ((MR_Box) (Var_24));
    MR_hl_field(0, Var_9, 2) = (MR_Box) ((MR_Unsigned) (Var_25));
    MR_hl_field(0, Var_9, 3) = ((MR_Box) (Var_26));
    MR_hl_field(0, Var_9, 4) = (MR_Box) ((MR_Unsigned) (Var_27));
    MR_hl_field(0, Var_9, 5) = ((MR_Box) (Var_28));
    MR_hl_field(0, Var_9, 6) = ((MR_Box) (Var_29));
    MR_hl_field(0, Var_9, 7) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_9, 8) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_9, 9) = ((MR_Box) (Var_32));
    MR_hl_field(0, Var_9, 10) = (MR_Box) (packed_word_3);
    MR_hl_field(0, Var_9, 11) = ((MR_Box) (Var_37));
    MR_hl_field(0, Var_9, 12) = ((MR_Box) (Var_38));
    MR_hl_field(0, Var_9, 13) = ((MR_Box) (Var_39));
    MR_hl_field(0, Var_9, 14) = ((MR_Box) (Var_40));
    MR_hl_field(0, Var_9, 15) = ((MR_Box) (Var_41));
    MR_hl_field(0, Var_9, 16) = ((MR_Box) (Var_42));
    MR_hl_field(0, Var_9, 17) = ((MR_Box) (Var_43));
    MR_hl_field(0, Var_9, 18) = ((MR_Box) (Var_44));
    MR_hl_field(0, Var_9, 19) = (MR_Box) ((MR_Unsigned) (Var_45));
    MR_hl_field(0, Var_9, 20) = ((MR_Box) (Var_46));
    MR_hl_field(0, Var_9, 21) = ((MR_Box) (Var_47));
    MR_hl_field(0, Var_9, 22) = ((MR_Box) (Var_48));
    MR_hl_field(0, Var_9, 23) = ((MR_Box) (Var_49));
    MR_hl_field(0, Var_9, 24) = ((MR_Box) (Var_50));
    MR_hl_field(0, Var_9, 25) = ((MR_Box) (Var_51));
    MR_hl_field(0, Var_9, 26) = ((MR_Box) (Var_52));
    MR_hl_field(0, Var_9, 27) = ((MR_Box) (Var_53));
    MR_hl_field(0, Var_9, 28) = ((MR_Box) (Var_54));
    MR_hl_field(0, Var_9, 29) = ((MR_Box) (Var_55));
    MR_hl_field(0, Var_9, 30) = ((MR_Box) (Var_56));
    MR_hl_field(0, Var_9, 31) = ((MR_Box) (Var_11));
    MR_hl_field(0, Var_9, 32) = ((MR_Box) (Var_57));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_ProcInfo_5 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_20));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_21));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_22));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_9));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_imported_structure_sharing_5_p_0(
  MR_Word HeadVars_6,
  MR_Word Types_7,
  MR_Word Sharing_8,
  MR_Word STATE_VARIABLE_ProcInfo_0_12,
  MR_Word * STATE_VARIABLE_ProcInfo_13)
{
  MR_Word ImportedSharing_10;
  MR_Word MaybeImportedSharing_11;
  MR_Word Var_15;
  MR_Word Var_16;
  MR_Word Var_17;
  MR_Word Var_18;
  MR_Word Var_19;
  MR_Word Var_20;
  MR_Word Var_21;
  MR_Word Var_22;
  MR_Word Var_23;
  MR_Word Var_24;
  MR_Word Var_25;
  MR_Word Var_26;
  MR_Word Var_27;
  MR_Word Var_28;
  MR_Word Var_29;
  MR_Word Var_30;
  MR_Word Var_31;
  MR_Word Var_32;
  MR_Word Var_33;
  MR_Word Var_34;
  MR_Word Var_35;
  MR_Word Var_36;
  MR_Word Var_37;
  MR_Word Var_38;
  MR_Word Var_39;
  MR_Word Var_44;
  MR_Word Var_45;
  MR_Word Var_46;
  MR_Word Var_47;
  MR_Word Var_48;
  MR_Word Var_49;
  MR_Word Var_50;
  MR_Word Var_51;
  MR_Word Var_52;
  MR_Word Var_53;
  MR_Word Var_54;
  MR_Word Var_55;
  MR_Word Var_56;
  MR_Word Var_57;
  MR_Word Var_58;
  MR_Word Var_59;
  MR_Word Var_60;
  MR_Word Var_61;
  MR_Word Var_62;
  MR_Word Var_63;
  MR_Word Var_64;
  MR_Unsigned packed_word_3;
  MR_Word Var_65;

  {
    ImportedSharing_10 = (MR_Word) MR_new_object(MR_Word, (3 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, ImportedSharing_10, 0) = ((MR_Box) (HeadVars_6));
    MR_hl_field(0, ImportedSharing_10, 1) = ((MR_Box) (Types_7));
    MR_hl_field(0, ImportedSharing_10, 2) = ((MR_Box) (Sharing_8));
  }
  {
    MaybeImportedSharing_11 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (1 * sizeof(MR_Word)), NULL, NULL));
    MR_hl_field(1, MaybeImportedSharing_11, 0) = ((MR_Box) (ImportedSharing_10));
  }
  Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_12, 0))));
  Var_20 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_12, 1))));
  Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_12, 2))));
  Var_22 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_12, 3))));
  Var_23 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_12, 4))));
  Var_24 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_12, 5))));
  Var_25 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_12, 6))));
  Var_26 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_12, 7))));
  Var_27 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_12, 8))));
  Var_28 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_12, 9))) & (MR_Integer) 7);
  Var_29 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_12, 10))));
  Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_12, 11))));
  Var_30 = ((MR_Word) ((MR_hl_field(0, Var_15, 0))));
  Var_31 = ((MR_Word) ((MR_hl_field(0, Var_15, 1))));
  Var_32 = ((MR_Unsigned) ((MR_hl_field(0, Var_15, 2))) & (MR_Integer) 1);
  Var_33 = ((MR_Word) ((MR_hl_field(0, Var_15, 3))));
  Var_34 = ((MR_Unsigned) ((MR_hl_field(0, Var_15, 4))) & (MR_Integer) 3);
  Var_35 = ((MR_Word) ((MR_hl_field(0, Var_15, 5))));
  Var_36 = ((MR_Word) ((MR_hl_field(0, Var_15, 6))));
  Var_37 = ((MR_Word) ((MR_hl_field(0, Var_15, 7))));
  Var_38 = ((MR_Word) ((MR_hl_field(0, Var_15, 8))));
  Var_39 = ((MR_Word) ((MR_hl_field(0, Var_15, 9))));
  packed_word_3 = (MR_Unsigned) ((MR_hl_field(0, Var_15, 10)));
  Var_44 = ((MR_Word) ((MR_hl_field(0, Var_15, 11))));
  Var_45 = ((MR_Word) ((MR_hl_field(0, Var_15, 12))));
  Var_46 = ((MR_Word) ((MR_hl_field(0, Var_15, 13))));
  Var_47 = ((MR_Word) ((MR_hl_field(0, Var_15, 14))));
  Var_48 = ((MR_Word) ((MR_hl_field(0, Var_15, 15))));
  Var_49 = ((MR_Word) ((MR_hl_field(0, Var_15, 16))));
  Var_50 = ((MR_Word) ((MR_hl_field(0, Var_15, 17))));
  Var_51 = ((MR_Word) ((MR_hl_field(0, Var_15, 18))));
  Var_52 = ((MR_Unsigned) ((MR_hl_field(0, Var_15, 19))) & (MR_Integer) 1);
  Var_53 = ((MR_Word) ((MR_hl_field(0, Var_15, 20))));
  Var_54 = ((MR_Word) ((MR_hl_field(0, Var_15, 21))));
  Var_55 = ((MR_Word) ((MR_hl_field(0, Var_15, 22))));
  Var_56 = ((MR_Word) ((MR_hl_field(0, Var_15, 23))));
  Var_57 = ((MR_Word) ((MR_hl_field(0, Var_15, 24))));
  Var_58 = ((MR_Word) ((MR_hl_field(0, Var_15, 25))));
  Var_59 = ((MR_Word) ((MR_hl_field(0, Var_15, 26))));
  Var_60 = ((MR_Word) ((MR_hl_field(0, Var_15, 27))));
  Var_61 = ((MR_Word) ((MR_hl_field(0, Var_15, 28))));
  Var_62 = ((MR_Word) ((MR_hl_field(0, Var_15, 29))));
  Var_63 = ((MR_Word) ((MR_hl_field(0, Var_15, 30))));
  Var_17 = ((MR_Word) ((MR_hl_field(0, Var_15, 31))));
  Var_64 = ((MR_Word) ((MR_hl_field(0, Var_15, 32))));
  Var_65 = ((MR_Word) ((MR_hl_field(0, Var_17, 0))));
  {
    Var_18 = (MR_Word) MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_18, 0) = ((MR_Box) (Var_65));
    MR_hl_field(0, Var_18, 1) = ((MR_Box) (MaybeImportedSharing_11));
  }
  {
    Var_16 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_16, 0) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_16, 1) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_16, 2) = (MR_Box) ((MR_Unsigned) (Var_32));
    MR_hl_field(0, Var_16, 3) = ((MR_Box) (Var_33));
    MR_hl_field(0, Var_16, 4) = (MR_Box) ((MR_Unsigned) (Var_34));
    MR_hl_field(0, Var_16, 5) = ((MR_Box) (Var_35));
    MR_hl_field(0, Var_16, 6) = ((MR_Box) (Var_36));
    MR_hl_field(0, Var_16, 7) = ((MR_Box) (Var_37));
    MR_hl_field(0, Var_16, 8) = ((MR_Box) (Var_38));
    MR_hl_field(0, Var_16, 9) = ((MR_Box) (Var_39));
    MR_hl_field(0, Var_16, 10) = (MR_Box) (packed_word_3);
    MR_hl_field(0, Var_16, 11) = ((MR_Box) (Var_44));
    MR_hl_field(0, Var_16, 12) = ((MR_Box) (Var_45));
    MR_hl_field(0, Var_16, 13) = ((MR_Box) (Var_46));
    MR_hl_field(0, Var_16, 14) = ((MR_Box) (Var_47));
    MR_hl_field(0, Var_16, 15) = ((MR_Box) (Var_48));
    MR_hl_field(0, Var_16, 16) = ((MR_Box) (Var_49));
    MR_hl_field(0, Var_16, 17) = ((MR_Box) (Var_50));
    MR_hl_field(0, Var_16, 18) = ((MR_Box) (Var_51));
    MR_hl_field(0, Var_16, 19) = (MR_Box) ((MR_Unsigned) (Var_52));
    MR_hl_field(0, Var_16, 20) = ((MR_Box) (Var_53));
    MR_hl_field(0, Var_16, 21) = ((MR_Box) (Var_54));
    MR_hl_field(0, Var_16, 22) = ((MR_Box) (Var_55));
    MR_hl_field(0, Var_16, 23) = ((MR_Box) (Var_56));
    MR_hl_field(0, Var_16, 24) = ((MR_Box) (Var_57));
    MR_hl_field(0, Var_16, 25) = ((MR_Box) (Var_58));
    MR_hl_field(0, Var_16, 26) = ((MR_Box) (Var_59));
    MR_hl_field(0, Var_16, 27) = ((MR_Box) (Var_60));
    MR_hl_field(0, Var_16, 28) = ((MR_Box) (Var_61));
    MR_hl_field(0, Var_16, 29) = ((MR_Box) (Var_62));
    MR_hl_field(0, Var_16, 30) = ((MR_Box) (Var_63));
    MR_hl_field(0, Var_16, 31) = ((MR_Box) (Var_18));
    MR_hl_field(0, Var_16, 32) = ((MR_Box) (Var_64));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_ProcInfo_13 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_20));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_22));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_23));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_24));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_25));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_26));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_27));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_28));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_29));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_16));
  }
}

MR_bool MR_CALL 
hlds__hlds_pred__proc_info_get_imported_structure_sharing_4_p_0(
  MR_Word ProcInfo_5,
  MR_Word * HeadVars_6,
  MR_Word * Types_7,
  MR_Word * Sharing_8)
{
  MR_bool succeeded;
  MR_Word MaybeImportedSharing_9;
  MR_Word ImportedSharing_10;
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, ProcInfo_5, 11))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, Var_11, 31))));

  MaybeImportedSharing_9 = ((MR_Word) ((MR_hl_field(0, Var_12, 1))));
  succeeded = (MaybeImportedSharing_9 != (MR_Word) ((MR_Unsigned) 0U));
  if (succeeded)
  {
    ImportedSharing_10 = ((MR_Word) ((MR_hl_field(1, MaybeImportedSharing_9, 0))));
    *HeadVars_6 = ((MR_Word) ((MR_hl_field(0, ImportedSharing_10, 0))));
    *Types_7 = ((MR_Word) ((MR_hl_field(0, ImportedSharing_10, 1))));
    *Sharing_8 = ((MR_Word) ((MR_hl_field(0, ImportedSharing_10, 2))));
    succeeded = MR_TRUE;
  }
  return succeeded;
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_structure_sharing_3_p_0(
  MR_Word Sharing_4,
  MR_Word STATE_VARIABLE_ProcInfo_0_6,
  MR_Word * STATE_VARIABLE_ProcInfo_7)
{
  MR_Word Var_9;
  MR_Word Var_10;
  MR_Word Var_11;
  MR_Word Var_12;
  MR_Word Var_13;
  MR_Word Var_14;
  MR_Word Var_15;
  MR_Word Var_16;
  MR_Word Var_17;
  MR_Word Var_18;
  MR_Word Var_19;
  MR_Word Var_20;
  MR_Word Var_21;
  MR_Word Var_22;
  MR_Word Var_23;
  MR_Word Var_24;
  MR_Word Var_25;
  MR_Word Var_26;
  MR_Word Var_27;
  MR_Word Var_28;
  MR_Word Var_29;
  MR_Word Var_30;
  MR_Word Var_31;
  MR_Word Var_32;
  MR_Word Var_33;
  MR_Word Var_34;
  MR_Word Var_39;
  MR_Word Var_40;
  MR_Word Var_41;
  MR_Word Var_42;
  MR_Word Var_43;
  MR_Word Var_44;
  MR_Word Var_45;
  MR_Word Var_46;
  MR_Word Var_47;
  MR_Word Var_48;
  MR_Word Var_49;
  MR_Word Var_50;
  MR_Word Var_51;
  MR_Word Var_52;
  MR_Word Var_53;
  MR_Word Var_54;
  MR_Word Var_55;
  MR_Word Var_56;
  MR_Word Var_57;
  MR_Word Var_58;
  MR_Word Var_59;
  MR_Unsigned packed_word_3;
  MR_Word Var_61;

  {
    Var_9 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (1 * sizeof(MR_Word)), NULL, NULL));
    MR_hl_field(1, Var_9, 0) = ((MR_Box) (Sharing_4));
  }
  Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_6, 0))));
  Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_6, 1))));
  Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_6, 2))));
  Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_6, 3))));
  Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_6, 4))));
  Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_6, 5))));
  Var_20 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_6, 6))));
  Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_6, 7))));
  Var_22 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_6, 8))));
  Var_23 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_6, 9))) & (MR_Integer) 7);
  Var_24 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_6, 10))));
  Var_10 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_6, 11))));
  Var_25 = ((MR_Word) ((MR_hl_field(0, Var_10, 0))));
  Var_26 = ((MR_Word) ((MR_hl_field(0, Var_10, 1))));
  Var_27 = ((MR_Unsigned) ((MR_hl_field(0, Var_10, 2))) & (MR_Integer) 1);
  Var_28 = ((MR_Word) ((MR_hl_field(0, Var_10, 3))));
  Var_29 = ((MR_Unsigned) ((MR_hl_field(0, Var_10, 4))) & (MR_Integer) 3);
  Var_30 = ((MR_Word) ((MR_hl_field(0, Var_10, 5))));
  Var_31 = ((MR_Word) ((MR_hl_field(0, Var_10, 6))));
  Var_32 = ((MR_Word) ((MR_hl_field(0, Var_10, 7))));
  Var_33 = ((MR_Word) ((MR_hl_field(0, Var_10, 8))));
  Var_34 = ((MR_Word) ((MR_hl_field(0, Var_10, 9))));
  packed_word_3 = (MR_Unsigned) ((MR_hl_field(0, Var_10, 10)));
  Var_39 = ((MR_Word) ((MR_hl_field(0, Var_10, 11))));
  Var_40 = ((MR_Word) ((MR_hl_field(0, Var_10, 12))));
  Var_41 = ((MR_Word) ((MR_hl_field(0, Var_10, 13))));
  Var_42 = ((MR_Word) ((MR_hl_field(0, Var_10, 14))));
  Var_43 = ((MR_Word) ((MR_hl_field(0, Var_10, 15))));
  Var_44 = ((MR_Word) ((MR_hl_field(0, Var_10, 16))));
  Var_45 = ((MR_Word) ((MR_hl_field(0, Var_10, 17))));
  Var_46 = ((MR_Word) ((MR_hl_field(0, Var_10, 18))));
  Var_47 = ((MR_Unsigned) ((MR_hl_field(0, Var_10, 19))) & (MR_Integer) 1);
  Var_48 = ((MR_Word) ((MR_hl_field(0, Var_10, 20))));
  Var_49 = ((MR_Word) ((MR_hl_field(0, Var_10, 21))));
  Var_50 = ((MR_Word) ((MR_hl_field(0, Var_10, 22))));
  Var_51 = ((MR_Word) ((MR_hl_field(0, Var_10, 23))));
  Var_52 = ((MR_Word) ((MR_hl_field(0, Var_10, 24))));
  Var_53 = ((MR_Word) ((MR_hl_field(0, Var_10, 25))));
  Var_54 = ((MR_Word) ((MR_hl_field(0, Var_10, 26))));
  Var_55 = ((MR_Word) ((MR_hl_field(0, Var_10, 27))));
  Var_56 = ((MR_Word) ((MR_hl_field(0, Var_10, 28))));
  Var_57 = ((MR_Word) ((MR_hl_field(0, Var_10, 29))));
  Var_58 = ((MR_Word) ((MR_hl_field(0, Var_10, 30))));
  Var_12 = ((MR_Word) ((MR_hl_field(0, Var_10, 31))));
  Var_59 = ((MR_Word) ((MR_hl_field(0, Var_10, 32))));
  Var_61 = ((MR_Word) ((MR_hl_field(0, Var_12, 1))));
  {
    Var_13 = (MR_Word) MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_13, 0) = ((MR_Box) (Var_9));
    MR_hl_field(0, Var_13, 1) = ((MR_Box) (Var_61));
  }
  {
    Var_11 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_11, 0) = ((MR_Box) (Var_25));
    MR_hl_field(0, Var_11, 1) = ((MR_Box) (Var_26));
    MR_hl_field(0, Var_11, 2) = (MR_Box) ((MR_Unsigned) (Var_27));
    MR_hl_field(0, Var_11, 3) = ((MR_Box) (Var_28));
    MR_hl_field(0, Var_11, 4) = (MR_Box) ((MR_Unsigned) (Var_29));
    MR_hl_field(0, Var_11, 5) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_11, 6) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_11, 7) = ((MR_Box) (Var_32));
    MR_hl_field(0, Var_11, 8) = ((MR_Box) (Var_33));
    MR_hl_field(0, Var_11, 9) = ((MR_Box) (Var_34));
    MR_hl_field(0, Var_11, 10) = (MR_Box) (packed_word_3);
    MR_hl_field(0, Var_11, 11) = ((MR_Box) (Var_39));
    MR_hl_field(0, Var_11, 12) = ((MR_Box) (Var_40));
    MR_hl_field(0, Var_11, 13) = ((MR_Box) (Var_41));
    MR_hl_field(0, Var_11, 14) = ((MR_Box) (Var_42));
    MR_hl_field(0, Var_11, 15) = ((MR_Box) (Var_43));
    MR_hl_field(0, Var_11, 16) = ((MR_Box) (Var_44));
    MR_hl_field(0, Var_11, 17) = ((MR_Box) (Var_45));
    MR_hl_field(0, Var_11, 18) = ((MR_Box) (Var_46));
    MR_hl_field(0, Var_11, 19) = (MR_Box) ((MR_Unsigned) (Var_47));
    MR_hl_field(0, Var_11, 20) = ((MR_Box) (Var_48));
    MR_hl_field(0, Var_11, 21) = ((MR_Box) (Var_49));
    MR_hl_field(0, Var_11, 22) = ((MR_Box) (Var_50));
    MR_hl_field(0, Var_11, 23) = ((MR_Box) (Var_51));
    MR_hl_field(0, Var_11, 24) = ((MR_Box) (Var_52));
    MR_hl_field(0, Var_11, 25) = ((MR_Box) (Var_53));
    MR_hl_field(0, Var_11, 26) = ((MR_Box) (Var_54));
    MR_hl_field(0, Var_11, 27) = ((MR_Box) (Var_55));
    MR_hl_field(0, Var_11, 28) = ((MR_Box) (Var_56));
    MR_hl_field(0, Var_11, 29) = ((MR_Box) (Var_57));
    MR_hl_field(0, Var_11, 30) = ((MR_Box) (Var_58));
    MR_hl_field(0, Var_11, 31) = ((MR_Box) (Var_13));
    MR_hl_field(0, Var_11, 32) = ((MR_Box) (Var_59));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_ProcInfo_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_20));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_22));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_23));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_24));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_11));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_structure_sharing_2_p_0(
  MR_Word ProcInfo_3,
  MR_Word * MaybeSharing_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, ProcInfo_3, 11))));
  MR_Word Var_6 = ((MR_Word) ((MR_hl_field(0, Var_5, 31))));

  *MaybeSharing_4 = ((MR_Word) ((MR_hl_field(0, Var_6, 0))));
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_mm_tabling_info_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_10;
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_20 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))) & (MR_Integer) 7);
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, Var_9, 0))));
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, Var_9, 1))));
  MR_Word Var_24 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 2))) & (MR_Integer) 1);
  MR_Word Var_25 = ((MR_Word) ((MR_hl_field(0, Var_9, 3))));
  MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 4))) & (MR_Integer) 3);
  MR_Word Var_27 = ((MR_Word) ((MR_hl_field(0, Var_9, 5))));
  MR_Word Var_28 = ((MR_Word) ((MR_hl_field(0, Var_9, 6))));
  MR_Word Var_29 = ((MR_Word) ((MR_hl_field(0, Var_9, 7))));
  MR_Word Var_30 = ((MR_Word) ((MR_hl_field(0, Var_9, 8))));
  MR_Word Var_31 = ((MR_Word) ((MR_hl_field(0, Var_9, 9))));
  MR_Word Var_36 = ((MR_Word) ((MR_hl_field(0, Var_9, 11))));
  MR_Word Var_37 = ((MR_Word) ((MR_hl_field(0, Var_9, 12))));
  MR_Word Var_38 = ((MR_Word) ((MR_hl_field(0, Var_9, 13))));
  MR_Word Var_39 = ((MR_Word) ((MR_hl_field(0, Var_9, 14))));
  MR_Word Var_40 = ((MR_Word) ((MR_hl_field(0, Var_9, 15))));
  MR_Word Var_41 = ((MR_Word) ((MR_hl_field(0, Var_9, 16))));
  MR_Word Var_42 = ((MR_Word) ((MR_hl_field(0, Var_9, 17))));
  MR_Word Var_43 = ((MR_Word) ((MR_hl_field(0, Var_9, 18))));
  MR_Word Var_44 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 19))) & (MR_Integer) 1);
  MR_Word Var_45 = ((MR_Word) ((MR_hl_field(0, Var_9, 20))));
  MR_Word Var_46 = ((MR_Word) ((MR_hl_field(0, Var_9, 21))));
  MR_Word Var_47 = ((MR_Word) ((MR_hl_field(0, Var_9, 22))));
  MR_Word Var_48 = ((MR_Word) ((MR_hl_field(0, Var_9, 23))));
  MR_Word Var_49 = ((MR_Word) ((MR_hl_field(0, Var_9, 24))));
  MR_Word Var_50 = ((MR_Word) ((MR_hl_field(0, Var_9, 25))));
  MR_Word Var_51 = ((MR_Word) ((MR_hl_field(0, Var_9, 26))));
  MR_Word Var_52 = ((MR_Word) ((MR_hl_field(0, Var_9, 27))));
  MR_Word Var_53 = ((MR_Word) ((MR_hl_field(0, Var_9, 28))));
  MR_Word Var_54 = ((MR_Word) ((MR_hl_field(0, Var_9, 29))));
  MR_Word Var_56 = ((MR_Word) ((MR_hl_field(0, Var_9, 31))));
  MR_Word Var_57 = ((MR_Word) ((MR_hl_field(0, Var_9, 32))));
  MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(0, Var_9, 10)));

  {
    Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_10, 0) = ((MR_Box) (Var_22));
    MR_hl_field(0, Var_10, 1) = ((MR_Box) (Var_23));
    MR_hl_field(0, Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_24));
    MR_hl_field(0, Var_10, 3) = ((MR_Box) (Var_25));
    MR_hl_field(0, Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_26));
    MR_hl_field(0, Var_10, 5) = ((MR_Box) (Var_27));
    MR_hl_field(0, Var_10, 6) = ((MR_Box) (Var_28));
    MR_hl_field(0, Var_10, 7) = ((MR_Box) (Var_29));
    MR_hl_field(0, Var_10, 8) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_10, 9) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_10, 10) = (MR_Box) (packed_word_3);
    MR_hl_field(0, Var_10, 11) = ((MR_Box) (Var_36));
    MR_hl_field(0, Var_10, 12) = ((MR_Box) (Var_37));
    MR_hl_field(0, Var_10, 13) = ((MR_Box) (Var_38));
    MR_hl_field(0, Var_10, 14) = ((MR_Box) (Var_39));
    MR_hl_field(0, Var_10, 15) = ((MR_Box) (Var_40));
    MR_hl_field(0, Var_10, 16) = ((MR_Box) (Var_41));
    MR_hl_field(0, Var_10, 17) = ((MR_Box) (Var_42));
    MR_hl_field(0, Var_10, 18) = ((MR_Box) (Var_43));
    MR_hl_field(0, Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_44));
    MR_hl_field(0, Var_10, 20) = ((MR_Box) (Var_45));
    MR_hl_field(0, Var_10, 21) = ((MR_Box) (Var_46));
    MR_hl_field(0, Var_10, 22) = ((MR_Box) (Var_47));
    MR_hl_field(0, Var_10, 23) = ((MR_Box) (Var_48));
    MR_hl_field(0, Var_10, 24) = ((MR_Box) (Var_49));
    MR_hl_field(0, Var_10, 25) = ((MR_Box) (Var_50));
    MR_hl_field(0, Var_10, 26) = ((MR_Box) (Var_51));
    MR_hl_field(0, Var_10, 27) = ((MR_Box) (Var_52));
    MR_hl_field(0, Var_10, 28) = ((MR_Box) (Var_53));
    MR_hl_field(0, Var_10, 29) = ((MR_Box) (Var_54));
    MR_hl_field(0, Var_10, 30) = ((MR_Box) (X_4));
    MR_hl_field(0, Var_10, 31) = ((MR_Box) (Var_56));
    MR_hl_field(0, Var_10, 32) = ((MR_Box) (Var_57));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_20));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_10));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_trailing_info_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_10;
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_20 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))) & (MR_Integer) 7);
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, Var_9, 0))));
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, Var_9, 1))));
  MR_Word Var_24 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 2))) & (MR_Integer) 1);
  MR_Word Var_25 = ((MR_Word) ((MR_hl_field(0, Var_9, 3))));
  MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 4))) & (MR_Integer) 3);
  MR_Word Var_27 = ((MR_Word) ((MR_hl_field(0, Var_9, 5))));
  MR_Word Var_28 = ((MR_Word) ((MR_hl_field(0, Var_9, 6))));
  MR_Word Var_29 = ((MR_Word) ((MR_hl_field(0, Var_9, 7))));
  MR_Word Var_30 = ((MR_Word) ((MR_hl_field(0, Var_9, 8))));
  MR_Word Var_31 = ((MR_Word) ((MR_hl_field(0, Var_9, 9))));
  MR_Word Var_36 = ((MR_Word) ((MR_hl_field(0, Var_9, 11))));
  MR_Word Var_37 = ((MR_Word) ((MR_hl_field(0, Var_9, 12))));
  MR_Word Var_38 = ((MR_Word) ((MR_hl_field(0, Var_9, 13))));
  MR_Word Var_39 = ((MR_Word) ((MR_hl_field(0, Var_9, 14))));
  MR_Word Var_40 = ((MR_Word) ((MR_hl_field(0, Var_9, 15))));
  MR_Word Var_41 = ((MR_Word) ((MR_hl_field(0, Var_9, 16))));
  MR_Word Var_42 = ((MR_Word) ((MR_hl_field(0, Var_9, 17))));
  MR_Word Var_43 = ((MR_Word) ((MR_hl_field(0, Var_9, 18))));
  MR_Word Var_44 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 19))) & (MR_Integer) 1);
  MR_Word Var_45 = ((MR_Word) ((MR_hl_field(0, Var_9, 20))));
  MR_Word Var_46 = ((MR_Word) ((MR_hl_field(0, Var_9, 21))));
  MR_Word Var_47 = ((MR_Word) ((MR_hl_field(0, Var_9, 22))));
  MR_Word Var_48 = ((MR_Word) ((MR_hl_field(0, Var_9, 23))));
  MR_Word Var_49 = ((MR_Word) ((MR_hl_field(0, Var_9, 24))));
  MR_Word Var_50 = ((MR_Word) ((MR_hl_field(0, Var_9, 25))));
  MR_Word Var_51 = ((MR_Word) ((MR_hl_field(0, Var_9, 26))));
  MR_Word Var_52 = ((MR_Word) ((MR_hl_field(0, Var_9, 27))));
  MR_Word Var_53 = ((MR_Word) ((MR_hl_field(0, Var_9, 28))));
  MR_Word Var_55 = ((MR_Word) ((MR_hl_field(0, Var_9, 30))));
  MR_Word Var_56 = ((MR_Word) ((MR_hl_field(0, Var_9, 31))));
  MR_Word Var_57 = ((MR_Word) ((MR_hl_field(0, Var_9, 32))));
  MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(0, Var_9, 10)));

  {
    Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_10, 0) = ((MR_Box) (Var_22));
    MR_hl_field(0, Var_10, 1) = ((MR_Box) (Var_23));
    MR_hl_field(0, Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_24));
    MR_hl_field(0, Var_10, 3) = ((MR_Box) (Var_25));
    MR_hl_field(0, Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_26));
    MR_hl_field(0, Var_10, 5) = ((MR_Box) (Var_27));
    MR_hl_field(0, Var_10, 6) = ((MR_Box) (Var_28));
    MR_hl_field(0, Var_10, 7) = ((MR_Box) (Var_29));
    MR_hl_field(0, Var_10, 8) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_10, 9) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_10, 10) = (MR_Box) (packed_word_3);
    MR_hl_field(0, Var_10, 11) = ((MR_Box) (Var_36));
    MR_hl_field(0, Var_10, 12) = ((MR_Box) (Var_37));
    MR_hl_field(0, Var_10, 13) = ((MR_Box) (Var_38));
    MR_hl_field(0, Var_10, 14) = ((MR_Box) (Var_39));
    MR_hl_field(0, Var_10, 15) = ((MR_Box) (Var_40));
    MR_hl_field(0, Var_10, 16) = ((MR_Box) (Var_41));
    MR_hl_field(0, Var_10, 17) = ((MR_Box) (Var_42));
    MR_hl_field(0, Var_10, 18) = ((MR_Box) (Var_43));
    MR_hl_field(0, Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_44));
    MR_hl_field(0, Var_10, 20) = ((MR_Box) (Var_45));
    MR_hl_field(0, Var_10, 21) = ((MR_Box) (Var_46));
    MR_hl_field(0, Var_10, 22) = ((MR_Box) (Var_47));
    MR_hl_field(0, Var_10, 23) = ((MR_Box) (Var_48));
    MR_hl_field(0, Var_10, 24) = ((MR_Box) (Var_49));
    MR_hl_field(0, Var_10, 25) = ((MR_Box) (Var_50));
    MR_hl_field(0, Var_10, 26) = ((MR_Box) (Var_51));
    MR_hl_field(0, Var_10, 27) = ((MR_Box) (Var_52));
    MR_hl_field(0, Var_10, 28) = ((MR_Box) (Var_53));
    MR_hl_field(0, Var_10, 29) = ((MR_Box) (X_4));
    MR_hl_field(0, Var_10, 30) = ((MR_Box) (Var_55));
    MR_hl_field(0, Var_10, 31) = ((MR_Box) (Var_56));
    MR_hl_field(0, Var_10, 32) = ((MR_Box) (Var_57));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_20));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_10));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_exception_info_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_10;
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_20 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))) & (MR_Integer) 7);
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, Var_9, 0))));
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, Var_9, 1))));
  MR_Word Var_24 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 2))) & (MR_Integer) 1);
  MR_Word Var_25 = ((MR_Word) ((MR_hl_field(0, Var_9, 3))));
  MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 4))) & (MR_Integer) 3);
  MR_Word Var_27 = ((MR_Word) ((MR_hl_field(0, Var_9, 5))));
  MR_Word Var_28 = ((MR_Word) ((MR_hl_field(0, Var_9, 6))));
  MR_Word Var_29 = ((MR_Word) ((MR_hl_field(0, Var_9, 7))));
  MR_Word Var_30 = ((MR_Word) ((MR_hl_field(0, Var_9, 8))));
  MR_Word Var_31 = ((MR_Word) ((MR_hl_field(0, Var_9, 9))));
  MR_Word Var_36 = ((MR_Word) ((MR_hl_field(0, Var_9, 11))));
  MR_Word Var_37 = ((MR_Word) ((MR_hl_field(0, Var_9, 12))));
  MR_Word Var_38 = ((MR_Word) ((MR_hl_field(0, Var_9, 13))));
  MR_Word Var_39 = ((MR_Word) ((MR_hl_field(0, Var_9, 14))));
  MR_Word Var_40 = ((MR_Word) ((MR_hl_field(0, Var_9, 15))));
  MR_Word Var_41 = ((MR_Word) ((MR_hl_field(0, Var_9, 16))));
  MR_Word Var_42 = ((MR_Word) ((MR_hl_field(0, Var_9, 17))));
  MR_Word Var_43 = ((MR_Word) ((MR_hl_field(0, Var_9, 18))));
  MR_Word Var_44 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 19))) & (MR_Integer) 1);
  MR_Word Var_45 = ((MR_Word) ((MR_hl_field(0, Var_9, 20))));
  MR_Word Var_46 = ((MR_Word) ((MR_hl_field(0, Var_9, 21))));
  MR_Word Var_47 = ((MR_Word) ((MR_hl_field(0, Var_9, 22))));
  MR_Word Var_48 = ((MR_Word) ((MR_hl_field(0, Var_9, 23))));
  MR_Word Var_49 = ((MR_Word) ((MR_hl_field(0, Var_9, 24))));
  MR_Word Var_50 = ((MR_Word) ((MR_hl_field(0, Var_9, 25))));
  MR_Word Var_51 = ((MR_Word) ((MR_hl_field(0, Var_9, 26))));
  MR_Word Var_52 = ((MR_Word) ((MR_hl_field(0, Var_9, 27))));
  MR_Word Var_54 = ((MR_Word) ((MR_hl_field(0, Var_9, 29))));
  MR_Word Var_55 = ((MR_Word) ((MR_hl_field(0, Var_9, 30))));
  MR_Word Var_56 = ((MR_Word) ((MR_hl_field(0, Var_9, 31))));
  MR_Word Var_57 = ((MR_Word) ((MR_hl_field(0, Var_9, 32))));
  MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(0, Var_9, 10)));

  {
    Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_10, 0) = ((MR_Box) (Var_22));
    MR_hl_field(0, Var_10, 1) = ((MR_Box) (Var_23));
    MR_hl_field(0, Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_24));
    MR_hl_field(0, Var_10, 3) = ((MR_Box) (Var_25));
    MR_hl_field(0, Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_26));
    MR_hl_field(0, Var_10, 5) = ((MR_Box) (Var_27));
    MR_hl_field(0, Var_10, 6) = ((MR_Box) (Var_28));
    MR_hl_field(0, Var_10, 7) = ((MR_Box) (Var_29));
    MR_hl_field(0, Var_10, 8) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_10, 9) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_10, 10) = (MR_Box) (packed_word_3);
    MR_hl_field(0, Var_10, 11) = ((MR_Box) (Var_36));
    MR_hl_field(0, Var_10, 12) = ((MR_Box) (Var_37));
    MR_hl_field(0, Var_10, 13) = ((MR_Box) (Var_38));
    MR_hl_field(0, Var_10, 14) = ((MR_Box) (Var_39));
    MR_hl_field(0, Var_10, 15) = ((MR_Box) (Var_40));
    MR_hl_field(0, Var_10, 16) = ((MR_Box) (Var_41));
    MR_hl_field(0, Var_10, 17) = ((MR_Box) (Var_42));
    MR_hl_field(0, Var_10, 18) = ((MR_Box) (Var_43));
    MR_hl_field(0, Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_44));
    MR_hl_field(0, Var_10, 20) = ((MR_Box) (Var_45));
    MR_hl_field(0, Var_10, 21) = ((MR_Box) (Var_46));
    MR_hl_field(0, Var_10, 22) = ((MR_Box) (Var_47));
    MR_hl_field(0, Var_10, 23) = ((MR_Box) (Var_48));
    MR_hl_field(0, Var_10, 24) = ((MR_Box) (Var_49));
    MR_hl_field(0, Var_10, 25) = ((MR_Box) (Var_50));
    MR_hl_field(0, Var_10, 26) = ((MR_Box) (Var_51));
    MR_hl_field(0, Var_10, 27) = ((MR_Box) (Var_52));
    MR_hl_field(0, Var_10, 28) = ((MR_Box) (X_4));
    MR_hl_field(0, Var_10, 29) = ((MR_Box) (Var_54));
    MR_hl_field(0, Var_10, 30) = ((MR_Box) (Var_55));
    MR_hl_field(0, Var_10, 31) = ((MR_Box) (Var_56));
    MR_hl_field(0, Var_10, 32) = ((MR_Box) (Var_57));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_20));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_10));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_termination2_info_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_10;
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_20 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))) & (MR_Integer) 7);
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, Var_9, 0))));
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, Var_9, 1))));
  MR_Word Var_24 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 2))) & (MR_Integer) 1);
  MR_Word Var_25 = ((MR_Word) ((MR_hl_field(0, Var_9, 3))));
  MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 4))) & (MR_Integer) 3);
  MR_Word Var_27 = ((MR_Word) ((MR_hl_field(0, Var_9, 5))));
  MR_Word Var_28 = ((MR_Word) ((MR_hl_field(0, Var_9, 6))));
  MR_Word Var_29 = ((MR_Word) ((MR_hl_field(0, Var_9, 7))));
  MR_Word Var_30 = ((MR_Word) ((MR_hl_field(0, Var_9, 8))));
  MR_Word Var_31 = ((MR_Word) ((MR_hl_field(0, Var_9, 9))));
  MR_Word Var_36 = ((MR_Word) ((MR_hl_field(0, Var_9, 11))));
  MR_Word Var_37 = ((MR_Word) ((MR_hl_field(0, Var_9, 12))));
  MR_Word Var_38 = ((MR_Word) ((MR_hl_field(0, Var_9, 13))));
  MR_Word Var_39 = ((MR_Word) ((MR_hl_field(0, Var_9, 14))));
  MR_Word Var_40 = ((MR_Word) ((MR_hl_field(0, Var_9, 15))));
  MR_Word Var_41 = ((MR_Word) ((MR_hl_field(0, Var_9, 16))));
  MR_Word Var_42 = ((MR_Word) ((MR_hl_field(0, Var_9, 17))));
  MR_Word Var_43 = ((MR_Word) ((MR_hl_field(0, Var_9, 18))));
  MR_Word Var_44 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 19))) & (MR_Integer) 1);
  MR_Word Var_45 = ((MR_Word) ((MR_hl_field(0, Var_9, 20))));
  MR_Word Var_46 = ((MR_Word) ((MR_hl_field(0, Var_9, 21))));
  MR_Word Var_47 = ((MR_Word) ((MR_hl_field(0, Var_9, 22))));
  MR_Word Var_48 = ((MR_Word) ((MR_hl_field(0, Var_9, 23))));
  MR_Word Var_49 = ((MR_Word) ((MR_hl_field(0, Var_9, 24))));
  MR_Word Var_50 = ((MR_Word) ((MR_hl_field(0, Var_9, 25))));
  MR_Word Var_51 = ((MR_Word) ((MR_hl_field(0, Var_9, 26))));
  MR_Word Var_53 = ((MR_Word) ((MR_hl_field(0, Var_9, 28))));
  MR_Word Var_54 = ((MR_Word) ((MR_hl_field(0, Var_9, 29))));
  MR_Word Var_55 = ((MR_Word) ((MR_hl_field(0, Var_9, 30))));
  MR_Word Var_56 = ((MR_Word) ((MR_hl_field(0, Var_9, 31))));
  MR_Word Var_57 = ((MR_Word) ((MR_hl_field(0, Var_9, 32))));
  MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(0, Var_9, 10)));

  {
    Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_10, 0) = ((MR_Box) (Var_22));
    MR_hl_field(0, Var_10, 1) = ((MR_Box) (Var_23));
    MR_hl_field(0, Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_24));
    MR_hl_field(0, Var_10, 3) = ((MR_Box) (Var_25));
    MR_hl_field(0, Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_26));
    MR_hl_field(0, Var_10, 5) = ((MR_Box) (Var_27));
    MR_hl_field(0, Var_10, 6) = ((MR_Box) (Var_28));
    MR_hl_field(0, Var_10, 7) = ((MR_Box) (Var_29));
    MR_hl_field(0, Var_10, 8) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_10, 9) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_10, 10) = (MR_Box) (packed_word_3);
    MR_hl_field(0, Var_10, 11) = ((MR_Box) (Var_36));
    MR_hl_field(0, Var_10, 12) = ((MR_Box) (Var_37));
    MR_hl_field(0, Var_10, 13) = ((MR_Box) (Var_38));
    MR_hl_field(0, Var_10, 14) = ((MR_Box) (Var_39));
    MR_hl_field(0, Var_10, 15) = ((MR_Box) (Var_40));
    MR_hl_field(0, Var_10, 16) = ((MR_Box) (Var_41));
    MR_hl_field(0, Var_10, 17) = ((MR_Box) (Var_42));
    MR_hl_field(0, Var_10, 18) = ((MR_Box) (Var_43));
    MR_hl_field(0, Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_44));
    MR_hl_field(0, Var_10, 20) = ((MR_Box) (Var_45));
    MR_hl_field(0, Var_10, 21) = ((MR_Box) (Var_46));
    MR_hl_field(0, Var_10, 22) = ((MR_Box) (Var_47));
    MR_hl_field(0, Var_10, 23) = ((MR_Box) (Var_48));
    MR_hl_field(0, Var_10, 24) = ((MR_Box) (Var_49));
    MR_hl_field(0, Var_10, 25) = ((MR_Box) (Var_50));
    MR_hl_field(0, Var_10, 26) = ((MR_Box) (Var_51));
    MR_hl_field(0, Var_10, 27) = ((MR_Box) (X_4));
    MR_hl_field(0, Var_10, 28) = ((MR_Box) (Var_53));
    MR_hl_field(0, Var_10, 29) = ((MR_Box) (Var_54));
    MR_hl_field(0, Var_10, 30) = ((MR_Box) (Var_55));
    MR_hl_field(0, Var_10, 31) = ((MR_Box) (Var_56));
    MR_hl_field(0, Var_10, 32) = ((MR_Box) (Var_57));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_20));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_10));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_maybe_arg_size_info_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_10;
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_20 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))) & (MR_Integer) 7);
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, Var_9, 0))));
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, Var_9, 1))));
  MR_Word Var_24 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 2))) & (MR_Integer) 1);
  MR_Word Var_25 = ((MR_Word) ((MR_hl_field(0, Var_9, 3))));
  MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 4))) & (MR_Integer) 3);
  MR_Word Var_27 = ((MR_Word) ((MR_hl_field(0, Var_9, 5))));
  MR_Word Var_28 = ((MR_Word) ((MR_hl_field(0, Var_9, 6))));
  MR_Word Var_29 = ((MR_Word) ((MR_hl_field(0, Var_9, 7))));
  MR_Word Var_30 = ((MR_Word) ((MR_hl_field(0, Var_9, 8))));
  MR_Word Var_31 = ((MR_Word) ((MR_hl_field(0, Var_9, 9))));
  MR_Word Var_36 = ((MR_Word) ((MR_hl_field(0, Var_9, 11))));
  MR_Word Var_37 = ((MR_Word) ((MR_hl_field(0, Var_9, 12))));
  MR_Word Var_38 = ((MR_Word) ((MR_hl_field(0, Var_9, 13))));
  MR_Word Var_39 = ((MR_Word) ((MR_hl_field(0, Var_9, 14))));
  MR_Word Var_40 = ((MR_Word) ((MR_hl_field(0, Var_9, 15))));
  MR_Word Var_41 = ((MR_Word) ((MR_hl_field(0, Var_9, 16))));
  MR_Word Var_42 = ((MR_Word) ((MR_hl_field(0, Var_9, 17))));
  MR_Word Var_43 = ((MR_Word) ((MR_hl_field(0, Var_9, 18))));
  MR_Word Var_44 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 19))) & (MR_Integer) 1);
  MR_Word Var_45 = ((MR_Word) ((MR_hl_field(0, Var_9, 20))));
  MR_Word Var_46 = ((MR_Word) ((MR_hl_field(0, Var_9, 21))));
  MR_Word Var_47 = ((MR_Word) ((MR_hl_field(0, Var_9, 22))));
  MR_Word Var_48 = ((MR_Word) ((MR_hl_field(0, Var_9, 23))));
  MR_Word Var_49 = ((MR_Word) ((MR_hl_field(0, Var_9, 24))));
  MR_Word Var_51 = ((MR_Word) ((MR_hl_field(0, Var_9, 26))));
  MR_Word Var_52 = ((MR_Word) ((MR_hl_field(0, Var_9, 27))));
  MR_Word Var_53 = ((MR_Word) ((MR_hl_field(0, Var_9, 28))));
  MR_Word Var_54 = ((MR_Word) ((MR_hl_field(0, Var_9, 29))));
  MR_Word Var_55 = ((MR_Word) ((MR_hl_field(0, Var_9, 30))));
  MR_Word Var_56 = ((MR_Word) ((MR_hl_field(0, Var_9, 31))));
  MR_Word Var_57 = ((MR_Word) ((MR_hl_field(0, Var_9, 32))));
  MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(0, Var_9, 10)));

  {
    Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_10, 0) = ((MR_Box) (Var_22));
    MR_hl_field(0, Var_10, 1) = ((MR_Box) (Var_23));
    MR_hl_field(0, Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_24));
    MR_hl_field(0, Var_10, 3) = ((MR_Box) (Var_25));
    MR_hl_field(0, Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_26));
    MR_hl_field(0, Var_10, 5) = ((MR_Box) (Var_27));
    MR_hl_field(0, Var_10, 6) = ((MR_Box) (Var_28));
    MR_hl_field(0, Var_10, 7) = ((MR_Box) (Var_29));
    MR_hl_field(0, Var_10, 8) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_10, 9) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_10, 10) = (MR_Box) (packed_word_3);
    MR_hl_field(0, Var_10, 11) = ((MR_Box) (Var_36));
    MR_hl_field(0, Var_10, 12) = ((MR_Box) (Var_37));
    MR_hl_field(0, Var_10, 13) = ((MR_Box) (Var_38));
    MR_hl_field(0, Var_10, 14) = ((MR_Box) (Var_39));
    MR_hl_field(0, Var_10, 15) = ((MR_Box) (Var_40));
    MR_hl_field(0, Var_10, 16) = ((MR_Box) (Var_41));
    MR_hl_field(0, Var_10, 17) = ((MR_Box) (Var_42));
    MR_hl_field(0, Var_10, 18) = ((MR_Box) (Var_43));
    MR_hl_field(0, Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_44));
    MR_hl_field(0, Var_10, 20) = ((MR_Box) (Var_45));
    MR_hl_field(0, Var_10, 21) = ((MR_Box) (Var_46));
    MR_hl_field(0, Var_10, 22) = ((MR_Box) (Var_47));
    MR_hl_field(0, Var_10, 23) = ((MR_Box) (Var_48));
    MR_hl_field(0, Var_10, 24) = ((MR_Box) (Var_49));
    MR_hl_field(0, Var_10, 25) = ((MR_Box) (X_4));
    MR_hl_field(0, Var_10, 26) = ((MR_Box) (Var_51));
    MR_hl_field(0, Var_10, 27) = ((MR_Box) (Var_52));
    MR_hl_field(0, Var_10, 28) = ((MR_Box) (Var_53));
    MR_hl_field(0, Var_10, 29) = ((MR_Box) (Var_54));
    MR_hl_field(0, Var_10, 30) = ((MR_Box) (Var_55));
    MR_hl_field(0, Var_10, 31) = ((MR_Box) (Var_56));
    MR_hl_field(0, Var_10, 32) = ((MR_Box) (Var_57));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_20));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_10));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_maybe_deep_profile_info_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_10;
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_20 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))) & (MR_Integer) 7);
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, Var_9, 0))));
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, Var_9, 1))));
  MR_Word Var_24 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 2))) & (MR_Integer) 1);
  MR_Word Var_25 = ((MR_Word) ((MR_hl_field(0, Var_9, 3))));
  MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 4))) & (MR_Integer) 3);
  MR_Word Var_27 = ((MR_Word) ((MR_hl_field(0, Var_9, 5))));
  MR_Word Var_28 = ((MR_Word) ((MR_hl_field(0, Var_9, 6))));
  MR_Word Var_29 = ((MR_Word) ((MR_hl_field(0, Var_9, 7))));
  MR_Word Var_30 = ((MR_Word) ((MR_hl_field(0, Var_9, 8))));
  MR_Word Var_31 = ((MR_Word) ((MR_hl_field(0, Var_9, 9))));
  MR_Word Var_36 = ((MR_Word) ((MR_hl_field(0, Var_9, 11))));
  MR_Word Var_37 = ((MR_Word) ((MR_hl_field(0, Var_9, 12))));
  MR_Word Var_38 = ((MR_Word) ((MR_hl_field(0, Var_9, 13))));
  MR_Word Var_39 = ((MR_Word) ((MR_hl_field(0, Var_9, 14))));
  MR_Word Var_40 = ((MR_Word) ((MR_hl_field(0, Var_9, 15))));
  MR_Word Var_41 = ((MR_Word) ((MR_hl_field(0, Var_9, 16))));
  MR_Word Var_42 = ((MR_Word) ((MR_hl_field(0, Var_9, 17))));
  MR_Word Var_43 = ((MR_Word) ((MR_hl_field(0, Var_9, 18))));
  MR_Word Var_44 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 19))) & (MR_Integer) 1);
  MR_Word Var_45 = ((MR_Word) ((MR_hl_field(0, Var_9, 20))));
  MR_Word Var_46 = ((MR_Word) ((MR_hl_field(0, Var_9, 21))));
  MR_Word Var_47 = ((MR_Word) ((MR_hl_field(0, Var_9, 22))));
  MR_Word Var_48 = ((MR_Word) ((MR_hl_field(0, Var_9, 23))));
  MR_Word Var_50 = ((MR_Word) ((MR_hl_field(0, Var_9, 25))));
  MR_Word Var_51 = ((MR_Word) ((MR_hl_field(0, Var_9, 26))));
  MR_Word Var_52 = ((MR_Word) ((MR_hl_field(0, Var_9, 27))));
  MR_Word Var_53 = ((MR_Word) ((MR_hl_field(0, Var_9, 28))));
  MR_Word Var_54 = ((MR_Word) ((MR_hl_field(0, Var_9, 29))));
  MR_Word Var_55 = ((MR_Word) ((MR_hl_field(0, Var_9, 30))));
  MR_Word Var_56 = ((MR_Word) ((MR_hl_field(0, Var_9, 31))));
  MR_Word Var_57 = ((MR_Word) ((MR_hl_field(0, Var_9, 32))));
  MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(0, Var_9, 10)));

  {
    Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_10, 0) = ((MR_Box) (Var_22));
    MR_hl_field(0, Var_10, 1) = ((MR_Box) (Var_23));
    MR_hl_field(0, Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_24));
    MR_hl_field(0, Var_10, 3) = ((MR_Box) (Var_25));
    MR_hl_field(0, Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_26));
    MR_hl_field(0, Var_10, 5) = ((MR_Box) (Var_27));
    MR_hl_field(0, Var_10, 6) = ((MR_Box) (Var_28));
    MR_hl_field(0, Var_10, 7) = ((MR_Box) (Var_29));
    MR_hl_field(0, Var_10, 8) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_10, 9) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_10, 10) = (MR_Box) (packed_word_3);
    MR_hl_field(0, Var_10, 11) = ((MR_Box) (Var_36));
    MR_hl_field(0, Var_10, 12) = ((MR_Box) (Var_37));
    MR_hl_field(0, Var_10, 13) = ((MR_Box) (Var_38));
    MR_hl_field(0, Var_10, 14) = ((MR_Box) (Var_39));
    MR_hl_field(0, Var_10, 15) = ((MR_Box) (Var_40));
    MR_hl_field(0, Var_10, 16) = ((MR_Box) (Var_41));
    MR_hl_field(0, Var_10, 17) = ((MR_Box) (Var_42));
    MR_hl_field(0, Var_10, 18) = ((MR_Box) (Var_43));
    MR_hl_field(0, Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_44));
    MR_hl_field(0, Var_10, 20) = ((MR_Box) (Var_45));
    MR_hl_field(0, Var_10, 21) = ((MR_Box) (Var_46));
    MR_hl_field(0, Var_10, 22) = ((MR_Box) (Var_47));
    MR_hl_field(0, Var_10, 23) = ((MR_Box) (Var_48));
    MR_hl_field(0, Var_10, 24) = ((MR_Box) (X_4));
    MR_hl_field(0, Var_10, 25) = ((MR_Box) (Var_50));
    MR_hl_field(0, Var_10, 26) = ((MR_Box) (Var_51));
    MR_hl_field(0, Var_10, 27) = ((MR_Box) (Var_52));
    MR_hl_field(0, Var_10, 28) = ((MR_Box) (Var_53));
    MR_hl_field(0, Var_10, 29) = ((MR_Box) (Var_54));
    MR_hl_field(0, Var_10, 30) = ((MR_Box) (Var_55));
    MR_hl_field(0, Var_10, 31) = ((MR_Box) (Var_56));
    MR_hl_field(0, Var_10, 32) = ((MR_Box) (Var_57));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_20));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_10));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_obsolete_in_favour_of_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_10;
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_20 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))) & (MR_Integer) 7);
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, Var_9, 0))));
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, Var_9, 1))));
  MR_Word Var_24 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 2))) & (MR_Integer) 1);
  MR_Word Var_25 = ((MR_Word) ((MR_hl_field(0, Var_9, 3))));
  MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 4))) & (MR_Integer) 3);
  MR_Word Var_27 = ((MR_Word) ((MR_hl_field(0, Var_9, 5))));
  MR_Word Var_28 = ((MR_Word) ((MR_hl_field(0, Var_9, 6))));
  MR_Word Var_29 = ((MR_Word) ((MR_hl_field(0, Var_9, 7))));
  MR_Word Var_30 = ((MR_Word) ((MR_hl_field(0, Var_9, 8))));
  MR_Word Var_31 = ((MR_Word) ((MR_hl_field(0, Var_9, 9))));
  MR_Word Var_36 = ((MR_Word) ((MR_hl_field(0, Var_9, 11))));
  MR_Word Var_37 = ((MR_Word) ((MR_hl_field(0, Var_9, 12))));
  MR_Word Var_38 = ((MR_Word) ((MR_hl_field(0, Var_9, 13))));
  MR_Word Var_39 = ((MR_Word) ((MR_hl_field(0, Var_9, 14))));
  MR_Word Var_40 = ((MR_Word) ((MR_hl_field(0, Var_9, 15))));
  MR_Word Var_41 = ((MR_Word) ((MR_hl_field(0, Var_9, 16))));
  MR_Word Var_42 = ((MR_Word) ((MR_hl_field(0, Var_9, 17))));
  MR_Word Var_43 = ((MR_Word) ((MR_hl_field(0, Var_9, 18))));
  MR_Word Var_44 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 19))) & (MR_Integer) 1);
  MR_Word Var_45 = ((MR_Word) ((MR_hl_field(0, Var_9, 20))));
  MR_Word Var_46 = ((MR_Word) ((MR_hl_field(0, Var_9, 21))));
  MR_Word Var_47 = ((MR_Word) ((MR_hl_field(0, Var_9, 22))));
  MR_Word Var_49 = ((MR_Word) ((MR_hl_field(0, Var_9, 24))));
  MR_Word Var_50 = ((MR_Word) ((MR_hl_field(0, Var_9, 25))));
  MR_Word Var_51 = ((MR_Word) ((MR_hl_field(0, Var_9, 26))));
  MR_Word Var_52 = ((MR_Word) ((MR_hl_field(0, Var_9, 27))));
  MR_Word Var_53 = ((MR_Word) ((MR_hl_field(0, Var_9, 28))));
  MR_Word Var_54 = ((MR_Word) ((MR_hl_field(0, Var_9, 29))));
  MR_Word Var_55 = ((MR_Word) ((MR_hl_field(0, Var_9, 30))));
  MR_Word Var_56 = ((MR_Word) ((MR_hl_field(0, Var_9, 31))));
  MR_Word Var_57 = ((MR_Word) ((MR_hl_field(0, Var_9, 32))));
  MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(0, Var_9, 10)));

  {
    Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_10, 0) = ((MR_Box) (Var_22));
    MR_hl_field(0, Var_10, 1) = ((MR_Box) (Var_23));
    MR_hl_field(0, Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_24));
    MR_hl_field(0, Var_10, 3) = ((MR_Box) (Var_25));
    MR_hl_field(0, Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_26));
    MR_hl_field(0, Var_10, 5) = ((MR_Box) (Var_27));
    MR_hl_field(0, Var_10, 6) = ((MR_Box) (Var_28));
    MR_hl_field(0, Var_10, 7) = ((MR_Box) (Var_29));
    MR_hl_field(0, Var_10, 8) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_10, 9) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_10, 10) = (MR_Box) (packed_word_3);
    MR_hl_field(0, Var_10, 11) = ((MR_Box) (Var_36));
    MR_hl_field(0, Var_10, 12) = ((MR_Box) (Var_37));
    MR_hl_field(0, Var_10, 13) = ((MR_Box) (Var_38));
    MR_hl_field(0, Var_10, 14) = ((MR_Box) (Var_39));
    MR_hl_field(0, Var_10, 15) = ((MR_Box) (Var_40));
    MR_hl_field(0, Var_10, 16) = ((MR_Box) (Var_41));
    MR_hl_field(0, Var_10, 17) = ((MR_Box) (Var_42));
    MR_hl_field(0, Var_10, 18) = ((MR_Box) (Var_43));
    MR_hl_field(0, Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_44));
    MR_hl_field(0, Var_10, 20) = ((MR_Box) (Var_45));
    MR_hl_field(0, Var_10, 21) = ((MR_Box) (Var_46));
    MR_hl_field(0, Var_10, 22) = ((MR_Box) (Var_47));
    MR_hl_field(0, Var_10, 23) = ((MR_Box) (X_4));
    MR_hl_field(0, Var_10, 24) = ((MR_Box) (Var_49));
    MR_hl_field(0, Var_10, 25) = ((MR_Box) (Var_50));
    MR_hl_field(0, Var_10, 26) = ((MR_Box) (Var_51));
    MR_hl_field(0, Var_10, 27) = ((MR_Box) (Var_52));
    MR_hl_field(0, Var_10, 28) = ((MR_Box) (Var_53));
    MR_hl_field(0, Var_10, 29) = ((MR_Box) (Var_54));
    MR_hl_field(0, Var_10, 30) = ((MR_Box) (Var_55));
    MR_hl_field(0, Var_10, 31) = ((MR_Box) (Var_56));
    MR_hl_field(0, Var_10, 32) = ((MR_Box) (Var_57));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_20));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_10));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_table_attributes_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_10;
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_20 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))) & (MR_Integer) 7);
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, Var_9, 0))));
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, Var_9, 1))));
  MR_Word Var_24 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 2))) & (MR_Integer) 1);
  MR_Word Var_25 = ((MR_Word) ((MR_hl_field(0, Var_9, 3))));
  MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 4))) & (MR_Integer) 3);
  MR_Word Var_27 = ((MR_Word) ((MR_hl_field(0, Var_9, 5))));
  MR_Word Var_28 = ((MR_Word) ((MR_hl_field(0, Var_9, 6))));
  MR_Word Var_29 = ((MR_Word) ((MR_hl_field(0, Var_9, 7))));
  MR_Word Var_30 = ((MR_Word) ((MR_hl_field(0, Var_9, 8))));
  MR_Word Var_31 = ((MR_Word) ((MR_hl_field(0, Var_9, 9))));
  MR_Word Var_36 = ((MR_Word) ((MR_hl_field(0, Var_9, 11))));
  MR_Word Var_37 = ((MR_Word) ((MR_hl_field(0, Var_9, 12))));
  MR_Word Var_38 = ((MR_Word) ((MR_hl_field(0, Var_9, 13))));
  MR_Word Var_39 = ((MR_Word) ((MR_hl_field(0, Var_9, 14))));
  MR_Word Var_40 = ((MR_Word) ((MR_hl_field(0, Var_9, 15))));
  MR_Word Var_41 = ((MR_Word) ((MR_hl_field(0, Var_9, 16))));
  MR_Word Var_42 = ((MR_Word) ((MR_hl_field(0, Var_9, 17))));
  MR_Word Var_43 = ((MR_Word) ((MR_hl_field(0, Var_9, 18))));
  MR_Word Var_44 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 19))) & (MR_Integer) 1);
  MR_Word Var_45 = ((MR_Word) ((MR_hl_field(0, Var_9, 20))));
  MR_Word Var_46 = ((MR_Word) ((MR_hl_field(0, Var_9, 21))));
  MR_Word Var_48 = ((MR_Word) ((MR_hl_field(0, Var_9, 23))));
  MR_Word Var_49 = ((MR_Word) ((MR_hl_field(0, Var_9, 24))));
  MR_Word Var_50 = ((MR_Word) ((MR_hl_field(0, Var_9, 25))));
  MR_Word Var_51 = ((MR_Word) ((MR_hl_field(0, Var_9, 26))));
  MR_Word Var_52 = ((MR_Word) ((MR_hl_field(0, Var_9, 27))));
  MR_Word Var_53 = ((MR_Word) ((MR_hl_field(0, Var_9, 28))));
  MR_Word Var_54 = ((MR_Word) ((MR_hl_field(0, Var_9, 29))));
  MR_Word Var_55 = ((MR_Word) ((MR_hl_field(0, Var_9, 30))));
  MR_Word Var_56 = ((MR_Word) ((MR_hl_field(0, Var_9, 31))));
  MR_Word Var_57 = ((MR_Word) ((MR_hl_field(0, Var_9, 32))));
  MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(0, Var_9, 10)));

  {
    Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_10, 0) = ((MR_Box) (Var_22));
    MR_hl_field(0, Var_10, 1) = ((MR_Box) (Var_23));
    MR_hl_field(0, Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_24));
    MR_hl_field(0, Var_10, 3) = ((MR_Box) (Var_25));
    MR_hl_field(0, Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_26));
    MR_hl_field(0, Var_10, 5) = ((MR_Box) (Var_27));
    MR_hl_field(0, Var_10, 6) = ((MR_Box) (Var_28));
    MR_hl_field(0, Var_10, 7) = ((MR_Box) (Var_29));
    MR_hl_field(0, Var_10, 8) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_10, 9) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_10, 10) = (MR_Box) (packed_word_3);
    MR_hl_field(0, Var_10, 11) = ((MR_Box) (Var_36));
    MR_hl_field(0, Var_10, 12) = ((MR_Box) (Var_37));
    MR_hl_field(0, Var_10, 13) = ((MR_Box) (Var_38));
    MR_hl_field(0, Var_10, 14) = ((MR_Box) (Var_39));
    MR_hl_field(0, Var_10, 15) = ((MR_Box) (Var_40));
    MR_hl_field(0, Var_10, 16) = ((MR_Box) (Var_41));
    MR_hl_field(0, Var_10, 17) = ((MR_Box) (Var_42));
    MR_hl_field(0, Var_10, 18) = ((MR_Box) (Var_43));
    MR_hl_field(0, Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_44));
    MR_hl_field(0, Var_10, 20) = ((MR_Box) (Var_45));
    MR_hl_field(0, Var_10, 21) = ((MR_Box) (Var_46));
    MR_hl_field(0, Var_10, 22) = ((MR_Box) (X_4));
    MR_hl_field(0, Var_10, 23) = ((MR_Box) (Var_48));
    MR_hl_field(0, Var_10, 24) = ((MR_Box) (Var_49));
    MR_hl_field(0, Var_10, 25) = ((MR_Box) (Var_50));
    MR_hl_field(0, Var_10, 26) = ((MR_Box) (Var_51));
    MR_hl_field(0, Var_10, 27) = ((MR_Box) (Var_52));
    MR_hl_field(0, Var_10, 28) = ((MR_Box) (Var_53));
    MR_hl_field(0, Var_10, 29) = ((MR_Box) (Var_54));
    MR_hl_field(0, Var_10, 30) = ((MR_Box) (Var_55));
    MR_hl_field(0, Var_10, 31) = ((MR_Box) (Var_56));
    MR_hl_field(0, Var_10, 32) = ((MR_Box) (Var_57));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_20));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_10));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_maybe_proc_table_io_info_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_10;
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_20 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))) & (MR_Integer) 7);
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, Var_9, 0))));
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, Var_9, 1))));
  MR_Word Var_24 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 2))) & (MR_Integer) 1);
  MR_Word Var_25 = ((MR_Word) ((MR_hl_field(0, Var_9, 3))));
  MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 4))) & (MR_Integer) 3);
  MR_Word Var_27 = ((MR_Word) ((MR_hl_field(0, Var_9, 5))));
  MR_Word Var_28 = ((MR_Word) ((MR_hl_field(0, Var_9, 6))));
  MR_Word Var_29 = ((MR_Word) ((MR_hl_field(0, Var_9, 7))));
  MR_Word Var_30 = ((MR_Word) ((MR_hl_field(0, Var_9, 8))));
  MR_Word Var_31 = ((MR_Word) ((MR_hl_field(0, Var_9, 9))));
  MR_Word Var_36 = ((MR_Word) ((MR_hl_field(0, Var_9, 11))));
  MR_Word Var_37 = ((MR_Word) ((MR_hl_field(0, Var_9, 12))));
  MR_Word Var_38 = ((MR_Word) ((MR_hl_field(0, Var_9, 13))));
  MR_Word Var_39 = ((MR_Word) ((MR_hl_field(0, Var_9, 14))));
  MR_Word Var_40 = ((MR_Word) ((MR_hl_field(0, Var_9, 15))));
  MR_Word Var_41 = ((MR_Word) ((MR_hl_field(0, Var_9, 16))));
  MR_Word Var_42 = ((MR_Word) ((MR_hl_field(0, Var_9, 17))));
  MR_Word Var_43 = ((MR_Word) ((MR_hl_field(0, Var_9, 18))));
  MR_Word Var_44 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 19))) & (MR_Integer) 1);
  MR_Word Var_45 = ((MR_Word) ((MR_hl_field(0, Var_9, 20))));
  MR_Word Var_47 = ((MR_Word) ((MR_hl_field(0, Var_9, 22))));
  MR_Word Var_48 = ((MR_Word) ((MR_hl_field(0, Var_9, 23))));
  MR_Word Var_49 = ((MR_Word) ((MR_hl_field(0, Var_9, 24))));
  MR_Word Var_50 = ((MR_Word) ((MR_hl_field(0, Var_9, 25))));
  MR_Word Var_51 = ((MR_Word) ((MR_hl_field(0, Var_9, 26))));
  MR_Word Var_52 = ((MR_Word) ((MR_hl_field(0, Var_9, 27))));
  MR_Word Var_53 = ((MR_Word) ((MR_hl_field(0, Var_9, 28))));
  MR_Word Var_54 = ((MR_Word) ((MR_hl_field(0, Var_9, 29))));
  MR_Word Var_55 = ((MR_Word) ((MR_hl_field(0, Var_9, 30))));
  MR_Word Var_56 = ((MR_Word) ((MR_hl_field(0, Var_9, 31))));
  MR_Word Var_57 = ((MR_Word) ((MR_hl_field(0, Var_9, 32))));
  MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(0, Var_9, 10)));

  {
    Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_10, 0) = ((MR_Box) (Var_22));
    MR_hl_field(0, Var_10, 1) = ((MR_Box) (Var_23));
    MR_hl_field(0, Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_24));
    MR_hl_field(0, Var_10, 3) = ((MR_Box) (Var_25));
    MR_hl_field(0, Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_26));
    MR_hl_field(0, Var_10, 5) = ((MR_Box) (Var_27));
    MR_hl_field(0, Var_10, 6) = ((MR_Box) (Var_28));
    MR_hl_field(0, Var_10, 7) = ((MR_Box) (Var_29));
    MR_hl_field(0, Var_10, 8) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_10, 9) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_10, 10) = (MR_Box) (packed_word_3);
    MR_hl_field(0, Var_10, 11) = ((MR_Box) (Var_36));
    MR_hl_field(0, Var_10, 12) = ((MR_Box) (Var_37));
    MR_hl_field(0, Var_10, 13) = ((MR_Box) (Var_38));
    MR_hl_field(0, Var_10, 14) = ((MR_Box) (Var_39));
    MR_hl_field(0, Var_10, 15) = ((MR_Box) (Var_40));
    MR_hl_field(0, Var_10, 16) = ((MR_Box) (Var_41));
    MR_hl_field(0, Var_10, 17) = ((MR_Box) (Var_42));
    MR_hl_field(0, Var_10, 18) = ((MR_Box) (Var_43));
    MR_hl_field(0, Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_44));
    MR_hl_field(0, Var_10, 20) = ((MR_Box) (Var_45));
    MR_hl_field(0, Var_10, 21) = ((MR_Box) (X_4));
    MR_hl_field(0, Var_10, 22) = ((MR_Box) (Var_47));
    MR_hl_field(0, Var_10, 23) = ((MR_Box) (Var_48));
    MR_hl_field(0, Var_10, 24) = ((MR_Box) (Var_49));
    MR_hl_field(0, Var_10, 25) = ((MR_Box) (Var_50));
    MR_hl_field(0, Var_10, 26) = ((MR_Box) (Var_51));
    MR_hl_field(0, Var_10, 27) = ((MR_Box) (Var_52));
    MR_hl_field(0, Var_10, 28) = ((MR_Box) (Var_53));
    MR_hl_field(0, Var_10, 29) = ((MR_Box) (Var_54));
    MR_hl_field(0, Var_10, 30) = ((MR_Box) (Var_55));
    MR_hl_field(0, Var_10, 31) = ((MR_Box) (Var_56));
    MR_hl_field(0, Var_10, 32) = ((MR_Box) (Var_57));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_20));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_10));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_call_table_tip_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_10;
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_20 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))) & (MR_Integer) 7);
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, Var_9, 0))));
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, Var_9, 1))));
  MR_Word Var_24 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 2))) & (MR_Integer) 1);
  MR_Word Var_25 = ((MR_Word) ((MR_hl_field(0, Var_9, 3))));
  MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 4))) & (MR_Integer) 3);
  MR_Word Var_27 = ((MR_Word) ((MR_hl_field(0, Var_9, 5))));
  MR_Word Var_28 = ((MR_Word) ((MR_hl_field(0, Var_9, 6))));
  MR_Word Var_29 = ((MR_Word) ((MR_hl_field(0, Var_9, 7))));
  MR_Word Var_30 = ((MR_Word) ((MR_hl_field(0, Var_9, 8))));
  MR_Word Var_31 = ((MR_Word) ((MR_hl_field(0, Var_9, 9))));
  MR_Word Var_36 = ((MR_Word) ((MR_hl_field(0, Var_9, 11))));
  MR_Word Var_37 = ((MR_Word) ((MR_hl_field(0, Var_9, 12))));
  MR_Word Var_38 = ((MR_Word) ((MR_hl_field(0, Var_9, 13))));
  MR_Word Var_39 = ((MR_Word) ((MR_hl_field(0, Var_9, 14))));
  MR_Word Var_40 = ((MR_Word) ((MR_hl_field(0, Var_9, 15))));
  MR_Word Var_41 = ((MR_Word) ((MR_hl_field(0, Var_9, 16))));
  MR_Word Var_42 = ((MR_Word) ((MR_hl_field(0, Var_9, 17))));
  MR_Word Var_43 = ((MR_Word) ((MR_hl_field(0, Var_9, 18))));
  MR_Word Var_44 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 19))) & (MR_Integer) 1);
  MR_Word Var_46 = ((MR_Word) ((MR_hl_field(0, Var_9, 21))));
  MR_Word Var_47 = ((MR_Word) ((MR_hl_field(0, Var_9, 22))));
  MR_Word Var_48 = ((MR_Word) ((MR_hl_field(0, Var_9, 23))));
  MR_Word Var_49 = ((MR_Word) ((MR_hl_field(0, Var_9, 24))));
  MR_Word Var_50 = ((MR_Word) ((MR_hl_field(0, Var_9, 25))));
  MR_Word Var_51 = ((MR_Word) ((MR_hl_field(0, Var_9, 26))));
  MR_Word Var_52 = ((MR_Word) ((MR_hl_field(0, Var_9, 27))));
  MR_Word Var_53 = ((MR_Word) ((MR_hl_field(0, Var_9, 28))));
  MR_Word Var_54 = ((MR_Word) ((MR_hl_field(0, Var_9, 29))));
  MR_Word Var_55 = ((MR_Word) ((MR_hl_field(0, Var_9, 30))));
  MR_Word Var_56 = ((MR_Word) ((MR_hl_field(0, Var_9, 31))));
  MR_Word Var_57 = ((MR_Word) ((MR_hl_field(0, Var_9, 32))));
  MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(0, Var_9, 10)));

  {
    Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_10, 0) = ((MR_Box) (Var_22));
    MR_hl_field(0, Var_10, 1) = ((MR_Box) (Var_23));
    MR_hl_field(0, Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_24));
    MR_hl_field(0, Var_10, 3) = ((MR_Box) (Var_25));
    MR_hl_field(0, Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_26));
    MR_hl_field(0, Var_10, 5) = ((MR_Box) (Var_27));
    MR_hl_field(0, Var_10, 6) = ((MR_Box) (Var_28));
    MR_hl_field(0, Var_10, 7) = ((MR_Box) (Var_29));
    MR_hl_field(0, Var_10, 8) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_10, 9) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_10, 10) = (MR_Box) (packed_word_3);
    MR_hl_field(0, Var_10, 11) = ((MR_Box) (Var_36));
    MR_hl_field(0, Var_10, 12) = ((MR_Box) (Var_37));
    MR_hl_field(0, Var_10, 13) = ((MR_Box) (Var_38));
    MR_hl_field(0, Var_10, 14) = ((MR_Box) (Var_39));
    MR_hl_field(0, Var_10, 15) = ((MR_Box) (Var_40));
    MR_hl_field(0, Var_10, 16) = ((MR_Box) (Var_41));
    MR_hl_field(0, Var_10, 17) = ((MR_Box) (Var_42));
    MR_hl_field(0, Var_10, 18) = ((MR_Box) (Var_43));
    MR_hl_field(0, Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_44));
    MR_hl_field(0, Var_10, 20) = ((MR_Box) (X_4));
    MR_hl_field(0, Var_10, 21) = ((MR_Box) (Var_46));
    MR_hl_field(0, Var_10, 22) = ((MR_Box) (Var_47));
    MR_hl_field(0, Var_10, 23) = ((MR_Box) (Var_48));
    MR_hl_field(0, Var_10, 24) = ((MR_Box) (Var_49));
    MR_hl_field(0, Var_10, 25) = ((MR_Box) (Var_50));
    MR_hl_field(0, Var_10, 26) = ((MR_Box) (Var_51));
    MR_hl_field(0, Var_10, 27) = ((MR_Box) (Var_52));
    MR_hl_field(0, Var_10, 28) = ((MR_Box) (Var_53));
    MR_hl_field(0, Var_10, 29) = ((MR_Box) (Var_54));
    MR_hl_field(0, Var_10, 30) = ((MR_Box) (Var_55));
    MR_hl_field(0, Var_10, 31) = ((MR_Box) (Var_56));
    MR_hl_field(0, Var_10, 32) = ((MR_Box) (Var_57));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_20));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_10));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_needs_maxfr_slot_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_10;
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_20 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))) & (MR_Integer) 7);
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, Var_9, 0))));
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, Var_9, 1))));
  MR_Word Var_24 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 2))) & (MR_Integer) 1);
  MR_Word Var_25 = ((MR_Word) ((MR_hl_field(0, Var_9, 3))));
  MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 4))) & (MR_Integer) 3);
  MR_Word Var_27 = ((MR_Word) ((MR_hl_field(0, Var_9, 5))));
  MR_Word Var_28 = ((MR_Word) ((MR_hl_field(0, Var_9, 6))));
  MR_Word Var_29 = ((MR_Word) ((MR_hl_field(0, Var_9, 7))));
  MR_Word Var_30 = ((MR_Word) ((MR_hl_field(0, Var_9, 8))));
  MR_Word Var_31 = ((MR_Word) ((MR_hl_field(0, Var_9, 9))));
  MR_Word Var_36 = ((MR_Word) ((MR_hl_field(0, Var_9, 11))));
  MR_Word Var_37 = ((MR_Word) ((MR_hl_field(0, Var_9, 12))));
  MR_Word Var_38 = ((MR_Word) ((MR_hl_field(0, Var_9, 13))));
  MR_Word Var_39 = ((MR_Word) ((MR_hl_field(0, Var_9, 14))));
  MR_Word Var_40 = ((MR_Word) ((MR_hl_field(0, Var_9, 15))));
  MR_Word Var_41 = ((MR_Word) ((MR_hl_field(0, Var_9, 16))));
  MR_Word Var_42 = ((MR_Word) ((MR_hl_field(0, Var_9, 17))));
  MR_Word Var_43 = ((MR_Word) ((MR_hl_field(0, Var_9, 18))));
  MR_Word Var_45 = ((MR_Word) ((MR_hl_field(0, Var_9, 20))));
  MR_Word Var_46 = ((MR_Word) ((MR_hl_field(0, Var_9, 21))));
  MR_Word Var_47 = ((MR_Word) ((MR_hl_field(0, Var_9, 22))));
  MR_Word Var_48 = ((MR_Word) ((MR_hl_field(0, Var_9, 23))));
  MR_Word Var_49 = ((MR_Word) ((MR_hl_field(0, Var_9, 24))));
  MR_Word Var_50 = ((MR_Word) ((MR_hl_field(0, Var_9, 25))));
  MR_Word Var_51 = ((MR_Word) ((MR_hl_field(0, Var_9, 26))));
  MR_Word Var_52 = ((MR_Word) ((MR_hl_field(0, Var_9, 27))));
  MR_Word Var_53 = ((MR_Word) ((MR_hl_field(0, Var_9, 28))));
  MR_Word Var_54 = ((MR_Word) ((MR_hl_field(0, Var_9, 29))));
  MR_Word Var_55 = ((MR_Word) ((MR_hl_field(0, Var_9, 30))));
  MR_Word Var_56 = ((MR_Word) ((MR_hl_field(0, Var_9, 31))));
  MR_Word Var_57 = ((MR_Word) ((MR_hl_field(0, Var_9, 32))));
  MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(0, Var_9, 10)));

  {
    Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_10, 0) = ((MR_Box) (Var_22));
    MR_hl_field(0, Var_10, 1) = ((MR_Box) (Var_23));
    MR_hl_field(0, Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_24));
    MR_hl_field(0, Var_10, 3) = ((MR_Box) (Var_25));
    MR_hl_field(0, Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_26));
    MR_hl_field(0, Var_10, 5) = ((MR_Box) (Var_27));
    MR_hl_field(0, Var_10, 6) = ((MR_Box) (Var_28));
    MR_hl_field(0, Var_10, 7) = ((MR_Box) (Var_29));
    MR_hl_field(0, Var_10, 8) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_10, 9) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_10, 10) = (MR_Box) (packed_word_3);
    MR_hl_field(0, Var_10, 11) = ((MR_Box) (Var_36));
    MR_hl_field(0, Var_10, 12) = ((MR_Box) (Var_37));
    MR_hl_field(0, Var_10, 13) = ((MR_Box) (Var_38));
    MR_hl_field(0, Var_10, 14) = ((MR_Box) (Var_39));
    MR_hl_field(0, Var_10, 15) = ((MR_Box) (Var_40));
    MR_hl_field(0, Var_10, 16) = ((MR_Box) (Var_41));
    MR_hl_field(0, Var_10, 17) = ((MR_Box) (Var_42));
    MR_hl_field(0, Var_10, 18) = ((MR_Box) (Var_43));
    MR_hl_field(0, Var_10, 19) = (MR_Box) ((MR_Unsigned) (X_4));
    MR_hl_field(0, Var_10, 20) = ((MR_Box) (Var_45));
    MR_hl_field(0, Var_10, 21) = ((MR_Box) (Var_46));
    MR_hl_field(0, Var_10, 22) = ((MR_Box) (Var_47));
    MR_hl_field(0, Var_10, 23) = ((MR_Box) (Var_48));
    MR_hl_field(0, Var_10, 24) = ((MR_Box) (Var_49));
    MR_hl_field(0, Var_10, 25) = ((MR_Box) (Var_50));
    MR_hl_field(0, Var_10, 26) = ((MR_Box) (Var_51));
    MR_hl_field(0, Var_10, 27) = ((MR_Box) (Var_52));
    MR_hl_field(0, Var_10, 28) = ((MR_Box) (Var_53));
    MR_hl_field(0, Var_10, 29) = ((MR_Box) (Var_54));
    MR_hl_field(0, Var_10, 30) = ((MR_Box) (Var_55));
    MR_hl_field(0, Var_10, 31) = ((MR_Box) (Var_56));
    MR_hl_field(0, Var_10, 32) = ((MR_Box) (Var_57));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_20));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_10));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_stack_slots_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_10;
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_20 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))) & (MR_Integer) 7);
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, Var_9, 0))));
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, Var_9, 1))));
  MR_Word Var_24 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 2))) & (MR_Integer) 1);
  MR_Word Var_25 = ((MR_Word) ((MR_hl_field(0, Var_9, 3))));
  MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 4))) & (MR_Integer) 3);
  MR_Word Var_27 = ((MR_Word) ((MR_hl_field(0, Var_9, 5))));
  MR_Word Var_28 = ((MR_Word) ((MR_hl_field(0, Var_9, 6))));
  MR_Word Var_29 = ((MR_Word) ((MR_hl_field(0, Var_9, 7))));
  MR_Word Var_30 = ((MR_Word) ((MR_hl_field(0, Var_9, 8))));
  MR_Word Var_31 = ((MR_Word) ((MR_hl_field(0, Var_9, 9))));
  MR_Word Var_36 = ((MR_Word) ((MR_hl_field(0, Var_9, 11))));
  MR_Word Var_37 = ((MR_Word) ((MR_hl_field(0, Var_9, 12))));
  MR_Word Var_38 = ((MR_Word) ((MR_hl_field(0, Var_9, 13))));
  MR_Word Var_39 = ((MR_Word) ((MR_hl_field(0, Var_9, 14))));
  MR_Word Var_40 = ((MR_Word) ((MR_hl_field(0, Var_9, 15))));
  MR_Word Var_41 = ((MR_Word) ((MR_hl_field(0, Var_9, 16))));
  MR_Word Var_42 = ((MR_Word) ((MR_hl_field(0, Var_9, 17))));
  MR_Word Var_44 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 19))) & (MR_Integer) 1);
  MR_Word Var_45 = ((MR_Word) ((MR_hl_field(0, Var_9, 20))));
  MR_Word Var_46 = ((MR_Word) ((MR_hl_field(0, Var_9, 21))));
  MR_Word Var_47 = ((MR_Word) ((MR_hl_field(0, Var_9, 22))));
  MR_Word Var_48 = ((MR_Word) ((MR_hl_field(0, Var_9, 23))));
  MR_Word Var_49 = ((MR_Word) ((MR_hl_field(0, Var_9, 24))));
  MR_Word Var_50 = ((MR_Word) ((MR_hl_field(0, Var_9, 25))));
  MR_Word Var_51 = ((MR_Word) ((MR_hl_field(0, Var_9, 26))));
  MR_Word Var_52 = ((MR_Word) ((MR_hl_field(0, Var_9, 27))));
  MR_Word Var_53 = ((MR_Word) ((MR_hl_field(0, Var_9, 28))));
  MR_Word Var_54 = ((MR_Word) ((MR_hl_field(0, Var_9, 29))));
  MR_Word Var_55 = ((MR_Word) ((MR_hl_field(0, Var_9, 30))));
  MR_Word Var_56 = ((MR_Word) ((MR_hl_field(0, Var_9, 31))));
  MR_Word Var_57 = ((MR_Word) ((MR_hl_field(0, Var_9, 32))));
  MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(0, Var_9, 10)));

  {
    Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_10, 0) = ((MR_Box) (Var_22));
    MR_hl_field(0, Var_10, 1) = ((MR_Box) (Var_23));
    MR_hl_field(0, Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_24));
    MR_hl_field(0, Var_10, 3) = ((MR_Box) (Var_25));
    MR_hl_field(0, Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_26));
    MR_hl_field(0, Var_10, 5) = ((MR_Box) (Var_27));
    MR_hl_field(0, Var_10, 6) = ((MR_Box) (Var_28));
    MR_hl_field(0, Var_10, 7) = ((MR_Box) (Var_29));
    MR_hl_field(0, Var_10, 8) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_10, 9) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_10, 10) = (MR_Box) (packed_word_3);
    MR_hl_field(0, Var_10, 11) = ((MR_Box) (Var_36));
    MR_hl_field(0, Var_10, 12) = ((MR_Box) (Var_37));
    MR_hl_field(0, Var_10, 13) = ((MR_Box) (Var_38));
    MR_hl_field(0, Var_10, 14) = ((MR_Box) (Var_39));
    MR_hl_field(0, Var_10, 15) = ((MR_Box) (Var_40));
    MR_hl_field(0, Var_10, 16) = ((MR_Box) (Var_41));
    MR_hl_field(0, Var_10, 17) = ((MR_Box) (Var_42));
    MR_hl_field(0, Var_10, 18) = ((MR_Box) (X_4));
    MR_hl_field(0, Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_44));
    MR_hl_field(0, Var_10, 20) = ((MR_Box) (Var_45));
    MR_hl_field(0, Var_10, 21) = ((MR_Box) (Var_46));
    MR_hl_field(0, Var_10, 22) = ((MR_Box) (Var_47));
    MR_hl_field(0, Var_10, 23) = ((MR_Box) (Var_48));
    MR_hl_field(0, Var_10, 24) = ((MR_Box) (Var_49));
    MR_hl_field(0, Var_10, 25) = ((MR_Box) (Var_50));
    MR_hl_field(0, Var_10, 26) = ((MR_Box) (Var_51));
    MR_hl_field(0, Var_10, 27) = ((MR_Box) (Var_52));
    MR_hl_field(0, Var_10, 28) = ((MR_Box) (Var_53));
    MR_hl_field(0, Var_10, 29) = ((MR_Box) (Var_54));
    MR_hl_field(0, Var_10, 30) = ((MR_Box) (Var_55));
    MR_hl_field(0, Var_10, 31) = ((MR_Box) (Var_56));
    MR_hl_field(0, Var_10, 32) = ((MR_Box) (Var_57));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_20));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_10));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_liveness_info_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_10;
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_20 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))) & (MR_Integer) 7);
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, Var_9, 0))));
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, Var_9, 1))));
  MR_Word Var_24 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 2))) & (MR_Integer) 1);
  MR_Word Var_25 = ((MR_Word) ((MR_hl_field(0, Var_9, 3))));
  MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 4))) & (MR_Integer) 3);
  MR_Word Var_27 = ((MR_Word) ((MR_hl_field(0, Var_9, 5))));
  MR_Word Var_28 = ((MR_Word) ((MR_hl_field(0, Var_9, 6))));
  MR_Word Var_29 = ((MR_Word) ((MR_hl_field(0, Var_9, 7))));
  MR_Word Var_30 = ((MR_Word) ((MR_hl_field(0, Var_9, 8))));
  MR_Word Var_31 = ((MR_Word) ((MR_hl_field(0, Var_9, 9))));
  MR_Word Var_36 = ((MR_Word) ((MR_hl_field(0, Var_9, 11))));
  MR_Word Var_37 = ((MR_Word) ((MR_hl_field(0, Var_9, 12))));
  MR_Word Var_38 = ((MR_Word) ((MR_hl_field(0, Var_9, 13))));
  MR_Word Var_39 = ((MR_Word) ((MR_hl_field(0, Var_9, 14))));
  MR_Word Var_40 = ((MR_Word) ((MR_hl_field(0, Var_9, 15))));
  MR_Word Var_41 = ((MR_Word) ((MR_hl_field(0, Var_9, 16))));
  MR_Word Var_43 = ((MR_Word) ((MR_hl_field(0, Var_9, 18))));
  MR_Word Var_44 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 19))) & (MR_Integer) 1);
  MR_Word Var_45 = ((MR_Word) ((MR_hl_field(0, Var_9, 20))));
  MR_Word Var_46 = ((MR_Word) ((MR_hl_field(0, Var_9, 21))));
  MR_Word Var_47 = ((MR_Word) ((MR_hl_field(0, Var_9, 22))));
  MR_Word Var_48 = ((MR_Word) ((MR_hl_field(0, Var_9, 23))));
  MR_Word Var_49 = ((MR_Word) ((MR_hl_field(0, Var_9, 24))));
  MR_Word Var_50 = ((MR_Word) ((MR_hl_field(0, Var_9, 25))));
  MR_Word Var_51 = ((MR_Word) ((MR_hl_field(0, Var_9, 26))));
  MR_Word Var_52 = ((MR_Word) ((MR_hl_field(0, Var_9, 27))));
  MR_Word Var_53 = ((MR_Word) ((MR_hl_field(0, Var_9, 28))));
  MR_Word Var_54 = ((MR_Word) ((MR_hl_field(0, Var_9, 29))));
  MR_Word Var_55 = ((MR_Word) ((MR_hl_field(0, Var_9, 30))));
  MR_Word Var_56 = ((MR_Word) ((MR_hl_field(0, Var_9, 31))));
  MR_Word Var_57 = ((MR_Word) ((MR_hl_field(0, Var_9, 32))));
  MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(0, Var_9, 10)));

  {
    Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_10, 0) = ((MR_Box) (Var_22));
    MR_hl_field(0, Var_10, 1) = ((MR_Box) (Var_23));
    MR_hl_field(0, Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_24));
    MR_hl_field(0, Var_10, 3) = ((MR_Box) (Var_25));
    MR_hl_field(0, Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_26));
    MR_hl_field(0, Var_10, 5) = ((MR_Box) (Var_27));
    MR_hl_field(0, Var_10, 6) = ((MR_Box) (Var_28));
    MR_hl_field(0, Var_10, 7) = ((MR_Box) (Var_29));
    MR_hl_field(0, Var_10, 8) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_10, 9) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_10, 10) = (MR_Box) (packed_word_3);
    MR_hl_field(0, Var_10, 11) = ((MR_Box) (Var_36));
    MR_hl_field(0, Var_10, 12) = ((MR_Box) (Var_37));
    MR_hl_field(0, Var_10, 13) = ((MR_Box) (Var_38));
    MR_hl_field(0, Var_10, 14) = ((MR_Box) (Var_39));
    MR_hl_field(0, Var_10, 15) = ((MR_Box) (Var_40));
    MR_hl_field(0, Var_10, 16) = ((MR_Box) (Var_41));
    MR_hl_field(0, Var_10, 17) = ((MR_Box) (X_4));
    MR_hl_field(0, Var_10, 18) = ((MR_Box) (Var_43));
    MR_hl_field(0, Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_44));
    MR_hl_field(0, Var_10, 20) = ((MR_Box) (Var_45));
    MR_hl_field(0, Var_10, 21) = ((MR_Box) (Var_46));
    MR_hl_field(0, Var_10, 22) = ((MR_Box) (Var_47));
    MR_hl_field(0, Var_10, 23) = ((MR_Box) (Var_48));
    MR_hl_field(0, Var_10, 24) = ((MR_Box) (Var_49));
    MR_hl_field(0, Var_10, 25) = ((MR_Box) (Var_50));
    MR_hl_field(0, Var_10, 26) = ((MR_Box) (Var_51));
    MR_hl_field(0, Var_10, 27) = ((MR_Box) (Var_52));
    MR_hl_field(0, Var_10, 28) = ((MR_Box) (Var_53));
    MR_hl_field(0, Var_10, 29) = ((MR_Box) (Var_54));
    MR_hl_field(0, Var_10, 30) = ((MR_Box) (Var_55));
    MR_hl_field(0, Var_10, 31) = ((MR_Box) (Var_56));
    MR_hl_field(0, Var_10, 32) = ((MR_Box) (Var_57));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_20));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_10));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_maybe_special_return_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_10;
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_20 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))) & (MR_Integer) 7);
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, Var_9, 0))));
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, Var_9, 1))));
  MR_Word Var_24 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 2))) & (MR_Integer) 1);
  MR_Word Var_25 = ((MR_Word) ((MR_hl_field(0, Var_9, 3))));
  MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 4))) & (MR_Integer) 3);
  MR_Word Var_27 = ((MR_Word) ((MR_hl_field(0, Var_9, 5))));
  MR_Word Var_28 = ((MR_Word) ((MR_hl_field(0, Var_9, 6))));
  MR_Word Var_29 = ((MR_Word) ((MR_hl_field(0, Var_9, 7))));
  MR_Word Var_30 = ((MR_Word) ((MR_hl_field(0, Var_9, 8))));
  MR_Word Var_31 = ((MR_Word) ((MR_hl_field(0, Var_9, 9))));
  MR_Word Var_36 = ((MR_Word) ((MR_hl_field(0, Var_9, 11))));
  MR_Word Var_37 = ((MR_Word) ((MR_hl_field(0, Var_9, 12))));
  MR_Word Var_38 = ((MR_Word) ((MR_hl_field(0, Var_9, 13))));
  MR_Word Var_39 = ((MR_Word) ((MR_hl_field(0, Var_9, 14))));
  MR_Word Var_40 = ((MR_Word) ((MR_hl_field(0, Var_9, 15))));
  MR_Word Var_42 = ((MR_Word) ((MR_hl_field(0, Var_9, 17))));
  MR_Word Var_43 = ((MR_Word) ((MR_hl_field(0, Var_9, 18))));
  MR_Word Var_44 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 19))) & (MR_Integer) 1);
  MR_Word Var_45 = ((MR_Word) ((MR_hl_field(0, Var_9, 20))));
  MR_Word Var_46 = ((MR_Word) ((MR_hl_field(0, Var_9, 21))));
  MR_Word Var_47 = ((MR_Word) ((MR_hl_field(0, Var_9, 22))));
  MR_Word Var_48 = ((MR_Word) ((MR_hl_field(0, Var_9, 23))));
  MR_Word Var_49 = ((MR_Word) ((MR_hl_field(0, Var_9, 24))));
  MR_Word Var_50 = ((MR_Word) ((MR_hl_field(0, Var_9, 25))));
  MR_Word Var_51 = ((MR_Word) ((MR_hl_field(0, Var_9, 26))));
  MR_Word Var_52 = ((MR_Word) ((MR_hl_field(0, Var_9, 27))));
  MR_Word Var_53 = ((MR_Word) ((MR_hl_field(0, Var_9, 28))));
  MR_Word Var_54 = ((MR_Word) ((MR_hl_field(0, Var_9, 29))));
  MR_Word Var_55 = ((MR_Word) ((MR_hl_field(0, Var_9, 30))));
  MR_Word Var_56 = ((MR_Word) ((MR_hl_field(0, Var_9, 31))));
  MR_Word Var_57 = ((MR_Word) ((MR_hl_field(0, Var_9, 32))));
  MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(0, Var_9, 10)));

  {
    Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_10, 0) = ((MR_Box) (Var_22));
    MR_hl_field(0, Var_10, 1) = ((MR_Box) (Var_23));
    MR_hl_field(0, Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_24));
    MR_hl_field(0, Var_10, 3) = ((MR_Box) (Var_25));
    MR_hl_field(0, Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_26));
    MR_hl_field(0, Var_10, 5) = ((MR_Box) (Var_27));
    MR_hl_field(0, Var_10, 6) = ((MR_Box) (Var_28));
    MR_hl_field(0, Var_10, 7) = ((MR_Box) (Var_29));
    MR_hl_field(0, Var_10, 8) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_10, 9) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_10, 10) = (MR_Box) (packed_word_3);
    MR_hl_field(0, Var_10, 11) = ((MR_Box) (Var_36));
    MR_hl_field(0, Var_10, 12) = ((MR_Box) (Var_37));
    MR_hl_field(0, Var_10, 13) = ((MR_Box) (Var_38));
    MR_hl_field(0, Var_10, 14) = ((MR_Box) (Var_39));
    MR_hl_field(0, Var_10, 15) = ((MR_Box) (Var_40));
    MR_hl_field(0, Var_10, 16) = ((MR_Box) (X_4));
    MR_hl_field(0, Var_10, 17) = ((MR_Box) (Var_42));
    MR_hl_field(0, Var_10, 18) = ((MR_Box) (Var_43));
    MR_hl_field(0, Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_44));
    MR_hl_field(0, Var_10, 20) = ((MR_Box) (Var_45));
    MR_hl_field(0, Var_10, 21) = ((MR_Box) (Var_46));
    MR_hl_field(0, Var_10, 22) = ((MR_Box) (Var_47));
    MR_hl_field(0, Var_10, 23) = ((MR_Box) (Var_48));
    MR_hl_field(0, Var_10, 24) = ((MR_Box) (Var_49));
    MR_hl_field(0, Var_10, 25) = ((MR_Box) (Var_50));
    MR_hl_field(0, Var_10, 26) = ((MR_Box) (Var_51));
    MR_hl_field(0, Var_10, 27) = ((MR_Box) (Var_52));
    MR_hl_field(0, Var_10, 28) = ((MR_Box) (Var_53));
    MR_hl_field(0, Var_10, 29) = ((MR_Box) (Var_54));
    MR_hl_field(0, Var_10, 30) = ((MR_Box) (Var_55));
    MR_hl_field(0, Var_10, 31) = ((MR_Box) (Var_56));
    MR_hl_field(0, Var_10, 32) = ((MR_Box) (Var_57));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_20));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_10));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_arg_info_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_9;
  MR_Word Var_10;
  MR_Word Var_11;
  MR_Word Var_12;
  MR_Word Var_13;
  MR_Word Var_14;
  MR_Word Var_15;
  MR_Word Var_16;
  MR_Word Var_17;
  MR_Word Var_18;
  MR_Word Var_19;
  MR_Word Var_20;
  MR_Word Var_21;
  MR_Word Var_22;
  MR_Word Var_23;
  MR_Word Var_24;
  MR_Word Var_25;
  MR_Word Var_26;
  MR_Word Var_27;
  MR_Word Var_28;
  MR_Word Var_29;
  MR_Word Var_30;
  MR_Word Var_31;
  MR_Word Var_32;
  MR_Word Var_37;
  MR_Word Var_38;
  MR_Word Var_39;
  MR_Word Var_40;
  MR_Word Var_42;
  MR_Word Var_43;
  MR_Word Var_44;
  MR_Word Var_45;
  MR_Word Var_46;
  MR_Word Var_47;
  MR_Word Var_48;
  MR_Word Var_49;
  MR_Word Var_50;
  MR_Word Var_51;
  MR_Word Var_52;
  MR_Word Var_53;
  MR_Word Var_54;
  MR_Word Var_55;
  MR_Word Var_56;
  MR_Word Var_57;
  MR_Word Var_58;
  MR_Unsigned packed_word_3;

  {
    Var_9 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (1 * sizeof(MR_Word)), NULL, NULL));
    MR_hl_field(1, Var_9, 0) = ((MR_Box) (X_4));
  }
  Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))));
  Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  Var_20 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  Var_21 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))) & (MR_Integer) 7);
  Var_22 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  Var_10 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  Var_23 = ((MR_Word) ((MR_hl_field(0, Var_10, 0))));
  Var_24 = ((MR_Word) ((MR_hl_field(0, Var_10, 1))));
  Var_25 = ((MR_Unsigned) ((MR_hl_field(0, Var_10, 2))) & (MR_Integer) 1);
  Var_26 = ((MR_Word) ((MR_hl_field(0, Var_10, 3))));
  Var_27 = ((MR_Unsigned) ((MR_hl_field(0, Var_10, 4))) & (MR_Integer) 3);
  Var_28 = ((MR_Word) ((MR_hl_field(0, Var_10, 5))));
  Var_29 = ((MR_Word) ((MR_hl_field(0, Var_10, 6))));
  Var_30 = ((MR_Word) ((MR_hl_field(0, Var_10, 7))));
  Var_31 = ((MR_Word) ((MR_hl_field(0, Var_10, 8))));
  Var_32 = ((MR_Word) ((MR_hl_field(0, Var_10, 9))));
  packed_word_3 = (MR_Unsigned) ((MR_hl_field(0, Var_10, 10)));
  Var_37 = ((MR_Word) ((MR_hl_field(0, Var_10, 11))));
  Var_38 = ((MR_Word) ((MR_hl_field(0, Var_10, 12))));
  Var_39 = ((MR_Word) ((MR_hl_field(0, Var_10, 13))));
  Var_40 = ((MR_Word) ((MR_hl_field(0, Var_10, 14))));
  Var_42 = ((MR_Word) ((MR_hl_field(0, Var_10, 16))));
  Var_43 = ((MR_Word) ((MR_hl_field(0, Var_10, 17))));
  Var_44 = ((MR_Word) ((MR_hl_field(0, Var_10, 18))));
  Var_45 = ((MR_Unsigned) ((MR_hl_field(0, Var_10, 19))) & (MR_Integer) 1);
  Var_46 = ((MR_Word) ((MR_hl_field(0, Var_10, 20))));
  Var_47 = ((MR_Word) ((MR_hl_field(0, Var_10, 21))));
  Var_48 = ((MR_Word) ((MR_hl_field(0, Var_10, 22))));
  Var_49 = ((MR_Word) ((MR_hl_field(0, Var_10, 23))));
  Var_50 = ((MR_Word) ((MR_hl_field(0, Var_10, 24))));
  Var_51 = ((MR_Word) ((MR_hl_field(0, Var_10, 25))));
  Var_52 = ((MR_Word) ((MR_hl_field(0, Var_10, 26))));
  Var_53 = ((MR_Word) ((MR_hl_field(0, Var_10, 27))));
  Var_54 = ((MR_Word) ((MR_hl_field(0, Var_10, 28))));
  Var_55 = ((MR_Word) ((MR_hl_field(0, Var_10, 29))));
  Var_56 = ((MR_Word) ((MR_hl_field(0, Var_10, 30))));
  Var_57 = ((MR_Word) ((MR_hl_field(0, Var_10, 31))));
  Var_58 = ((MR_Word) ((MR_hl_field(0, Var_10, 32))));
  {
    Var_11 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_11, 0) = ((MR_Box) (Var_23));
    MR_hl_field(0, Var_11, 1) = ((MR_Box) (Var_24));
    MR_hl_field(0, Var_11, 2) = (MR_Box) ((MR_Unsigned) (Var_25));
    MR_hl_field(0, Var_11, 3) = ((MR_Box) (Var_26));
    MR_hl_field(0, Var_11, 4) = (MR_Box) ((MR_Unsigned) (Var_27));
    MR_hl_field(0, Var_11, 5) = ((MR_Box) (Var_28));
    MR_hl_field(0, Var_11, 6) = ((MR_Box) (Var_29));
    MR_hl_field(0, Var_11, 7) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_11, 8) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_11, 9) = ((MR_Box) (Var_32));
    MR_hl_field(0, Var_11, 10) = (MR_Box) (packed_word_3);
    MR_hl_field(0, Var_11, 11) = ((MR_Box) (Var_37));
    MR_hl_field(0, Var_11, 12) = ((MR_Box) (Var_38));
    MR_hl_field(0, Var_11, 13) = ((MR_Box) (Var_39));
    MR_hl_field(0, Var_11, 14) = ((MR_Box) (Var_40));
    MR_hl_field(0, Var_11, 15) = ((MR_Box) (Var_9));
    MR_hl_field(0, Var_11, 16) = ((MR_Box) (Var_42));
    MR_hl_field(0, Var_11, 17) = ((MR_Box) (Var_43));
    MR_hl_field(0, Var_11, 18) = ((MR_Box) (Var_44));
    MR_hl_field(0, Var_11, 19) = (MR_Box) ((MR_Unsigned) (Var_45));
    MR_hl_field(0, Var_11, 20) = ((MR_Box) (Var_46));
    MR_hl_field(0, Var_11, 21) = ((MR_Box) (Var_47));
    MR_hl_field(0, Var_11, 22) = ((MR_Box) (Var_48));
    MR_hl_field(0, Var_11, 23) = ((MR_Box) (Var_49));
    MR_hl_field(0, Var_11, 24) = ((MR_Box) (Var_50));
    MR_hl_field(0, Var_11, 25) = ((MR_Box) (Var_51));
    MR_hl_field(0, Var_11, 26) = ((MR_Box) (Var_52));
    MR_hl_field(0, Var_11, 27) = ((MR_Box) (Var_53));
    MR_hl_field(0, Var_11, 28) = ((MR_Box) (Var_54));
    MR_hl_field(0, Var_11, 29) = ((MR_Box) (Var_55));
    MR_hl_field(0, Var_11, 30) = ((MR_Box) (Var_56));
    MR_hl_field(0, Var_11, 31) = ((MR_Box) (Var_57));
    MR_hl_field(0, Var_11, 32) = ((MR_Box) (Var_58));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_20));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_21));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_22));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_11));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_reg_r_headvars_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_10;
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_20 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))) & (MR_Integer) 7);
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, Var_9, 0))));
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, Var_9, 1))));
  MR_Word Var_24 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 2))) & (MR_Integer) 1);
  MR_Word Var_25 = ((MR_Word) ((MR_hl_field(0, Var_9, 3))));
  MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 4))) & (MR_Integer) 3);
  MR_Word Var_27 = ((MR_Word) ((MR_hl_field(0, Var_9, 5))));
  MR_Word Var_28 = ((MR_Word) ((MR_hl_field(0, Var_9, 6))));
  MR_Word Var_29 = ((MR_Word) ((MR_hl_field(0, Var_9, 7))));
  MR_Word Var_30 = ((MR_Word) ((MR_hl_field(0, Var_9, 8))));
  MR_Word Var_31 = ((MR_Word) ((MR_hl_field(0, Var_9, 9))));
  MR_Word Var_36 = ((MR_Word) ((MR_hl_field(0, Var_9, 11))));
  MR_Word Var_37 = ((MR_Word) ((MR_hl_field(0, Var_9, 12))));
  MR_Word Var_38 = ((MR_Word) ((MR_hl_field(0, Var_9, 13))));
  MR_Word Var_40 = ((MR_Word) ((MR_hl_field(0, Var_9, 15))));
  MR_Word Var_41 = ((MR_Word) ((MR_hl_field(0, Var_9, 16))));
  MR_Word Var_42 = ((MR_Word) ((MR_hl_field(0, Var_9, 17))));
  MR_Word Var_43 = ((MR_Word) ((MR_hl_field(0, Var_9, 18))));
  MR_Word Var_44 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 19))) & (MR_Integer) 1);
  MR_Word Var_45 = ((MR_Word) ((MR_hl_field(0, Var_9, 20))));
  MR_Word Var_46 = ((MR_Word) ((MR_hl_field(0, Var_9, 21))));
  MR_Word Var_47 = ((MR_Word) ((MR_hl_field(0, Var_9, 22))));
  MR_Word Var_48 = ((MR_Word) ((MR_hl_field(0, Var_9, 23))));
  MR_Word Var_49 = ((MR_Word) ((MR_hl_field(0, Var_9, 24))));
  MR_Word Var_50 = ((MR_Word) ((MR_hl_field(0, Var_9, 25))));
  MR_Word Var_51 = ((MR_Word) ((MR_hl_field(0, Var_9, 26))));
  MR_Word Var_52 = ((MR_Word) ((MR_hl_field(0, Var_9, 27))));
  MR_Word Var_53 = ((MR_Word) ((MR_hl_field(0, Var_9, 28))));
  MR_Word Var_54 = ((MR_Word) ((MR_hl_field(0, Var_9, 29))));
  MR_Word Var_55 = ((MR_Word) ((MR_hl_field(0, Var_9, 30))));
  MR_Word Var_56 = ((MR_Word) ((MR_hl_field(0, Var_9, 31))));
  MR_Word Var_57 = ((MR_Word) ((MR_hl_field(0, Var_9, 32))));
  MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(0, Var_9, 10)));

  {
    Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_10, 0) = ((MR_Box) (Var_22));
    MR_hl_field(0, Var_10, 1) = ((MR_Box) (Var_23));
    MR_hl_field(0, Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_24));
    MR_hl_field(0, Var_10, 3) = ((MR_Box) (Var_25));
    MR_hl_field(0, Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_26));
    MR_hl_field(0, Var_10, 5) = ((MR_Box) (Var_27));
    MR_hl_field(0, Var_10, 6) = ((MR_Box) (Var_28));
    MR_hl_field(0, Var_10, 7) = ((MR_Box) (Var_29));
    MR_hl_field(0, Var_10, 8) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_10, 9) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_10, 10) = (MR_Box) (packed_word_3);
    MR_hl_field(0, Var_10, 11) = ((MR_Box) (Var_36));
    MR_hl_field(0, Var_10, 12) = ((MR_Box) (Var_37));
    MR_hl_field(0, Var_10, 13) = ((MR_Box) (Var_38));
    MR_hl_field(0, Var_10, 14) = ((MR_Box) (X_4));
    MR_hl_field(0, Var_10, 15) = ((MR_Box) (Var_40));
    MR_hl_field(0, Var_10, 16) = ((MR_Box) (Var_41));
    MR_hl_field(0, Var_10, 17) = ((MR_Box) (Var_42));
    MR_hl_field(0, Var_10, 18) = ((MR_Box) (Var_43));
    MR_hl_field(0, Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_44));
    MR_hl_field(0, Var_10, 20) = ((MR_Box) (Var_45));
    MR_hl_field(0, Var_10, 21) = ((MR_Box) (Var_46));
    MR_hl_field(0, Var_10, 22) = ((MR_Box) (Var_47));
    MR_hl_field(0, Var_10, 23) = ((MR_Box) (Var_48));
    MR_hl_field(0, Var_10, 24) = ((MR_Box) (Var_49));
    MR_hl_field(0, Var_10, 25) = ((MR_Box) (Var_50));
    MR_hl_field(0, Var_10, 26) = ((MR_Box) (Var_51));
    MR_hl_field(0, Var_10, 27) = ((MR_Box) (Var_52));
    MR_hl_field(0, Var_10, 28) = ((MR_Box) (Var_53));
    MR_hl_field(0, Var_10, 29) = ((MR_Box) (Var_54));
    MR_hl_field(0, Var_10, 30) = ((MR_Box) (Var_55));
    MR_hl_field(0, Var_10, 31) = ((MR_Box) (Var_56));
    MR_hl_field(0, Var_10, 32) = ((MR_Box) (Var_57));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_20));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_10));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_require_tailrec_info_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_9;
  MR_Word Var_10;
  MR_Word Var_11;
  MR_Word Var_12;
  MR_Word Var_13;
  MR_Word Var_14;
  MR_Word Var_15;
  MR_Word Var_16;
  MR_Word Var_17;
  MR_Word Var_18;
  MR_Word Var_19;
  MR_Word Var_20;
  MR_Word Var_21;
  MR_Word Var_22;
  MR_Word Var_23;
  MR_Word Var_24;
  MR_Word Var_25;
  MR_Word Var_26;
  MR_Word Var_27;
  MR_Word Var_28;
  MR_Word Var_29;
  MR_Word Var_30;
  MR_Word Var_31;
  MR_Word Var_32;
  MR_Word Var_37;
  MR_Word Var_38;
  MR_Word Var_40;
  MR_Word Var_41;
  MR_Word Var_42;
  MR_Word Var_43;
  MR_Word Var_44;
  MR_Word Var_45;
  MR_Word Var_46;
  MR_Word Var_47;
  MR_Word Var_48;
  MR_Word Var_49;
  MR_Word Var_50;
  MR_Word Var_51;
  MR_Word Var_52;
  MR_Word Var_53;
  MR_Word Var_54;
  MR_Word Var_55;
  MR_Word Var_56;
  MR_Word Var_57;
  MR_Word Var_58;
  MR_Unsigned packed_word_3;

  {
    Var_9 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (1 * sizeof(MR_Word)), NULL, NULL));
    MR_hl_field(1, Var_9, 0) = ((MR_Box) (X_4));
  }
  Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))));
  Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  Var_20 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  Var_21 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))) & (MR_Integer) 7);
  Var_22 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  Var_10 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  Var_23 = ((MR_Word) ((MR_hl_field(0, Var_10, 0))));
  Var_24 = ((MR_Word) ((MR_hl_field(0, Var_10, 1))));
  Var_25 = ((MR_Unsigned) ((MR_hl_field(0, Var_10, 2))) & (MR_Integer) 1);
  Var_26 = ((MR_Word) ((MR_hl_field(0, Var_10, 3))));
  Var_27 = ((MR_Unsigned) ((MR_hl_field(0, Var_10, 4))) & (MR_Integer) 3);
  Var_28 = ((MR_Word) ((MR_hl_field(0, Var_10, 5))));
  Var_29 = ((MR_Word) ((MR_hl_field(0, Var_10, 6))));
  Var_30 = ((MR_Word) ((MR_hl_field(0, Var_10, 7))));
  Var_31 = ((MR_Word) ((MR_hl_field(0, Var_10, 8))));
  Var_32 = ((MR_Word) ((MR_hl_field(0, Var_10, 9))));
  packed_word_3 = (MR_Unsigned) ((MR_hl_field(0, Var_10, 10)));
  Var_37 = ((MR_Word) ((MR_hl_field(0, Var_10, 11))));
  Var_38 = ((MR_Word) ((MR_hl_field(0, Var_10, 12))));
  Var_40 = ((MR_Word) ((MR_hl_field(0, Var_10, 14))));
  Var_41 = ((MR_Word) ((MR_hl_field(0, Var_10, 15))));
  Var_42 = ((MR_Word) ((MR_hl_field(0, Var_10, 16))));
  Var_43 = ((MR_Word) ((MR_hl_field(0, Var_10, 17))));
  Var_44 = ((MR_Word) ((MR_hl_field(0, Var_10, 18))));
  Var_45 = ((MR_Unsigned) ((MR_hl_field(0, Var_10, 19))) & (MR_Integer) 1);
  Var_46 = ((MR_Word) ((MR_hl_field(0, Var_10, 20))));
  Var_47 = ((MR_Word) ((MR_hl_field(0, Var_10, 21))));
  Var_48 = ((MR_Word) ((MR_hl_field(0, Var_10, 22))));
  Var_49 = ((MR_Word) ((MR_hl_field(0, Var_10, 23))));
  Var_50 = ((MR_Word) ((MR_hl_field(0, Var_10, 24))));
  Var_51 = ((MR_Word) ((MR_hl_field(0, Var_10, 25))));
  Var_52 = ((MR_Word) ((MR_hl_field(0, Var_10, 26))));
  Var_53 = ((MR_Word) ((MR_hl_field(0, Var_10, 27))));
  Var_54 = ((MR_Word) ((MR_hl_field(0, Var_10, 28))));
  Var_55 = ((MR_Word) ((MR_hl_field(0, Var_10, 29))));
  Var_56 = ((MR_Word) ((MR_hl_field(0, Var_10, 30))));
  Var_57 = ((MR_Word) ((MR_hl_field(0, Var_10, 31))));
  Var_58 = ((MR_Word) ((MR_hl_field(0, Var_10, 32))));
  {
    Var_11 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_11, 0) = ((MR_Box) (Var_23));
    MR_hl_field(0, Var_11, 1) = ((MR_Box) (Var_24));
    MR_hl_field(0, Var_11, 2) = (MR_Box) ((MR_Unsigned) (Var_25));
    MR_hl_field(0, Var_11, 3) = ((MR_Box) (Var_26));
    MR_hl_field(0, Var_11, 4) = (MR_Box) ((MR_Unsigned) (Var_27));
    MR_hl_field(0, Var_11, 5) = ((MR_Box) (Var_28));
    MR_hl_field(0, Var_11, 6) = ((MR_Box) (Var_29));
    MR_hl_field(0, Var_11, 7) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_11, 8) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_11, 9) = ((MR_Box) (Var_32));
    MR_hl_field(0, Var_11, 10) = (MR_Box) (packed_word_3);
    MR_hl_field(0, Var_11, 11) = ((MR_Box) (Var_37));
    MR_hl_field(0, Var_11, 12) = ((MR_Box) (Var_38));
    MR_hl_field(0, Var_11, 13) = ((MR_Box) (Var_9));
    MR_hl_field(0, Var_11, 14) = ((MR_Box) (Var_40));
    MR_hl_field(0, Var_11, 15) = ((MR_Box) (Var_41));
    MR_hl_field(0, Var_11, 16) = ((MR_Box) (Var_42));
    MR_hl_field(0, Var_11, 17) = ((MR_Box) (Var_43));
    MR_hl_field(0, Var_11, 18) = ((MR_Box) (Var_44));
    MR_hl_field(0, Var_11, 19) = (MR_Box) ((MR_Unsigned) (Var_45));
    MR_hl_field(0, Var_11, 20) = ((MR_Box) (Var_46));
    MR_hl_field(0, Var_11, 21) = ((MR_Box) (Var_47));
    MR_hl_field(0, Var_11, 22) = ((MR_Box) (Var_48));
    MR_hl_field(0, Var_11, 23) = ((MR_Box) (Var_49));
    MR_hl_field(0, Var_11, 24) = ((MR_Box) (Var_50));
    MR_hl_field(0, Var_11, 25) = ((MR_Box) (Var_51));
    MR_hl_field(0, Var_11, 26) = ((MR_Box) (Var_52));
    MR_hl_field(0, Var_11, 27) = ((MR_Box) (Var_53));
    MR_hl_field(0, Var_11, 28) = ((MR_Box) (Var_54));
    MR_hl_field(0, Var_11, 29) = ((MR_Box) (Var_55));
    MR_hl_field(0, Var_11, 30) = ((MR_Box) (Var_56));
    MR_hl_field(0, Var_11, 31) = ((MR_Box) (Var_57));
    MR_hl_field(0, Var_11, 32) = ((MR_Box) (Var_58));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_20));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_21));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_22));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_11));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_oisu_kind_fors_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_10;
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_20 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))) & (MR_Integer) 7);
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, Var_9, 0))));
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, Var_9, 1))));
  MR_Word Var_24 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 2))) & (MR_Integer) 1);
  MR_Word Var_25 = ((MR_Word) ((MR_hl_field(0, Var_9, 3))));
  MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 4))) & (MR_Integer) 3);
  MR_Word Var_27 = ((MR_Word) ((MR_hl_field(0, Var_9, 5))));
  MR_Word Var_28 = ((MR_Word) ((MR_hl_field(0, Var_9, 6))));
  MR_Word Var_29 = ((MR_Word) ((MR_hl_field(0, Var_9, 7))));
  MR_Word Var_30 = ((MR_Word) ((MR_hl_field(0, Var_9, 8))));
  MR_Word Var_31 = ((MR_Word) ((MR_hl_field(0, Var_9, 9))));
  MR_Word Var_36 = ((MR_Word) ((MR_hl_field(0, Var_9, 11))));
  MR_Word Var_38 = ((MR_Word) ((MR_hl_field(0, Var_9, 13))));
  MR_Word Var_39 = ((MR_Word) ((MR_hl_field(0, Var_9, 14))));
  MR_Word Var_40 = ((MR_Word) ((MR_hl_field(0, Var_9, 15))));
  MR_Word Var_41 = ((MR_Word) ((MR_hl_field(0, Var_9, 16))));
  MR_Word Var_42 = ((MR_Word) ((MR_hl_field(0, Var_9, 17))));
  MR_Word Var_43 = ((MR_Word) ((MR_hl_field(0, Var_9, 18))));
  MR_Word Var_44 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 19))) & (MR_Integer) 1);
  MR_Word Var_45 = ((MR_Word) ((MR_hl_field(0, Var_9, 20))));
  MR_Word Var_46 = ((MR_Word) ((MR_hl_field(0, Var_9, 21))));
  MR_Word Var_47 = ((MR_Word) ((MR_hl_field(0, Var_9, 22))));
  MR_Word Var_48 = ((MR_Word) ((MR_hl_field(0, Var_9, 23))));
  MR_Word Var_49 = ((MR_Word) ((MR_hl_field(0, Var_9, 24))));
  MR_Word Var_50 = ((MR_Word) ((MR_hl_field(0, Var_9, 25))));
  MR_Word Var_51 = ((MR_Word) ((MR_hl_field(0, Var_9, 26))));
  MR_Word Var_52 = ((MR_Word) ((MR_hl_field(0, Var_9, 27))));
  MR_Word Var_53 = ((MR_Word) ((MR_hl_field(0, Var_9, 28))));
  MR_Word Var_54 = ((MR_Word) ((MR_hl_field(0, Var_9, 29))));
  MR_Word Var_55 = ((MR_Word) ((MR_hl_field(0, Var_9, 30))));
  MR_Word Var_56 = ((MR_Word) ((MR_hl_field(0, Var_9, 31))));
  MR_Word Var_57 = ((MR_Word) ((MR_hl_field(0, Var_9, 32))));
  MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(0, Var_9, 10)));

  {
    Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_10, 0) = ((MR_Box) (Var_22));
    MR_hl_field(0, Var_10, 1) = ((MR_Box) (Var_23));
    MR_hl_field(0, Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_24));
    MR_hl_field(0, Var_10, 3) = ((MR_Box) (Var_25));
    MR_hl_field(0, Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_26));
    MR_hl_field(0, Var_10, 5) = ((MR_Box) (Var_27));
    MR_hl_field(0, Var_10, 6) = ((MR_Box) (Var_28));
    MR_hl_field(0, Var_10, 7) = ((MR_Box) (Var_29));
    MR_hl_field(0, Var_10, 8) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_10, 9) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_10, 10) = (MR_Box) (packed_word_3);
    MR_hl_field(0, Var_10, 11) = ((MR_Box) (Var_36));
    MR_hl_field(0, Var_10, 12) = ((MR_Box) (X_4));
    MR_hl_field(0, Var_10, 13) = ((MR_Box) (Var_38));
    MR_hl_field(0, Var_10, 14) = ((MR_Box) (Var_39));
    MR_hl_field(0, Var_10, 15) = ((MR_Box) (Var_40));
    MR_hl_field(0, Var_10, 16) = ((MR_Box) (Var_41));
    MR_hl_field(0, Var_10, 17) = ((MR_Box) (Var_42));
    MR_hl_field(0, Var_10, 18) = ((MR_Box) (Var_43));
    MR_hl_field(0, Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_44));
    MR_hl_field(0, Var_10, 20) = ((MR_Box) (Var_45));
    MR_hl_field(0, Var_10, 21) = ((MR_Box) (Var_46));
    MR_hl_field(0, Var_10, 22) = ((MR_Box) (Var_47));
    MR_hl_field(0, Var_10, 23) = ((MR_Box) (Var_48));
    MR_hl_field(0, Var_10, 24) = ((MR_Box) (Var_49));
    MR_hl_field(0, Var_10, 25) = ((MR_Box) (Var_50));
    MR_hl_field(0, Var_10, 26) = ((MR_Box) (Var_51));
    MR_hl_field(0, Var_10, 27) = ((MR_Box) (Var_52));
    MR_hl_field(0, Var_10, 28) = ((MR_Box) (Var_53));
    MR_hl_field(0, Var_10, 29) = ((MR_Box) (Var_54));
    MR_hl_field(0, Var_10, 30) = ((MR_Box) (Var_55));
    MR_hl_field(0, Var_10, 31) = ((MR_Box) (Var_56));
    MR_hl_field(0, Var_10, 32) = ((MR_Box) (Var_57));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_20));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_10));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_has_tail_rec_call_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_10;
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_20 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))) & (MR_Integer) 7);
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, Var_9, 0))));
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, Var_9, 1))));
  MR_Word Var_24 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 2))) & (MR_Integer) 1);
  MR_Word Var_25 = ((MR_Word) ((MR_hl_field(0, Var_9, 3))));
  MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 4))) & (MR_Integer) 3);
  MR_Word Var_27 = ((MR_Word) ((MR_hl_field(0, Var_9, 5))));
  MR_Word Var_28 = ((MR_Word) ((MR_hl_field(0, Var_9, 6))));
  MR_Word Var_29 = ((MR_Word) ((MR_hl_field(0, Var_9, 7))));
  MR_Word Var_30 = ((MR_Word) ((MR_hl_field(0, Var_9, 8))));
  MR_Word Var_31 = ((MR_Word) ((MR_hl_field(0, Var_9, 9))));
  MR_Word Var_37 = ((MR_Word) ((MR_hl_field(0, Var_9, 12))));
  MR_Word Var_38 = ((MR_Word) ((MR_hl_field(0, Var_9, 13))));
  MR_Word Var_39 = ((MR_Word) ((MR_hl_field(0, Var_9, 14))));
  MR_Word Var_40 = ((MR_Word) ((MR_hl_field(0, Var_9, 15))));
  MR_Word Var_41 = ((MR_Word) ((MR_hl_field(0, Var_9, 16))));
  MR_Word Var_42 = ((MR_Word) ((MR_hl_field(0, Var_9, 17))));
  MR_Word Var_43 = ((MR_Word) ((MR_hl_field(0, Var_9, 18))));
  MR_Word Var_44 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 19))) & (MR_Integer) 1);
  MR_Word Var_45 = ((MR_Word) ((MR_hl_field(0, Var_9, 20))));
  MR_Word Var_46 = ((MR_Word) ((MR_hl_field(0, Var_9, 21))));
  MR_Word Var_47 = ((MR_Word) ((MR_hl_field(0, Var_9, 22))));
  MR_Word Var_48 = ((MR_Word) ((MR_hl_field(0, Var_9, 23))));
  MR_Word Var_49 = ((MR_Word) ((MR_hl_field(0, Var_9, 24))));
  MR_Word Var_50 = ((MR_Word) ((MR_hl_field(0, Var_9, 25))));
  MR_Word Var_51 = ((MR_Word) ((MR_hl_field(0, Var_9, 26))));
  MR_Word Var_52 = ((MR_Word) ((MR_hl_field(0, Var_9, 27))));
  MR_Word Var_53 = ((MR_Word) ((MR_hl_field(0, Var_9, 28))));
  MR_Word Var_54 = ((MR_Word) ((MR_hl_field(0, Var_9, 29))));
  MR_Word Var_55 = ((MR_Word) ((MR_hl_field(0, Var_9, 30))));
  MR_Word Var_56 = ((MR_Word) ((MR_hl_field(0, Var_9, 31))));
  MR_Word Var_57 = ((MR_Word) ((MR_hl_field(0, Var_9, 32))));
  MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(0, Var_9, 10)));

  {
    Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_10, 0) = ((MR_Box) (Var_22));
    MR_hl_field(0, Var_10, 1) = ((MR_Box) (Var_23));
    MR_hl_field(0, Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_24));
    MR_hl_field(0, Var_10, 3) = ((MR_Box) (Var_25));
    MR_hl_field(0, Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_26));
    MR_hl_field(0, Var_10, 5) = ((MR_Box) (Var_27));
    MR_hl_field(0, Var_10, 6) = ((MR_Box) (Var_28));
    MR_hl_field(0, Var_10, 7) = ((MR_Box) (Var_29));
    MR_hl_field(0, Var_10, 8) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_10, 9) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_10, 10) = (MR_Box) (packed_word_3);
    MR_hl_field(0, Var_10, 11) = ((MR_Box) (X_4));
    MR_hl_field(0, Var_10, 12) = ((MR_Box) (Var_37));
    MR_hl_field(0, Var_10, 13) = ((MR_Box) (Var_38));
    MR_hl_field(0, Var_10, 14) = ((MR_Box) (Var_39));
    MR_hl_field(0, Var_10, 15) = ((MR_Box) (Var_40));
    MR_hl_field(0, Var_10, 16) = ((MR_Box) (Var_41));
    MR_hl_field(0, Var_10, 17) = ((MR_Box) (Var_42));
    MR_hl_field(0, Var_10, 18) = ((MR_Box) (Var_43));
    MR_hl_field(0, Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_44));
    MR_hl_field(0, Var_10, 20) = ((MR_Box) (Var_45));
    MR_hl_field(0, Var_10, 21) = ((MR_Box) (Var_46));
    MR_hl_field(0, Var_10, 22) = ((MR_Box) (Var_47));
    MR_hl_field(0, Var_10, 23) = ((MR_Box) (Var_48));
    MR_hl_field(0, Var_10, 24) = ((MR_Box) (Var_49));
    MR_hl_field(0, Var_10, 25) = ((MR_Box) (Var_50));
    MR_hl_field(0, Var_10, 26) = ((MR_Box) (Var_51));
    MR_hl_field(0, Var_10, 27) = ((MR_Box) (Var_52));
    MR_hl_field(0, Var_10, 28) = ((MR_Box) (Var_53));
    MR_hl_field(0, Var_10, 29) = ((MR_Box) (Var_54));
    MR_hl_field(0, Var_10, 30) = ((MR_Box) (Var_55));
    MR_hl_field(0, Var_10, 31) = ((MR_Box) (Var_56));
    MR_hl_field(0, Var_10, 32) = ((MR_Box) (Var_57));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_20));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_10));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_has_user_event_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_10;
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_20 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))) & (MR_Integer) 7);
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, Var_9, 0))));
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, Var_9, 1))));
  MR_Word Var_24 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 2))) & (MR_Integer) 1);
  MR_Word Var_25 = ((MR_Word) ((MR_hl_field(0, Var_9, 3))));
  MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 4))) & (MR_Integer) 3);
  MR_Word Var_27 = ((MR_Word) ((MR_hl_field(0, Var_9, 5))));
  MR_Word Var_28 = ((MR_Word) ((MR_hl_field(0, Var_9, 6))));
  MR_Word Var_29 = ((MR_Word) ((MR_hl_field(0, Var_9, 7))));
  MR_Word Var_30 = ((MR_Word) ((MR_hl_field(0, Var_9, 8))));
  MR_Word Var_31 = ((MR_Word) ((MR_hl_field(0, Var_9, 9))));
  MR_Word Var_32 = ((((MR_Unsigned) ((MR_hl_field(0, Var_9, 10))) >> 3)) & (MR_Integer) 1);
  MR_Word Var_33 = ((((MR_Unsigned) ((MR_hl_field(0, Var_9, 10))) >> 2)) & (MR_Integer) 1);
  MR_Word Var_34 = ((((MR_Unsigned) ((MR_hl_field(0, Var_9, 10))) >> 1)) & (MR_Integer) 1);
  MR_Word Var_36 = ((MR_Word) ((MR_hl_field(0, Var_9, 11))));
  MR_Word Var_37 = ((MR_Word) ((MR_hl_field(0, Var_9, 12))));
  MR_Word Var_38 = ((MR_Word) ((MR_hl_field(0, Var_9, 13))));
  MR_Word Var_39 = ((MR_Word) ((MR_hl_field(0, Var_9, 14))));
  MR_Word Var_40 = ((MR_Word) ((MR_hl_field(0, Var_9, 15))));
  MR_Word Var_41 = ((MR_Word) ((MR_hl_field(0, Var_9, 16))));
  MR_Word Var_42 = ((MR_Word) ((MR_hl_field(0, Var_9, 17))));
  MR_Word Var_43 = ((MR_Word) ((MR_hl_field(0, Var_9, 18))));
  MR_Word Var_44 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 19))) & (MR_Integer) 1);
  MR_Word Var_45 = ((MR_Word) ((MR_hl_field(0, Var_9, 20))));
  MR_Word Var_46 = ((MR_Word) ((MR_hl_field(0, Var_9, 21))));
  MR_Word Var_47 = ((MR_Word) ((MR_hl_field(0, Var_9, 22))));
  MR_Word Var_48 = ((MR_Word) ((MR_hl_field(0, Var_9, 23))));
  MR_Word Var_49 = ((MR_Word) ((MR_hl_field(0, Var_9, 24))));
  MR_Word Var_50 = ((MR_Word) ((MR_hl_field(0, Var_9, 25))));
  MR_Word Var_51 = ((MR_Word) ((MR_hl_field(0, Var_9, 26))));
  MR_Word Var_52 = ((MR_Word) ((MR_hl_field(0, Var_9, 27))));
  MR_Word Var_53 = ((MR_Word) ((MR_hl_field(0, Var_9, 28))));
  MR_Word Var_54 = ((MR_Word) ((MR_hl_field(0, Var_9, 29))));
  MR_Word Var_55 = ((MR_Word) ((MR_hl_field(0, Var_9, 30))));
  MR_Word Var_56 = ((MR_Word) ((MR_hl_field(0, Var_9, 31))));
  MR_Word Var_57 = ((MR_Word) ((MR_hl_field(0, Var_9, 32))));

  {
    Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_10, 0) = ((MR_Box) (Var_22));
    MR_hl_field(0, Var_10, 1) = ((MR_Box) (Var_23));
    MR_hl_field(0, Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_24));
    MR_hl_field(0, Var_10, 3) = ((MR_Box) (Var_25));
    MR_hl_field(0, Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_26));
    MR_hl_field(0, Var_10, 5) = ((MR_Box) (Var_27));
    MR_hl_field(0, Var_10, 6) = ((MR_Box) (Var_28));
    MR_hl_field(0, Var_10, 7) = ((MR_Box) (Var_29));
    MR_hl_field(0, Var_10, 8) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_10, 9) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_10, 10) = (MR_Box) (((((MR_Unsigned) (Var_32) << 3)) | (((((MR_Unsigned) (Var_33) << 2)) | (((((MR_Unsigned) (Var_34) << 1)) | (MR_Unsigned) (X_4)))))));
    MR_hl_field(0, Var_10, 11) = ((MR_Box) (Var_36));
    MR_hl_field(0, Var_10, 12) = ((MR_Box) (Var_37));
    MR_hl_field(0, Var_10, 13) = ((MR_Box) (Var_38));
    MR_hl_field(0, Var_10, 14) = ((MR_Box) (Var_39));
    MR_hl_field(0, Var_10, 15) = ((MR_Box) (Var_40));
    MR_hl_field(0, Var_10, 16) = ((MR_Box) (Var_41));
    MR_hl_field(0, Var_10, 17) = ((MR_Box) (Var_42));
    MR_hl_field(0, Var_10, 18) = ((MR_Box) (Var_43));
    MR_hl_field(0, Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_44));
    MR_hl_field(0, Var_10, 20) = ((MR_Box) (Var_45));
    MR_hl_field(0, Var_10, 21) = ((MR_Box) (Var_46));
    MR_hl_field(0, Var_10, 22) = ((MR_Box) (Var_47));
    MR_hl_field(0, Var_10, 23) = ((MR_Box) (Var_48));
    MR_hl_field(0, Var_10, 24) = ((MR_Box) (Var_49));
    MR_hl_field(0, Var_10, 25) = ((MR_Box) (Var_50));
    MR_hl_field(0, Var_10, 26) = ((MR_Box) (Var_51));
    MR_hl_field(0, Var_10, 27) = ((MR_Box) (Var_52));
    MR_hl_field(0, Var_10, 28) = ((MR_Box) (Var_53));
    MR_hl_field(0, Var_10, 29) = ((MR_Box) (Var_54));
    MR_hl_field(0, Var_10, 30) = ((MR_Box) (Var_55));
    MR_hl_field(0, Var_10, 31) = ((MR_Box) (Var_56));
    MR_hl_field(0, Var_10, 32) = ((MR_Box) (Var_57));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_20));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_10));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_has_parallel_conj_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_10;
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_20 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))) & (MR_Integer) 7);
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, Var_9, 0))));
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, Var_9, 1))));
  MR_Word Var_24 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 2))) & (MR_Integer) 1);
  MR_Word Var_25 = ((MR_Word) ((MR_hl_field(0, Var_9, 3))));
  MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 4))) & (MR_Integer) 3);
  MR_Word Var_27 = ((MR_Word) ((MR_hl_field(0, Var_9, 5))));
  MR_Word Var_28 = ((MR_Word) ((MR_hl_field(0, Var_9, 6))));
  MR_Word Var_29 = ((MR_Word) ((MR_hl_field(0, Var_9, 7))));
  MR_Word Var_30 = ((MR_Word) ((MR_hl_field(0, Var_9, 8))));
  MR_Word Var_31 = ((MR_Word) ((MR_hl_field(0, Var_9, 9))));
  MR_Word Var_32 = ((((MR_Unsigned) ((MR_hl_field(0, Var_9, 10))) >> 3)) & (MR_Integer) 1);
  MR_Word Var_33 = ((((MR_Unsigned) ((MR_hl_field(0, Var_9, 10))) >> 2)) & (MR_Integer) 1);
  MR_Word Var_35 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 10))) & (MR_Integer) 1);
  MR_Word Var_36 = ((MR_Word) ((MR_hl_field(0, Var_9, 11))));
  MR_Word Var_37 = ((MR_Word) ((MR_hl_field(0, Var_9, 12))));
  MR_Word Var_38 = ((MR_Word) ((MR_hl_field(0, Var_9, 13))));
  MR_Word Var_39 = ((MR_Word) ((MR_hl_field(0, Var_9, 14))));
  MR_Word Var_40 = ((MR_Word) ((MR_hl_field(0, Var_9, 15))));
  MR_Word Var_41 = ((MR_Word) ((MR_hl_field(0, Var_9, 16))));
  MR_Word Var_42 = ((MR_Word) ((MR_hl_field(0, Var_9, 17))));
  MR_Word Var_43 = ((MR_Word) ((MR_hl_field(0, Var_9, 18))));
  MR_Word Var_44 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 19))) & (MR_Integer) 1);
  MR_Word Var_45 = ((MR_Word) ((MR_hl_field(0, Var_9, 20))));
  MR_Word Var_46 = ((MR_Word) ((MR_hl_field(0, Var_9, 21))));
  MR_Word Var_47 = ((MR_Word) ((MR_hl_field(0, Var_9, 22))));
  MR_Word Var_48 = ((MR_Word) ((MR_hl_field(0, Var_9, 23))));
  MR_Word Var_49 = ((MR_Word) ((MR_hl_field(0, Var_9, 24))));
  MR_Word Var_50 = ((MR_Word) ((MR_hl_field(0, Var_9, 25))));
  MR_Word Var_51 = ((MR_Word) ((MR_hl_field(0, Var_9, 26))));
  MR_Word Var_52 = ((MR_Word) ((MR_hl_field(0, Var_9, 27))));
  MR_Word Var_53 = ((MR_Word) ((MR_hl_field(0, Var_9, 28))));
  MR_Word Var_54 = ((MR_Word) ((MR_hl_field(0, Var_9, 29))));
  MR_Word Var_55 = ((MR_Word) ((MR_hl_field(0, Var_9, 30))));
  MR_Word Var_56 = ((MR_Word) ((MR_hl_field(0, Var_9, 31))));
  MR_Word Var_57 = ((MR_Word) ((MR_hl_field(0, Var_9, 32))));

  {
    Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_10, 0) = ((MR_Box) (Var_22));
    MR_hl_field(0, Var_10, 1) = ((MR_Box) (Var_23));
    MR_hl_field(0, Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_24));
    MR_hl_field(0, Var_10, 3) = ((MR_Box) (Var_25));
    MR_hl_field(0, Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_26));
    MR_hl_field(0, Var_10, 5) = ((MR_Box) (Var_27));
    MR_hl_field(0, Var_10, 6) = ((MR_Box) (Var_28));
    MR_hl_field(0, Var_10, 7) = ((MR_Box) (Var_29));
    MR_hl_field(0, Var_10, 8) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_10, 9) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_10, 10) = (MR_Box) (((((MR_Unsigned) (Var_32) << 3)) | (((((MR_Unsigned) (Var_33) << 2)) | (((((MR_Unsigned) (X_4) << 1)) | (MR_Unsigned) (Var_35)))))));
    MR_hl_field(0, Var_10, 11) = ((MR_Box) (Var_36));
    MR_hl_field(0, Var_10, 12) = ((MR_Box) (Var_37));
    MR_hl_field(0, Var_10, 13) = ((MR_Box) (Var_38));
    MR_hl_field(0, Var_10, 14) = ((MR_Box) (Var_39));
    MR_hl_field(0, Var_10, 15) = ((MR_Box) (Var_40));
    MR_hl_field(0, Var_10, 16) = ((MR_Box) (Var_41));
    MR_hl_field(0, Var_10, 17) = ((MR_Box) (Var_42));
    MR_hl_field(0, Var_10, 18) = ((MR_Box) (Var_43));
    MR_hl_field(0, Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_44));
    MR_hl_field(0, Var_10, 20) = ((MR_Box) (Var_45));
    MR_hl_field(0, Var_10, 21) = ((MR_Box) (Var_46));
    MR_hl_field(0, Var_10, 22) = ((MR_Box) (Var_47));
    MR_hl_field(0, Var_10, 23) = ((MR_Box) (Var_48));
    MR_hl_field(0, Var_10, 24) = ((MR_Box) (Var_49));
    MR_hl_field(0, Var_10, 25) = ((MR_Box) (Var_50));
    MR_hl_field(0, Var_10, 26) = ((MR_Box) (Var_51));
    MR_hl_field(0, Var_10, 27) = ((MR_Box) (Var_52));
    MR_hl_field(0, Var_10, 28) = ((MR_Box) (Var_53));
    MR_hl_field(0, Var_10, 29) = ((MR_Box) (Var_54));
    MR_hl_field(0, Var_10, 30) = ((MR_Box) (Var_55));
    MR_hl_field(0, Var_10, 31) = ((MR_Box) (Var_56));
    MR_hl_field(0, Var_10, 32) = ((MR_Box) (Var_57));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_20));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_10));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_has_any_foreign_exports_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_10;
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_20 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))) & (MR_Integer) 7);
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, Var_9, 0))));
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, Var_9, 1))));
  MR_Word Var_24 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 2))) & (MR_Integer) 1);
  MR_Word Var_25 = ((MR_Word) ((MR_hl_field(0, Var_9, 3))));
  MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 4))) & (MR_Integer) 3);
  MR_Word Var_27 = ((MR_Word) ((MR_hl_field(0, Var_9, 5))));
  MR_Word Var_28 = ((MR_Word) ((MR_hl_field(0, Var_9, 6))));
  MR_Word Var_29 = ((MR_Word) ((MR_hl_field(0, Var_9, 7))));
  MR_Word Var_30 = ((MR_Word) ((MR_hl_field(0, Var_9, 8))));
  MR_Word Var_31 = ((MR_Word) ((MR_hl_field(0, Var_9, 9))));
  MR_Word Var_32 = ((((MR_Unsigned) ((MR_hl_field(0, Var_9, 10))) >> 3)) & (MR_Integer) 1);
  MR_Word Var_34 = ((((MR_Unsigned) ((MR_hl_field(0, Var_9, 10))) >> 1)) & (MR_Integer) 1);
  MR_Word Var_35 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 10))) & (MR_Integer) 1);
  MR_Word Var_36 = ((MR_Word) ((MR_hl_field(0, Var_9, 11))));
  MR_Word Var_37 = ((MR_Word) ((MR_hl_field(0, Var_9, 12))));
  MR_Word Var_38 = ((MR_Word) ((MR_hl_field(0, Var_9, 13))));
  MR_Word Var_39 = ((MR_Word) ((MR_hl_field(0, Var_9, 14))));
  MR_Word Var_40 = ((MR_Word) ((MR_hl_field(0, Var_9, 15))));
  MR_Word Var_41 = ((MR_Word) ((MR_hl_field(0, Var_9, 16))));
  MR_Word Var_42 = ((MR_Word) ((MR_hl_field(0, Var_9, 17))));
  MR_Word Var_43 = ((MR_Word) ((MR_hl_field(0, Var_9, 18))));
  MR_Word Var_44 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 19))) & (MR_Integer) 1);
  MR_Word Var_45 = ((MR_Word) ((MR_hl_field(0, Var_9, 20))));
  MR_Word Var_46 = ((MR_Word) ((MR_hl_field(0, Var_9, 21))));
  MR_Word Var_47 = ((MR_Word) ((MR_hl_field(0, Var_9, 22))));
  MR_Word Var_48 = ((MR_Word) ((MR_hl_field(0, Var_9, 23))));
  MR_Word Var_49 = ((MR_Word) ((MR_hl_field(0, Var_9, 24))));
  MR_Word Var_50 = ((MR_Word) ((MR_hl_field(0, Var_9, 25))));
  MR_Word Var_51 = ((MR_Word) ((MR_hl_field(0, Var_9, 26))));
  MR_Word Var_52 = ((MR_Word) ((MR_hl_field(0, Var_9, 27))));
  MR_Word Var_53 = ((MR_Word) ((MR_hl_field(0, Var_9, 28))));
  MR_Word Var_54 = ((MR_Word) ((MR_hl_field(0, Var_9, 29))));
  MR_Word Var_55 = ((MR_Word) ((MR_hl_field(0, Var_9, 30))));
  MR_Word Var_56 = ((MR_Word) ((MR_hl_field(0, Var_9, 31))));
  MR_Word Var_57 = ((MR_Word) ((MR_hl_field(0, Var_9, 32))));

  {
    Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_10, 0) = ((MR_Box) (Var_22));
    MR_hl_field(0, Var_10, 1) = ((MR_Box) (Var_23));
    MR_hl_field(0, Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_24));
    MR_hl_field(0, Var_10, 3) = ((MR_Box) (Var_25));
    MR_hl_field(0, Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_26));
    MR_hl_field(0, Var_10, 5) = ((MR_Box) (Var_27));
    MR_hl_field(0, Var_10, 6) = ((MR_Box) (Var_28));
    MR_hl_field(0, Var_10, 7) = ((MR_Box) (Var_29));
    MR_hl_field(0, Var_10, 8) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_10, 9) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_10, 10) = (MR_Box) (((((MR_Unsigned) (Var_32) << 3)) | (((((MR_Unsigned) (X_4) << 2)) | (((((MR_Unsigned) (Var_34) << 1)) | (MR_Unsigned) (Var_35)))))));
    MR_hl_field(0, Var_10, 11) = ((MR_Box) (Var_36));
    MR_hl_field(0, Var_10, 12) = ((MR_Box) (Var_37));
    MR_hl_field(0, Var_10, 13) = ((MR_Box) (Var_38));
    MR_hl_field(0, Var_10, 14) = ((MR_Box) (Var_39));
    MR_hl_field(0, Var_10, 15) = ((MR_Box) (Var_40));
    MR_hl_field(0, Var_10, 16) = ((MR_Box) (Var_41));
    MR_hl_field(0, Var_10, 17) = ((MR_Box) (Var_42));
    MR_hl_field(0, Var_10, 18) = ((MR_Box) (Var_43));
    MR_hl_field(0, Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_44));
    MR_hl_field(0, Var_10, 20) = ((MR_Box) (Var_45));
    MR_hl_field(0, Var_10, 21) = ((MR_Box) (Var_46));
    MR_hl_field(0, Var_10, 22) = ((MR_Box) (Var_47));
    MR_hl_field(0, Var_10, 23) = ((MR_Box) (Var_48));
    MR_hl_field(0, Var_10, 24) = ((MR_Box) (Var_49));
    MR_hl_field(0, Var_10, 25) = ((MR_Box) (Var_50));
    MR_hl_field(0, Var_10, 26) = ((MR_Box) (Var_51));
    MR_hl_field(0, Var_10, 27) = ((MR_Box) (Var_52));
    MR_hl_field(0, Var_10, 28) = ((MR_Box) (Var_53));
    MR_hl_field(0, Var_10, 29) = ((MR_Box) (Var_54));
    MR_hl_field(0, Var_10, 30) = ((MR_Box) (Var_55));
    MR_hl_field(0, Var_10, 31) = ((MR_Box) (Var_56));
    MR_hl_field(0, Var_10, 32) = ((MR_Box) (Var_57));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_20));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_10));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_address_taken_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_10;
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_20 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))) & (MR_Integer) 7);
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, Var_9, 0))));
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, Var_9, 1))));
  MR_Word Var_24 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 2))) & (MR_Integer) 1);
  MR_Word Var_25 = ((MR_Word) ((MR_hl_field(0, Var_9, 3))));
  MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 4))) & (MR_Integer) 3);
  MR_Word Var_27 = ((MR_Word) ((MR_hl_field(0, Var_9, 5))));
  MR_Word Var_28 = ((MR_Word) ((MR_hl_field(0, Var_9, 6))));
  MR_Word Var_29 = ((MR_Word) ((MR_hl_field(0, Var_9, 7))));
  MR_Word Var_30 = ((MR_Word) ((MR_hl_field(0, Var_9, 8))));
  MR_Word Var_31 = ((MR_Word) ((MR_hl_field(0, Var_9, 9))));
  MR_Word Var_33 = ((((MR_Unsigned) ((MR_hl_field(0, Var_9, 10))) >> 2)) & (MR_Integer) 1);
  MR_Word Var_34 = ((((MR_Unsigned) ((MR_hl_field(0, Var_9, 10))) >> 1)) & (MR_Integer) 1);
  MR_Word Var_35 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 10))) & (MR_Integer) 1);
  MR_Word Var_36 = ((MR_Word) ((MR_hl_field(0, Var_9, 11))));
  MR_Word Var_37 = ((MR_Word) ((MR_hl_field(0, Var_9, 12))));
  MR_Word Var_38 = ((MR_Word) ((MR_hl_field(0, Var_9, 13))));
  MR_Word Var_39 = ((MR_Word) ((MR_hl_field(0, Var_9, 14))));
  MR_Word Var_40 = ((MR_Word) ((MR_hl_field(0, Var_9, 15))));
  MR_Word Var_41 = ((MR_Word) ((MR_hl_field(0, Var_9, 16))));
  MR_Word Var_42 = ((MR_Word) ((MR_hl_field(0, Var_9, 17))));
  MR_Word Var_43 = ((MR_Word) ((MR_hl_field(0, Var_9, 18))));
  MR_Word Var_44 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 19))) & (MR_Integer) 1);
  MR_Word Var_45 = ((MR_Word) ((MR_hl_field(0, Var_9, 20))));
  MR_Word Var_46 = ((MR_Word) ((MR_hl_field(0, Var_9, 21))));
  MR_Word Var_47 = ((MR_Word) ((MR_hl_field(0, Var_9, 22))));
  MR_Word Var_48 = ((MR_Word) ((MR_hl_field(0, Var_9, 23))));
  MR_Word Var_49 = ((MR_Word) ((MR_hl_field(0, Var_9, 24))));
  MR_Word Var_50 = ((MR_Word) ((MR_hl_field(0, Var_9, 25))));
  MR_Word Var_51 = ((MR_Word) ((MR_hl_field(0, Var_9, 26))));
  MR_Word Var_52 = ((MR_Word) ((MR_hl_field(0, Var_9, 27))));
  MR_Word Var_53 = ((MR_Word) ((MR_hl_field(0, Var_9, 28))));
  MR_Word Var_54 = ((MR_Word) ((MR_hl_field(0, Var_9, 29))));
  MR_Word Var_55 = ((MR_Word) ((MR_hl_field(0, Var_9, 30))));
  MR_Word Var_56 = ((MR_Word) ((MR_hl_field(0, Var_9, 31))));
  MR_Word Var_57 = ((MR_Word) ((MR_hl_field(0, Var_9, 32))));

  {
    Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_10, 0) = ((MR_Box) (Var_22));
    MR_hl_field(0, Var_10, 1) = ((MR_Box) (Var_23));
    MR_hl_field(0, Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_24));
    MR_hl_field(0, Var_10, 3) = ((MR_Box) (Var_25));
    MR_hl_field(0, Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_26));
    MR_hl_field(0, Var_10, 5) = ((MR_Box) (Var_27));
    MR_hl_field(0, Var_10, 6) = ((MR_Box) (Var_28));
    MR_hl_field(0, Var_10, 7) = ((MR_Box) (Var_29));
    MR_hl_field(0, Var_10, 8) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_10, 9) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_10, 10) = (MR_Box) (((((MR_Unsigned) (X_4) << 3)) | (((((MR_Unsigned) (Var_33) << 2)) | (((((MR_Unsigned) (Var_34) << 1)) | (MR_Unsigned) (Var_35)))))));
    MR_hl_field(0, Var_10, 11) = ((MR_Box) (Var_36));
    MR_hl_field(0, Var_10, 12) = ((MR_Box) (Var_37));
    MR_hl_field(0, Var_10, 13) = ((MR_Box) (Var_38));
    MR_hl_field(0, Var_10, 14) = ((MR_Box) (Var_39));
    MR_hl_field(0, Var_10, 15) = ((MR_Box) (Var_40));
    MR_hl_field(0, Var_10, 16) = ((MR_Box) (Var_41));
    MR_hl_field(0, Var_10, 17) = ((MR_Box) (Var_42));
    MR_hl_field(0, Var_10, 18) = ((MR_Box) (Var_43));
    MR_hl_field(0, Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_44));
    MR_hl_field(0, Var_10, 20) = ((MR_Box) (Var_45));
    MR_hl_field(0, Var_10, 21) = ((MR_Box) (Var_46));
    MR_hl_field(0, Var_10, 22) = ((MR_Box) (Var_47));
    MR_hl_field(0, Var_10, 23) = ((MR_Box) (Var_48));
    MR_hl_field(0, Var_10, 24) = ((MR_Box) (Var_49));
    MR_hl_field(0, Var_10, 25) = ((MR_Box) (Var_50));
    MR_hl_field(0, Var_10, 26) = ((MR_Box) (Var_51));
    MR_hl_field(0, Var_10, 27) = ((MR_Box) (Var_52));
    MR_hl_field(0, Var_10, 28) = ((MR_Box) (Var_53));
    MR_hl_field(0, Var_10, 29) = ((MR_Box) (Var_54));
    MR_hl_field(0, Var_10, 30) = ((MR_Box) (Var_55));
    MR_hl_field(0, Var_10, 31) = ((MR_Box) (Var_56));
    MR_hl_field(0, Var_10, 32) = ((MR_Box) (Var_57));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_20));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_10));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_deleted_call_callees_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_10;
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_20 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))) & (MR_Integer) 7);
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, Var_9, 0))));
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, Var_9, 1))));
  MR_Word Var_24 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 2))) & (MR_Integer) 1);
  MR_Word Var_25 = ((MR_Word) ((MR_hl_field(0, Var_9, 3))));
  MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 4))) & (MR_Integer) 3);
  MR_Word Var_27 = ((MR_Word) ((MR_hl_field(0, Var_9, 5))));
  MR_Word Var_28 = ((MR_Word) ((MR_hl_field(0, Var_9, 6))));
  MR_Word Var_29 = ((MR_Word) ((MR_hl_field(0, Var_9, 7))));
  MR_Word Var_30 = ((MR_Word) ((MR_hl_field(0, Var_9, 8))));
  MR_Word Var_36 = ((MR_Word) ((MR_hl_field(0, Var_9, 11))));
  MR_Word Var_37 = ((MR_Word) ((MR_hl_field(0, Var_9, 12))));
  MR_Word Var_38 = ((MR_Word) ((MR_hl_field(0, Var_9, 13))));
  MR_Word Var_39 = ((MR_Word) ((MR_hl_field(0, Var_9, 14))));
  MR_Word Var_40 = ((MR_Word) ((MR_hl_field(0, Var_9, 15))));
  MR_Word Var_41 = ((MR_Word) ((MR_hl_field(0, Var_9, 16))));
  MR_Word Var_42 = ((MR_Word) ((MR_hl_field(0, Var_9, 17))));
  MR_Word Var_43 = ((MR_Word) ((MR_hl_field(0, Var_9, 18))));
  MR_Word Var_44 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 19))) & (MR_Integer) 1);
  MR_Word Var_45 = ((MR_Word) ((MR_hl_field(0, Var_9, 20))));
  MR_Word Var_46 = ((MR_Word) ((MR_hl_field(0, Var_9, 21))));
  MR_Word Var_47 = ((MR_Word) ((MR_hl_field(0, Var_9, 22))));
  MR_Word Var_48 = ((MR_Word) ((MR_hl_field(0, Var_9, 23))));
  MR_Word Var_49 = ((MR_Word) ((MR_hl_field(0, Var_9, 24))));
  MR_Word Var_50 = ((MR_Word) ((MR_hl_field(0, Var_9, 25))));
  MR_Word Var_51 = ((MR_Word) ((MR_hl_field(0, Var_9, 26))));
  MR_Word Var_52 = ((MR_Word) ((MR_hl_field(0, Var_9, 27))));
  MR_Word Var_53 = ((MR_Word) ((MR_hl_field(0, Var_9, 28))));
  MR_Word Var_54 = ((MR_Word) ((MR_hl_field(0, Var_9, 29))));
  MR_Word Var_55 = ((MR_Word) ((MR_hl_field(0, Var_9, 30))));
  MR_Word Var_56 = ((MR_Word) ((MR_hl_field(0, Var_9, 31))));
  MR_Word Var_57 = ((MR_Word) ((MR_hl_field(0, Var_9, 32))));
  MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(0, Var_9, 10)));

  {
    Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_10, 0) = ((MR_Box) (Var_22));
    MR_hl_field(0, Var_10, 1) = ((MR_Box) (Var_23));
    MR_hl_field(0, Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_24));
    MR_hl_field(0, Var_10, 3) = ((MR_Box) (Var_25));
    MR_hl_field(0, Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_26));
    MR_hl_field(0, Var_10, 5) = ((MR_Box) (Var_27));
    MR_hl_field(0, Var_10, 6) = ((MR_Box) (Var_28));
    MR_hl_field(0, Var_10, 7) = ((MR_Box) (Var_29));
    MR_hl_field(0, Var_10, 8) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_10, 9) = ((MR_Box) (X_4));
    MR_hl_field(0, Var_10, 10) = (MR_Box) (packed_word_3);
    MR_hl_field(0, Var_10, 11) = ((MR_Box) (Var_36));
    MR_hl_field(0, Var_10, 12) = ((MR_Box) (Var_37));
    MR_hl_field(0, Var_10, 13) = ((MR_Box) (Var_38));
    MR_hl_field(0, Var_10, 14) = ((MR_Box) (Var_39));
    MR_hl_field(0, Var_10, 15) = ((MR_Box) (Var_40));
    MR_hl_field(0, Var_10, 16) = ((MR_Box) (Var_41));
    MR_hl_field(0, Var_10, 17) = ((MR_Box) (Var_42));
    MR_hl_field(0, Var_10, 18) = ((MR_Box) (Var_43));
    MR_hl_field(0, Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_44));
    MR_hl_field(0, Var_10, 20) = ((MR_Box) (Var_45));
    MR_hl_field(0, Var_10, 21) = ((MR_Box) (Var_46));
    MR_hl_field(0, Var_10, 22) = ((MR_Box) (Var_47));
    MR_hl_field(0, Var_10, 23) = ((MR_Box) (Var_48));
    MR_hl_field(0, Var_10, 24) = ((MR_Box) (Var_49));
    MR_hl_field(0, Var_10, 25) = ((MR_Box) (Var_50));
    MR_hl_field(0, Var_10, 26) = ((MR_Box) (Var_51));
    MR_hl_field(0, Var_10, 27) = ((MR_Box) (Var_52));
    MR_hl_field(0, Var_10, 28) = ((MR_Box) (Var_53));
    MR_hl_field(0, Var_10, 29) = ((MR_Box) (Var_54));
    MR_hl_field(0, Var_10, 30) = ((MR_Box) (Var_55));
    MR_hl_field(0, Var_10, 31) = ((MR_Box) (Var_56));
    MR_hl_field(0, Var_10, 32) = ((MR_Box) (Var_57));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_20));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_10));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_statevar_warnings_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_10;
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_20 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))) & (MR_Integer) 7);
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, Var_9, 0))));
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, Var_9, 1))));
  MR_Word Var_24 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 2))) & (MR_Integer) 1);
  MR_Word Var_25 = ((MR_Word) ((MR_hl_field(0, Var_9, 3))));
  MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 4))) & (MR_Integer) 3);
  MR_Word Var_27 = ((MR_Word) ((MR_hl_field(0, Var_9, 5))));
  MR_Word Var_28 = ((MR_Word) ((MR_hl_field(0, Var_9, 6))));
  MR_Word Var_29 = ((MR_Word) ((MR_hl_field(0, Var_9, 7))));
  MR_Word Var_31 = ((MR_Word) ((MR_hl_field(0, Var_9, 9))));
  MR_Word Var_36 = ((MR_Word) ((MR_hl_field(0, Var_9, 11))));
  MR_Word Var_37 = ((MR_Word) ((MR_hl_field(0, Var_9, 12))));
  MR_Word Var_38 = ((MR_Word) ((MR_hl_field(0, Var_9, 13))));
  MR_Word Var_39 = ((MR_Word) ((MR_hl_field(0, Var_9, 14))));
  MR_Word Var_40 = ((MR_Word) ((MR_hl_field(0, Var_9, 15))));
  MR_Word Var_41 = ((MR_Word) ((MR_hl_field(0, Var_9, 16))));
  MR_Word Var_42 = ((MR_Word) ((MR_hl_field(0, Var_9, 17))));
  MR_Word Var_43 = ((MR_Word) ((MR_hl_field(0, Var_9, 18))));
  MR_Word Var_44 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 19))) & (MR_Integer) 1);
  MR_Word Var_45 = ((MR_Word) ((MR_hl_field(0, Var_9, 20))));
  MR_Word Var_46 = ((MR_Word) ((MR_hl_field(0, Var_9, 21))));
  MR_Word Var_47 = ((MR_Word) ((MR_hl_field(0, Var_9, 22))));
  MR_Word Var_48 = ((MR_Word) ((MR_hl_field(0, Var_9, 23))));
  MR_Word Var_49 = ((MR_Word) ((MR_hl_field(0, Var_9, 24))));
  MR_Word Var_50 = ((MR_Word) ((MR_hl_field(0, Var_9, 25))));
  MR_Word Var_51 = ((MR_Word) ((MR_hl_field(0, Var_9, 26))));
  MR_Word Var_52 = ((MR_Word) ((MR_hl_field(0, Var_9, 27))));
  MR_Word Var_53 = ((MR_Word) ((MR_hl_field(0, Var_9, 28))));
  MR_Word Var_54 = ((MR_Word) ((MR_hl_field(0, Var_9, 29))));
  MR_Word Var_55 = ((MR_Word) ((MR_hl_field(0, Var_9, 30))));
  MR_Word Var_56 = ((MR_Word) ((MR_hl_field(0, Var_9, 31))));
  MR_Word Var_57 = ((MR_Word) ((MR_hl_field(0, Var_9, 32))));
  MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(0, Var_9, 10)));

  {
    Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_10, 0) = ((MR_Box) (Var_22));
    MR_hl_field(0, Var_10, 1) = ((MR_Box) (Var_23));
    MR_hl_field(0, Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_24));
    MR_hl_field(0, Var_10, 3) = ((MR_Box) (Var_25));
    MR_hl_field(0, Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_26));
    MR_hl_field(0, Var_10, 5) = ((MR_Box) (Var_27));
    MR_hl_field(0, Var_10, 6) = ((MR_Box) (Var_28));
    MR_hl_field(0, Var_10, 7) = ((MR_Box) (Var_29));
    MR_hl_field(0, Var_10, 8) = ((MR_Box) (X_4));
    MR_hl_field(0, Var_10, 9) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_10, 10) = (MR_Box) (packed_word_3);
    MR_hl_field(0, Var_10, 11) = ((MR_Box) (Var_36));
    MR_hl_field(0, Var_10, 12) = ((MR_Box) (Var_37));
    MR_hl_field(0, Var_10, 13) = ((MR_Box) (Var_38));
    MR_hl_field(0, Var_10, 14) = ((MR_Box) (Var_39));
    MR_hl_field(0, Var_10, 15) = ((MR_Box) (Var_40));
    MR_hl_field(0, Var_10, 16) = ((MR_Box) (Var_41));
    MR_hl_field(0, Var_10, 17) = ((MR_Box) (Var_42));
    MR_hl_field(0, Var_10, 18) = ((MR_Box) (Var_43));
    MR_hl_field(0, Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_44));
    MR_hl_field(0, Var_10, 20) = ((MR_Box) (Var_45));
    MR_hl_field(0, Var_10, 21) = ((MR_Box) (Var_46));
    MR_hl_field(0, Var_10, 22) = ((MR_Box) (Var_47));
    MR_hl_field(0, Var_10, 23) = ((MR_Box) (Var_48));
    MR_hl_field(0, Var_10, 24) = ((MR_Box) (Var_49));
    MR_hl_field(0, Var_10, 25) = ((MR_Box) (Var_50));
    MR_hl_field(0, Var_10, 26) = ((MR_Box) (Var_51));
    MR_hl_field(0, Var_10, 27) = ((MR_Box) (Var_52));
    MR_hl_field(0, Var_10, 28) = ((MR_Box) (Var_53));
    MR_hl_field(0, Var_10, 29) = ((MR_Box) (Var_54));
    MR_hl_field(0, Var_10, 30) = ((MR_Box) (Var_55));
    MR_hl_field(0, Var_10, 31) = ((MR_Box) (Var_56));
    MR_hl_field(0, Var_10, 32) = ((MR_Box) (Var_57));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_20));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_10));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_var_name_remap_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_10;
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_20 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))) & (MR_Integer) 7);
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, Var_9, 0))));
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, Var_9, 1))));
  MR_Word Var_24 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 2))) & (MR_Integer) 1);
  MR_Word Var_25 = ((MR_Word) ((MR_hl_field(0, Var_9, 3))));
  MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 4))) & (MR_Integer) 3);
  MR_Word Var_27 = ((MR_Word) ((MR_hl_field(0, Var_9, 5))));
  MR_Word Var_28 = ((MR_Word) ((MR_hl_field(0, Var_9, 6))));
  MR_Word Var_30 = ((MR_Word) ((MR_hl_field(0, Var_9, 8))));
  MR_Word Var_31 = ((MR_Word) ((MR_hl_field(0, Var_9, 9))));
  MR_Word Var_36 = ((MR_Word) ((MR_hl_field(0, Var_9, 11))));
  MR_Word Var_37 = ((MR_Word) ((MR_hl_field(0, Var_9, 12))));
  MR_Word Var_38 = ((MR_Word) ((MR_hl_field(0, Var_9, 13))));
  MR_Word Var_39 = ((MR_Word) ((MR_hl_field(0, Var_9, 14))));
  MR_Word Var_40 = ((MR_Word) ((MR_hl_field(0, Var_9, 15))));
  MR_Word Var_41 = ((MR_Word) ((MR_hl_field(0, Var_9, 16))));
  MR_Word Var_42 = ((MR_Word) ((MR_hl_field(0, Var_9, 17))));
  MR_Word Var_43 = ((MR_Word) ((MR_hl_field(0, Var_9, 18))));
  MR_Word Var_44 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 19))) & (MR_Integer) 1);
  MR_Word Var_45 = ((MR_Word) ((MR_hl_field(0, Var_9, 20))));
  MR_Word Var_46 = ((MR_Word) ((MR_hl_field(0, Var_9, 21))));
  MR_Word Var_47 = ((MR_Word) ((MR_hl_field(0, Var_9, 22))));
  MR_Word Var_48 = ((MR_Word) ((MR_hl_field(0, Var_9, 23))));
  MR_Word Var_49 = ((MR_Word) ((MR_hl_field(0, Var_9, 24))));
  MR_Word Var_50 = ((MR_Word) ((MR_hl_field(0, Var_9, 25))));
  MR_Word Var_51 = ((MR_Word) ((MR_hl_field(0, Var_9, 26))));
  MR_Word Var_52 = ((MR_Word) ((MR_hl_field(0, Var_9, 27))));
  MR_Word Var_53 = ((MR_Word) ((MR_hl_field(0, Var_9, 28))));
  MR_Word Var_54 = ((MR_Word) ((MR_hl_field(0, Var_9, 29))));
  MR_Word Var_55 = ((MR_Word) ((MR_hl_field(0, Var_9, 30))));
  MR_Word Var_56 = ((MR_Word) ((MR_hl_field(0, Var_9, 31))));
  MR_Word Var_57 = ((MR_Word) ((MR_hl_field(0, Var_9, 32))));
  MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(0, Var_9, 10)));

  {
    Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_10, 0) = ((MR_Box) (Var_22));
    MR_hl_field(0, Var_10, 1) = ((MR_Box) (Var_23));
    MR_hl_field(0, Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_24));
    MR_hl_field(0, Var_10, 3) = ((MR_Box) (Var_25));
    MR_hl_field(0, Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_26));
    MR_hl_field(0, Var_10, 5) = ((MR_Box) (Var_27));
    MR_hl_field(0, Var_10, 6) = ((MR_Box) (Var_28));
    MR_hl_field(0, Var_10, 7) = ((MR_Box) (X_4));
    MR_hl_field(0, Var_10, 8) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_10, 9) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_10, 10) = (MR_Box) (packed_word_3);
    MR_hl_field(0, Var_10, 11) = ((MR_Box) (Var_36));
    MR_hl_field(0, Var_10, 12) = ((MR_Box) (Var_37));
    MR_hl_field(0, Var_10, 13) = ((MR_Box) (Var_38));
    MR_hl_field(0, Var_10, 14) = ((MR_Box) (Var_39));
    MR_hl_field(0, Var_10, 15) = ((MR_Box) (Var_40));
    MR_hl_field(0, Var_10, 16) = ((MR_Box) (Var_41));
    MR_hl_field(0, Var_10, 17) = ((MR_Box) (Var_42));
    MR_hl_field(0, Var_10, 18) = ((MR_Box) (Var_43));
    MR_hl_field(0, Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_44));
    MR_hl_field(0, Var_10, 20) = ((MR_Box) (Var_45));
    MR_hl_field(0, Var_10, 21) = ((MR_Box) (Var_46));
    MR_hl_field(0, Var_10, 22) = ((MR_Box) (Var_47));
    MR_hl_field(0, Var_10, 23) = ((MR_Box) (Var_48));
    MR_hl_field(0, Var_10, 24) = ((MR_Box) (Var_49));
    MR_hl_field(0, Var_10, 25) = ((MR_Box) (Var_50));
    MR_hl_field(0, Var_10, 26) = ((MR_Box) (Var_51));
    MR_hl_field(0, Var_10, 27) = ((MR_Box) (Var_52));
    MR_hl_field(0, Var_10, 28) = ((MR_Box) (Var_53));
    MR_hl_field(0, Var_10, 29) = ((MR_Box) (Var_54));
    MR_hl_field(0, Var_10, 30) = ((MR_Box) (Var_55));
    MR_hl_field(0, Var_10, 31) = ((MR_Box) (Var_56));
    MR_hl_field(0, Var_10, 32) = ((MR_Box) (Var_57));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_20));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_10));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_maybe_untuple_info_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_10;
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_20 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))) & (MR_Integer) 7);
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, Var_9, 0))));
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, Var_9, 1))));
  MR_Word Var_24 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 2))) & (MR_Integer) 1);
  MR_Word Var_25 = ((MR_Word) ((MR_hl_field(0, Var_9, 3))));
  MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 4))) & (MR_Integer) 3);
  MR_Word Var_27 = ((MR_Word) ((MR_hl_field(0, Var_9, 5))));
  MR_Word Var_29 = ((MR_Word) ((MR_hl_field(0, Var_9, 7))));
  MR_Word Var_30 = ((MR_Word) ((MR_hl_field(0, Var_9, 8))));
  MR_Word Var_31 = ((MR_Word) ((MR_hl_field(0, Var_9, 9))));
  MR_Word Var_36 = ((MR_Word) ((MR_hl_field(0, Var_9, 11))));
  MR_Word Var_37 = ((MR_Word) ((MR_hl_field(0, Var_9, 12))));
  MR_Word Var_38 = ((MR_Word) ((MR_hl_field(0, Var_9, 13))));
  MR_Word Var_39 = ((MR_Word) ((MR_hl_field(0, Var_9, 14))));
  MR_Word Var_40 = ((MR_Word) ((MR_hl_field(0, Var_9, 15))));
  MR_Word Var_41 = ((MR_Word) ((MR_hl_field(0, Var_9, 16))));
  MR_Word Var_42 = ((MR_Word) ((MR_hl_field(0, Var_9, 17))));
  MR_Word Var_43 = ((MR_Word) ((MR_hl_field(0, Var_9, 18))));
  MR_Word Var_44 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 19))) & (MR_Integer) 1);
  MR_Word Var_45 = ((MR_Word) ((MR_hl_field(0, Var_9, 20))));
  MR_Word Var_46 = ((MR_Word) ((MR_hl_field(0, Var_9, 21))));
  MR_Word Var_47 = ((MR_Word) ((MR_hl_field(0, Var_9, 22))));
  MR_Word Var_48 = ((MR_Word) ((MR_hl_field(0, Var_9, 23))));
  MR_Word Var_49 = ((MR_Word) ((MR_hl_field(0, Var_9, 24))));
  MR_Word Var_50 = ((MR_Word) ((MR_hl_field(0, Var_9, 25))));
  MR_Word Var_51 = ((MR_Word) ((MR_hl_field(0, Var_9, 26))));
  MR_Word Var_52 = ((MR_Word) ((MR_hl_field(0, Var_9, 27))));
  MR_Word Var_53 = ((MR_Word) ((MR_hl_field(0, Var_9, 28))));
  MR_Word Var_54 = ((MR_Word) ((MR_hl_field(0, Var_9, 29))));
  MR_Word Var_55 = ((MR_Word) ((MR_hl_field(0, Var_9, 30))));
  MR_Word Var_56 = ((MR_Word) ((MR_hl_field(0, Var_9, 31))));
  MR_Word Var_57 = ((MR_Word) ((MR_hl_field(0, Var_9, 32))));
  MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(0, Var_9, 10)));

  {
    Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_10, 0) = ((MR_Box) (Var_22));
    MR_hl_field(0, Var_10, 1) = ((MR_Box) (Var_23));
    MR_hl_field(0, Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_24));
    MR_hl_field(0, Var_10, 3) = ((MR_Box) (Var_25));
    MR_hl_field(0, Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_26));
    MR_hl_field(0, Var_10, 5) = ((MR_Box) (Var_27));
    MR_hl_field(0, Var_10, 6) = ((MR_Box) (X_4));
    MR_hl_field(0, Var_10, 7) = ((MR_Box) (Var_29));
    MR_hl_field(0, Var_10, 8) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_10, 9) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_10, 10) = (MR_Box) (packed_word_3);
    MR_hl_field(0, Var_10, 11) = ((MR_Box) (Var_36));
    MR_hl_field(0, Var_10, 12) = ((MR_Box) (Var_37));
    MR_hl_field(0, Var_10, 13) = ((MR_Box) (Var_38));
    MR_hl_field(0, Var_10, 14) = ((MR_Box) (Var_39));
    MR_hl_field(0, Var_10, 15) = ((MR_Box) (Var_40));
    MR_hl_field(0, Var_10, 16) = ((MR_Box) (Var_41));
    MR_hl_field(0, Var_10, 17) = ((MR_Box) (Var_42));
    MR_hl_field(0, Var_10, 18) = ((MR_Box) (Var_43));
    MR_hl_field(0, Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_44));
    MR_hl_field(0, Var_10, 20) = ((MR_Box) (Var_45));
    MR_hl_field(0, Var_10, 21) = ((MR_Box) (Var_46));
    MR_hl_field(0, Var_10, 22) = ((MR_Box) (Var_47));
    MR_hl_field(0, Var_10, 23) = ((MR_Box) (Var_48));
    MR_hl_field(0, Var_10, 24) = ((MR_Box) (Var_49));
    MR_hl_field(0, Var_10, 25) = ((MR_Box) (Var_50));
    MR_hl_field(0, Var_10, 26) = ((MR_Box) (Var_51));
    MR_hl_field(0, Var_10, 27) = ((MR_Box) (Var_52));
    MR_hl_field(0, Var_10, 28) = ((MR_Box) (Var_53));
    MR_hl_field(0, Var_10, 29) = ((MR_Box) (Var_54));
    MR_hl_field(0, Var_10, 30) = ((MR_Box) (Var_55));
    MR_hl_field(0, Var_10, 31) = ((MR_Box) (Var_56));
    MR_hl_field(0, Var_10, 32) = ((MR_Box) (Var_57));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_20));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_10));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_cse_nopull_contexts_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_10;
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_20 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))) & (MR_Integer) 7);
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, Var_9, 0))));
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, Var_9, 1))));
  MR_Word Var_24 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 2))) & (MR_Integer) 1);
  MR_Word Var_25 = ((MR_Word) ((MR_hl_field(0, Var_9, 3))));
  MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 4))) & (MR_Integer) 3);
  MR_Word Var_28 = ((MR_Word) ((MR_hl_field(0, Var_9, 6))));
  MR_Word Var_29 = ((MR_Word) ((MR_hl_field(0, Var_9, 7))));
  MR_Word Var_30 = ((MR_Word) ((MR_hl_field(0, Var_9, 8))));
  MR_Word Var_31 = ((MR_Word) ((MR_hl_field(0, Var_9, 9))));
  MR_Word Var_36 = ((MR_Word) ((MR_hl_field(0, Var_9, 11))));
  MR_Word Var_37 = ((MR_Word) ((MR_hl_field(0, Var_9, 12))));
  MR_Word Var_38 = ((MR_Word) ((MR_hl_field(0, Var_9, 13))));
  MR_Word Var_39 = ((MR_Word) ((MR_hl_field(0, Var_9, 14))));
  MR_Word Var_40 = ((MR_Word) ((MR_hl_field(0, Var_9, 15))));
  MR_Word Var_41 = ((MR_Word) ((MR_hl_field(0, Var_9, 16))));
  MR_Word Var_42 = ((MR_Word) ((MR_hl_field(0, Var_9, 17))));
  MR_Word Var_43 = ((MR_Word) ((MR_hl_field(0, Var_9, 18))));
  MR_Word Var_44 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 19))) & (MR_Integer) 1);
  MR_Word Var_45 = ((MR_Word) ((MR_hl_field(0, Var_9, 20))));
  MR_Word Var_46 = ((MR_Word) ((MR_hl_field(0, Var_9, 21))));
  MR_Word Var_47 = ((MR_Word) ((MR_hl_field(0, Var_9, 22))));
  MR_Word Var_48 = ((MR_Word) ((MR_hl_field(0, Var_9, 23))));
  MR_Word Var_49 = ((MR_Word) ((MR_hl_field(0, Var_9, 24))));
  MR_Word Var_50 = ((MR_Word) ((MR_hl_field(0, Var_9, 25))));
  MR_Word Var_51 = ((MR_Word) ((MR_hl_field(0, Var_9, 26))));
  MR_Word Var_52 = ((MR_Word) ((MR_hl_field(0, Var_9, 27))));
  MR_Word Var_53 = ((MR_Word) ((MR_hl_field(0, Var_9, 28))));
  MR_Word Var_54 = ((MR_Word) ((MR_hl_field(0, Var_9, 29))));
  MR_Word Var_55 = ((MR_Word) ((MR_hl_field(0, Var_9, 30))));
  MR_Word Var_56 = ((MR_Word) ((MR_hl_field(0, Var_9, 31))));
  MR_Word Var_57 = ((MR_Word) ((MR_hl_field(0, Var_9, 32))));
  MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(0, Var_9, 10)));

  {
    Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_10, 0) = ((MR_Box) (Var_22));
    MR_hl_field(0, Var_10, 1) = ((MR_Box) (Var_23));
    MR_hl_field(0, Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_24));
    MR_hl_field(0, Var_10, 3) = ((MR_Box) (Var_25));
    MR_hl_field(0, Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_26));
    MR_hl_field(0, Var_10, 5) = ((MR_Box) (X_4));
    MR_hl_field(0, Var_10, 6) = ((MR_Box) (Var_28));
    MR_hl_field(0, Var_10, 7) = ((MR_Box) (Var_29));
    MR_hl_field(0, Var_10, 8) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_10, 9) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_10, 10) = (MR_Box) (packed_word_3);
    MR_hl_field(0, Var_10, 11) = ((MR_Box) (Var_36));
    MR_hl_field(0, Var_10, 12) = ((MR_Box) (Var_37));
    MR_hl_field(0, Var_10, 13) = ((MR_Box) (Var_38));
    MR_hl_field(0, Var_10, 14) = ((MR_Box) (Var_39));
    MR_hl_field(0, Var_10, 15) = ((MR_Box) (Var_40));
    MR_hl_field(0, Var_10, 16) = ((MR_Box) (Var_41));
    MR_hl_field(0, Var_10, 17) = ((MR_Box) (Var_42));
    MR_hl_field(0, Var_10, 18) = ((MR_Box) (Var_43));
    MR_hl_field(0, Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_44));
    MR_hl_field(0, Var_10, 20) = ((MR_Box) (Var_45));
    MR_hl_field(0, Var_10, 21) = ((MR_Box) (Var_46));
    MR_hl_field(0, Var_10, 22) = ((MR_Box) (Var_47));
    MR_hl_field(0, Var_10, 23) = ((MR_Box) (Var_48));
    MR_hl_field(0, Var_10, 24) = ((MR_Box) (Var_49));
    MR_hl_field(0, Var_10, 25) = ((MR_Box) (Var_50));
    MR_hl_field(0, Var_10, 26) = ((MR_Box) (Var_51));
    MR_hl_field(0, Var_10, 27) = ((MR_Box) (Var_52));
    MR_hl_field(0, Var_10, 28) = ((MR_Box) (Var_53));
    MR_hl_field(0, Var_10, 29) = ((MR_Box) (Var_54));
    MR_hl_field(0, Var_10, 30) = ((MR_Box) (Var_55));
    MR_hl_field(0, Var_10, 31) = ((MR_Box) (Var_56));
    MR_hl_field(0, Var_10, 32) = ((MR_Box) (Var_57));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_20));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_10));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_detism_decl_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_10;
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_20 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))) & (MR_Integer) 7);
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, Var_9, 0))));
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, Var_9, 1))));
  MR_Word Var_24 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 2))) & (MR_Integer) 1);
  MR_Word Var_25 = ((MR_Word) ((MR_hl_field(0, Var_9, 3))));
  MR_Word Var_27 = ((MR_Word) ((MR_hl_field(0, Var_9, 5))));
  MR_Word Var_28 = ((MR_Word) ((MR_hl_field(0, Var_9, 6))));
  MR_Word Var_29 = ((MR_Word) ((MR_hl_field(0, Var_9, 7))));
  MR_Word Var_30 = ((MR_Word) ((MR_hl_field(0, Var_9, 8))));
  MR_Word Var_31 = ((MR_Word) ((MR_hl_field(0, Var_9, 9))));
  MR_Word Var_36 = ((MR_Word) ((MR_hl_field(0, Var_9, 11))));
  MR_Word Var_37 = ((MR_Word) ((MR_hl_field(0, Var_9, 12))));
  MR_Word Var_38 = ((MR_Word) ((MR_hl_field(0, Var_9, 13))));
  MR_Word Var_39 = ((MR_Word) ((MR_hl_field(0, Var_9, 14))));
  MR_Word Var_40 = ((MR_Word) ((MR_hl_field(0, Var_9, 15))));
  MR_Word Var_41 = ((MR_Word) ((MR_hl_field(0, Var_9, 16))));
  MR_Word Var_42 = ((MR_Word) ((MR_hl_field(0, Var_9, 17))));
  MR_Word Var_43 = ((MR_Word) ((MR_hl_field(0, Var_9, 18))));
  MR_Word Var_44 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 19))) & (MR_Integer) 1);
  MR_Word Var_45 = ((MR_Word) ((MR_hl_field(0, Var_9, 20))));
  MR_Word Var_46 = ((MR_Word) ((MR_hl_field(0, Var_9, 21))));
  MR_Word Var_47 = ((MR_Word) ((MR_hl_field(0, Var_9, 22))));
  MR_Word Var_48 = ((MR_Word) ((MR_hl_field(0, Var_9, 23))));
  MR_Word Var_49 = ((MR_Word) ((MR_hl_field(0, Var_9, 24))));
  MR_Word Var_50 = ((MR_Word) ((MR_hl_field(0, Var_9, 25))));
  MR_Word Var_51 = ((MR_Word) ((MR_hl_field(0, Var_9, 26))));
  MR_Word Var_52 = ((MR_Word) ((MR_hl_field(0, Var_9, 27))));
  MR_Word Var_53 = ((MR_Word) ((MR_hl_field(0, Var_9, 28))));
  MR_Word Var_54 = ((MR_Word) ((MR_hl_field(0, Var_9, 29))));
  MR_Word Var_55 = ((MR_Word) ((MR_hl_field(0, Var_9, 30))));
  MR_Word Var_56 = ((MR_Word) ((MR_hl_field(0, Var_9, 31))));
  MR_Word Var_57 = ((MR_Word) ((MR_hl_field(0, Var_9, 32))));
  MR_Unsigned packed_word_2 = (MR_Unsigned) ((MR_hl_field(0, Var_9, 10)));

  {
    Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_10, 0) = ((MR_Box) (Var_22));
    MR_hl_field(0, Var_10, 1) = ((MR_Box) (Var_23));
    MR_hl_field(0, Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_24));
    MR_hl_field(0, Var_10, 3) = ((MR_Box) (Var_25));
    MR_hl_field(0, Var_10, 4) = (MR_Box) ((MR_Unsigned) (X_4));
    MR_hl_field(0, Var_10, 5) = ((MR_Box) (Var_27));
    MR_hl_field(0, Var_10, 6) = ((MR_Box) (Var_28));
    MR_hl_field(0, Var_10, 7) = ((MR_Box) (Var_29));
    MR_hl_field(0, Var_10, 8) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_10, 9) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_10, 10) = (MR_Box) (packed_word_2);
    MR_hl_field(0, Var_10, 11) = ((MR_Box) (Var_36));
    MR_hl_field(0, Var_10, 12) = ((MR_Box) (Var_37));
    MR_hl_field(0, Var_10, 13) = ((MR_Box) (Var_38));
    MR_hl_field(0, Var_10, 14) = ((MR_Box) (Var_39));
    MR_hl_field(0, Var_10, 15) = ((MR_Box) (Var_40));
    MR_hl_field(0, Var_10, 16) = ((MR_Box) (Var_41));
    MR_hl_field(0, Var_10, 17) = ((MR_Box) (Var_42));
    MR_hl_field(0, Var_10, 18) = ((MR_Box) (Var_43));
    MR_hl_field(0, Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_44));
    MR_hl_field(0, Var_10, 20) = ((MR_Box) (Var_45));
    MR_hl_field(0, Var_10, 21) = ((MR_Box) (Var_46));
    MR_hl_field(0, Var_10, 22) = ((MR_Box) (Var_47));
    MR_hl_field(0, Var_10, 23) = ((MR_Box) (Var_48));
    MR_hl_field(0, Var_10, 24) = ((MR_Box) (Var_49));
    MR_hl_field(0, Var_10, 25) = ((MR_Box) (Var_50));
    MR_hl_field(0, Var_10, 26) = ((MR_Box) (Var_51));
    MR_hl_field(0, Var_10, 27) = ((MR_Box) (Var_52));
    MR_hl_field(0, Var_10, 28) = ((MR_Box) (Var_53));
    MR_hl_field(0, Var_10, 29) = ((MR_Box) (Var_54));
    MR_hl_field(0, Var_10, 30) = ((MR_Box) (Var_55));
    MR_hl_field(0, Var_10, 31) = ((MR_Box) (Var_56));
    MR_hl_field(0, Var_10, 32) = ((MR_Box) (Var_57));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_20));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_10));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_head_modes_constraint_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_9;
  MR_Word Var_10;
  MR_Word Var_11;
  MR_Word Var_12;
  MR_Word Var_13;
  MR_Word Var_14;
  MR_Word Var_15;
  MR_Word Var_16;
  MR_Word Var_17;
  MR_Word Var_18;
  MR_Word Var_19;
  MR_Word Var_20;
  MR_Word Var_21;
  MR_Word Var_22;
  MR_Word Var_23;
  MR_Word Var_24;
  MR_Word Var_25;
  MR_Word Var_27;
  MR_Word Var_28;
  MR_Word Var_29;
  MR_Word Var_30;
  MR_Word Var_31;
  MR_Word Var_32;
  MR_Word Var_37;
  MR_Word Var_38;
  MR_Word Var_39;
  MR_Word Var_40;
  MR_Word Var_41;
  MR_Word Var_42;
  MR_Word Var_43;
  MR_Word Var_44;
  MR_Word Var_45;
  MR_Word Var_46;
  MR_Word Var_47;
  MR_Word Var_48;
  MR_Word Var_49;
  MR_Word Var_50;
  MR_Word Var_51;
  MR_Word Var_52;
  MR_Word Var_53;
  MR_Word Var_54;
  MR_Word Var_55;
  MR_Word Var_56;
  MR_Word Var_57;
  MR_Word Var_58;
  MR_Unsigned packed_word_3;

  {
    Var_9 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (1 * sizeof(MR_Word)), NULL, NULL));
    MR_hl_field(1, Var_9, 0) = ((MR_Box) (X_4));
  }
  Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))));
  Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  Var_20 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  Var_21 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))) & (MR_Integer) 7);
  Var_22 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  Var_10 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  Var_23 = ((MR_Word) ((MR_hl_field(0, Var_10, 0))));
  Var_24 = ((MR_Word) ((MR_hl_field(0, Var_10, 1))));
  Var_25 = ((MR_Unsigned) ((MR_hl_field(0, Var_10, 2))) & (MR_Integer) 1);
  Var_27 = ((MR_Unsigned) ((MR_hl_field(0, Var_10, 4))) & (MR_Integer) 3);
  Var_28 = ((MR_Word) ((MR_hl_field(0, Var_10, 5))));
  Var_29 = ((MR_Word) ((MR_hl_field(0, Var_10, 6))));
  Var_30 = ((MR_Word) ((MR_hl_field(0, Var_10, 7))));
  Var_31 = ((MR_Word) ((MR_hl_field(0, Var_10, 8))));
  Var_32 = ((MR_Word) ((MR_hl_field(0, Var_10, 9))));
  packed_word_3 = (MR_Unsigned) ((MR_hl_field(0, Var_10, 10)));
  Var_37 = ((MR_Word) ((MR_hl_field(0, Var_10, 11))));
  Var_38 = ((MR_Word) ((MR_hl_field(0, Var_10, 12))));
  Var_39 = ((MR_Word) ((MR_hl_field(0, Var_10, 13))));
  Var_40 = ((MR_Word) ((MR_hl_field(0, Var_10, 14))));
  Var_41 = ((MR_Word) ((MR_hl_field(0, Var_10, 15))));
  Var_42 = ((MR_Word) ((MR_hl_field(0, Var_10, 16))));
  Var_43 = ((MR_Word) ((MR_hl_field(0, Var_10, 17))));
  Var_44 = ((MR_Word) ((MR_hl_field(0, Var_10, 18))));
  Var_45 = ((MR_Unsigned) ((MR_hl_field(0, Var_10, 19))) & (MR_Integer) 1);
  Var_46 = ((MR_Word) ((MR_hl_field(0, Var_10, 20))));
  Var_47 = ((MR_Word) ((MR_hl_field(0, Var_10, 21))));
  Var_48 = ((MR_Word) ((MR_hl_field(0, Var_10, 22))));
  Var_49 = ((MR_Word) ((MR_hl_field(0, Var_10, 23))));
  Var_50 = ((MR_Word) ((MR_hl_field(0, Var_10, 24))));
  Var_51 = ((MR_Word) ((MR_hl_field(0, Var_10, 25))));
  Var_52 = ((MR_Word) ((MR_hl_field(0, Var_10, 26))));
  Var_53 = ((MR_Word) ((MR_hl_field(0, Var_10, 27))));
  Var_54 = ((MR_Word) ((MR_hl_field(0, Var_10, 28))));
  Var_55 = ((MR_Word) ((MR_hl_field(0, Var_10, 29))));
  Var_56 = ((MR_Word) ((MR_hl_field(0, Var_10, 30))));
  Var_57 = ((MR_Word) ((MR_hl_field(0, Var_10, 31))));
  Var_58 = ((MR_Word) ((MR_hl_field(0, Var_10, 32))));
  {
    Var_11 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_11, 0) = ((MR_Box) (Var_23));
    MR_hl_field(0, Var_11, 1) = ((MR_Box) (Var_24));
    MR_hl_field(0, Var_11, 2) = (MR_Box) ((MR_Unsigned) (Var_25));
    MR_hl_field(0, Var_11, 3) = ((MR_Box) (Var_9));
    MR_hl_field(0, Var_11, 4) = (MR_Box) ((MR_Unsigned) (Var_27));
    MR_hl_field(0, Var_11, 5) = ((MR_Box) (Var_28));
    MR_hl_field(0, Var_11, 6) = ((MR_Box) (Var_29));
    MR_hl_field(0, Var_11, 7) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_11, 8) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_11, 9) = ((MR_Box) (Var_32));
    MR_hl_field(0, Var_11, 10) = (MR_Box) (packed_word_3);
    MR_hl_field(0, Var_11, 11) = ((MR_Box) (Var_37));
    MR_hl_field(0, Var_11, 12) = ((MR_Box) (Var_38));
    MR_hl_field(0, Var_11, 13) = ((MR_Box) (Var_39));
    MR_hl_field(0, Var_11, 14) = ((MR_Box) (Var_40));
    MR_hl_field(0, Var_11, 15) = ((MR_Box) (Var_41));
    MR_hl_field(0, Var_11, 16) = ((MR_Box) (Var_42));
    MR_hl_field(0, Var_11, 17) = ((MR_Box) (Var_43));
    MR_hl_field(0, Var_11, 18) = ((MR_Box) (Var_44));
    MR_hl_field(0, Var_11, 19) = (MR_Box) ((MR_Unsigned) (Var_45));
    MR_hl_field(0, Var_11, 20) = ((MR_Box) (Var_46));
    MR_hl_field(0, Var_11, 21) = ((MR_Box) (Var_47));
    MR_hl_field(0, Var_11, 22) = ((MR_Box) (Var_48));
    MR_hl_field(0, Var_11, 23) = ((MR_Box) (Var_49));
    MR_hl_field(0, Var_11, 24) = ((MR_Box) (Var_50));
    MR_hl_field(0, Var_11, 25) = ((MR_Box) (Var_51));
    MR_hl_field(0, Var_11, 26) = ((MR_Box) (Var_52));
    MR_hl_field(0, Var_11, 27) = ((MR_Box) (Var_53));
    MR_hl_field(0, Var_11, 28) = ((MR_Box) (Var_54));
    MR_hl_field(0, Var_11, 29) = ((MR_Box) (Var_55));
    MR_hl_field(0, Var_11, 30) = ((MR_Box) (Var_56));
    MR_hl_field(0, Var_11, 31) = ((MR_Box) (Var_57));
    MR_hl_field(0, Var_11, 32) = ((MR_Box) (Var_58));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_20));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_21));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_22));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_11));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_can_process_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_10;
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_20 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))) & (MR_Integer) 7);
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, Var_9, 0))));
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, Var_9, 1))));
  MR_Word Var_25 = ((MR_Word) ((MR_hl_field(0, Var_9, 3))));
  MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 4))) & (MR_Integer) 3);
  MR_Word Var_27 = ((MR_Word) ((MR_hl_field(0, Var_9, 5))));
  MR_Word Var_28 = ((MR_Word) ((MR_hl_field(0, Var_9, 6))));
  MR_Word Var_29 = ((MR_Word) ((MR_hl_field(0, Var_9, 7))));
  MR_Word Var_30 = ((MR_Word) ((MR_hl_field(0, Var_9, 8))));
  MR_Word Var_31 = ((MR_Word) ((MR_hl_field(0, Var_9, 9))));
  MR_Word Var_36 = ((MR_Word) ((MR_hl_field(0, Var_9, 11))));
  MR_Word Var_37 = ((MR_Word) ((MR_hl_field(0, Var_9, 12))));
  MR_Word Var_38 = ((MR_Word) ((MR_hl_field(0, Var_9, 13))));
  MR_Word Var_39 = ((MR_Word) ((MR_hl_field(0, Var_9, 14))));
  MR_Word Var_40 = ((MR_Word) ((MR_hl_field(0, Var_9, 15))));
  MR_Word Var_41 = ((MR_Word) ((MR_hl_field(0, Var_9, 16))));
  MR_Word Var_42 = ((MR_Word) ((MR_hl_field(0, Var_9, 17))));
  MR_Word Var_43 = ((MR_Word) ((MR_hl_field(0, Var_9, 18))));
  MR_Word Var_44 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 19))) & (MR_Integer) 1);
  MR_Word Var_45 = ((MR_Word) ((MR_hl_field(0, Var_9, 20))));
  MR_Word Var_46 = ((MR_Word) ((MR_hl_field(0, Var_9, 21))));
  MR_Word Var_47 = ((MR_Word) ((MR_hl_field(0, Var_9, 22))));
  MR_Word Var_48 = ((MR_Word) ((MR_hl_field(0, Var_9, 23))));
  MR_Word Var_49 = ((MR_Word) ((MR_hl_field(0, Var_9, 24))));
  MR_Word Var_50 = ((MR_Word) ((MR_hl_field(0, Var_9, 25))));
  MR_Word Var_51 = ((MR_Word) ((MR_hl_field(0, Var_9, 26))));
  MR_Word Var_52 = ((MR_Word) ((MR_hl_field(0, Var_9, 27))));
  MR_Word Var_53 = ((MR_Word) ((MR_hl_field(0, Var_9, 28))));
  MR_Word Var_54 = ((MR_Word) ((MR_hl_field(0, Var_9, 29))));
  MR_Word Var_55 = ((MR_Word) ((MR_hl_field(0, Var_9, 30))));
  MR_Word Var_56 = ((MR_Word) ((MR_hl_field(0, Var_9, 31))));
  MR_Word Var_57 = ((MR_Word) ((MR_hl_field(0, Var_9, 32))));
  MR_Unsigned packed_word_2 = (MR_Unsigned) ((MR_hl_field(0, Var_9, 10)));

  {
    Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_10, 0) = ((MR_Box) (Var_22));
    MR_hl_field(0, Var_10, 1) = ((MR_Box) (Var_23));
    MR_hl_field(0, Var_10, 2) = (MR_Box) ((MR_Unsigned) (X_4));
    MR_hl_field(0, Var_10, 3) = ((MR_Box) (Var_25));
    MR_hl_field(0, Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_26));
    MR_hl_field(0, Var_10, 5) = ((MR_Box) (Var_27));
    MR_hl_field(0, Var_10, 6) = ((MR_Box) (Var_28));
    MR_hl_field(0, Var_10, 7) = ((MR_Box) (Var_29));
    MR_hl_field(0, Var_10, 8) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_10, 9) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_10, 10) = (MR_Box) (packed_word_2);
    MR_hl_field(0, Var_10, 11) = ((MR_Box) (Var_36));
    MR_hl_field(0, Var_10, 12) = ((MR_Box) (Var_37));
    MR_hl_field(0, Var_10, 13) = ((MR_Box) (Var_38));
    MR_hl_field(0, Var_10, 14) = ((MR_Box) (Var_39));
    MR_hl_field(0, Var_10, 15) = ((MR_Box) (Var_40));
    MR_hl_field(0, Var_10, 16) = ((MR_Box) (Var_41));
    MR_hl_field(0, Var_10, 17) = ((MR_Box) (Var_42));
    MR_hl_field(0, Var_10, 18) = ((MR_Box) (Var_43));
    MR_hl_field(0, Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_44));
    MR_hl_field(0, Var_10, 20) = ((MR_Box) (Var_45));
    MR_hl_field(0, Var_10, 21) = ((MR_Box) (Var_46));
    MR_hl_field(0, Var_10, 22) = ((MR_Box) (Var_47));
    MR_hl_field(0, Var_10, 23) = ((MR_Box) (Var_48));
    MR_hl_field(0, Var_10, 24) = ((MR_Box) (Var_49));
    MR_hl_field(0, Var_10, 25) = ((MR_Box) (Var_50));
    MR_hl_field(0, Var_10, 26) = ((MR_Box) (Var_51));
    MR_hl_field(0, Var_10, 27) = ((MR_Box) (Var_52));
    MR_hl_field(0, Var_10, 28) = ((MR_Box) (Var_53));
    MR_hl_field(0, Var_10, 29) = ((MR_Box) (Var_54));
    MR_hl_field(0, Var_10, 30) = ((MR_Box) (Var_55));
    MR_hl_field(0, Var_10, 31) = ((MR_Box) (Var_56));
    MR_hl_field(0, Var_10, 32) = ((MR_Box) (Var_57));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_20));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_10));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_eval_method_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_8 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))));
  MR_Word Var_10 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_17 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))) & (MR_Integer) 7);
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));

  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_8));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_9));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_10));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_17));
    MR_hl_field(0, base, 10) = ((MR_Box) (X_4));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_19));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_inferred_determinism_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_8 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))));
  MR_Word Var_10 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));

  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_8));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_9));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_10));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (X_4));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_19));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_maybe_arglives_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_8 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))));
  MR_Word Var_10 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_17 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))) & (MR_Integer) 7);
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));

  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_8));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_9));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_10));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 7) = ((MR_Box) (X_4));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_17));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_19));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_argmodes_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_8 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))));
  MR_Word Var_10 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_17 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))) & (MR_Integer) 7);
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));

  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_8));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_9));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_10));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 6) = ((MR_Box) (X_4));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_17));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_19));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_maybe_declared_argmodes_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_8 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))));
  MR_Word Var_10 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_17 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))) & (MR_Integer) 7);
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));

  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_8));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_9));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_10));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 5) = ((MR_Box) (X_4));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_17));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_19));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_inst_varset_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_8 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))));
  MR_Word Var_10 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_17 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))) & (MR_Integer) 7);
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));

  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_8));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_9));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_10));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 4) = ((MR_Box) (X_4));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_17));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_19));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_rtti_varmaps_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_8 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))));
  MR_Word Var_10 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_17 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))) & (MR_Integer) 7);
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));

  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_8));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_9));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_10));
    MR_hl_field(0, base, 3) = ((MR_Box) (X_4));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_17));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_19));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_var_table_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_8 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))));
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_17 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))) & (MR_Integer) 7);
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));

  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_8));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_9));
    MR_hl_field(0, base, 2) = ((MR_Box) (X_4));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_17));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_19));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_goal_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_8 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_10 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_17 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))) & (MR_Integer) 7);
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));

  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_8));
    MR_hl_field(0, base, 1) = ((MR_Box) (X_4));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_10));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_17));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_19));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_headvars_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))));
  MR_Word Var_10 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_17 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))) & (MR_Integer) 7);
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));

  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (X_4));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_9));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_10));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_17));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_19));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_mm_tabling_info_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 11))));

  *X_4 = ((MR_Word) ((MR_hl_field(0, Var_5, 30))));
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_trailing_info_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 11))));

  *X_4 = ((MR_Word) ((MR_hl_field(0, Var_5, 29))));
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_exception_info_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 11))));

  *X_4 = ((MR_Word) ((MR_hl_field(0, Var_5, 28))));
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_termination2_info_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 11))));

  *X_4 = ((MR_Word) ((MR_hl_field(0, Var_5, 27))));
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_maybe_termination_info_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 11))));

  *X_4 = ((MR_Word) ((MR_hl_field(0, Var_5, 26))));
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_maybe_arg_size_info_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 11))));

  *X_4 = ((MR_Word) ((MR_hl_field(0, Var_5, 25))));
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_maybe_deep_profile_info_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 11))));

  *X_4 = ((MR_Word) ((MR_hl_field(0, Var_5, 24))));
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_obsolete_in_favour_of_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 11))));

  *X_4 = ((MR_Word) ((MR_hl_field(0, Var_5, 23))));
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_table_attributes_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 11))));

  *X_4 = ((MR_Word) ((MR_hl_field(0, Var_5, 22))));
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_maybe_proc_table_io_info_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 11))));

  *X_4 = ((MR_Word) ((MR_hl_field(0, Var_5, 21))));
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_call_table_tip_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 11))));

  *X_4 = ((MR_Word) ((MR_hl_field(0, Var_5, 20))));
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_needs_maxfr_slot_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 11))));

  *X_4 = ((MR_Unsigned) ((MR_hl_field(0, Var_5, 19))) & (MR_Integer) 1);
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_stack_slots_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 11))));

  *X_4 = ((MR_Word) ((MR_hl_field(0, Var_5, 18))));
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_liveness_info_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 11))));

  *X_4 = ((MR_Word) ((MR_hl_field(0, Var_5, 17))));
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_maybe_special_return_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 11))));

  *X_4 = ((MR_Word) ((MR_hl_field(0, Var_5, 16))));
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_maybe_arg_info_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 11))));

  *X_4 = ((MR_Word) ((MR_hl_field(0, Var_5, 15))));
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_reg_r_headvars_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 11))));

  *X_4 = ((MR_Word) ((MR_hl_field(0, Var_5, 14))));
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_maybe_require_tailrec_info_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 11))));

  *X_4 = ((MR_Word) ((MR_hl_field(0, Var_5, 13))));
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_oisu_kind_fors_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 11))));

  *X_4 = ((MR_Word) ((MR_hl_field(0, Var_5, 12))));
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_has_tail_rec_call_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 11))));

  *X_4 = ((MR_Word) ((MR_hl_field(0, Var_5, 11))));
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_has_user_event_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 11))));

  *X_4 = ((MR_Unsigned) ((MR_hl_field(0, Var_5, 10))) & (MR_Integer) 1);
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_has_parallel_conj_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 11))));

  *X_4 = ((((MR_Unsigned) ((MR_hl_field(0, Var_5, 10))) >> 1)) & (MR_Integer) 1);
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_has_any_foreign_exports_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 11))));

  *X_4 = ((((MR_Unsigned) ((MR_hl_field(0, Var_5, 10))) >> 2)) & (MR_Integer) 1);
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_is_address_taken_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 11))));

  *X_4 = ((((MR_Unsigned) ((MR_hl_field(0, Var_5, 10))) >> 3)) & (MR_Integer) 1);
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_deleted_call_callees_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 11))));

  *X_4 = ((MR_Word) ((MR_hl_field(0, Var_5, 9))));
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_statevar_warnings_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 11))));

  *X_4 = ((MR_Word) ((MR_hl_field(0, Var_5, 8))));
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_var_name_remap_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 11))));

  *X_4 = ((MR_Word) ((MR_hl_field(0, Var_5, 7))));
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_maybe_untuple_info_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 11))));

  *X_4 = ((MR_Word) ((MR_hl_field(0, Var_5, 6))));
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_cse_nopull_contexts_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 11))));

  *X_4 = ((MR_Word) ((MR_hl_field(0, Var_5, 5))));
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_detism_decl_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 11))));

  *X_4 = ((MR_Unsigned) ((MR_hl_field(0, Var_5, 4))) & (MR_Integer) 3);
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_maybe_head_modes_constr_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 11))));

  *X_4 = ((MR_Word) ((MR_hl_field(0, Var_5, 3))));
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_can_process_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 11))));

  *X_4 = ((MR_Unsigned) ((MR_hl_field(0, Var_5, 2))) & (MR_Integer) 1);
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_item_number_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 11))));

  *X_4 = ((MR_Word) ((MR_hl_field(0, Var_5, 1))));
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_context_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 11))));

  *X_4 = ((MR_Word) ((MR_hl_field(0, Var_5, 0))));
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_eval_method_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  *X_4 = ((MR_Word) ((MR_hl_field(0, PI_3, 10))));
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_inferred_determinism_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  *X_4 = ((MR_Unsigned) ((MR_hl_field(0, PI_3, 9))) & (MR_Integer) 7);
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_declared_determinism_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  *X_4 = ((MR_Word) ((MR_hl_field(0, PI_3, 8))));
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_maybe_arglives_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  *X_4 = ((MR_Word) ((MR_hl_field(0, PI_3, 7))));
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_argmodes_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  *X_4 = ((MR_Word) ((MR_hl_field(0, PI_3, 6))));
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_maybe_declared_argmodes_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  *X_4 = ((MR_Word) ((MR_hl_field(0, PI_3, 5))));
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_inst_varset_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  *X_4 = ((MR_Word) ((MR_hl_field(0, PI_3, 4))));
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_rtti_varmaps_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  *X_4 = ((MR_Word) ((MR_hl_field(0, PI_3, 3))));
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_var_table_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  *X_4 = ((MR_Word) ((MR_hl_field(0, PI_3, 2))));
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_goal_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  *X_4 = ((MR_Word) ((MR_hl_field(0, PI_3, 1))));
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_headvars_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  *X_4 = ((MR_Word) ((MR_hl_field(0, PI_3, 0))));
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_body_6_p_0(
  MR_Word VarTable_7,
  MR_Word HeadVars_8,
  MR_Word Goal_9,
  MR_Word RttiVarMaps_10,
  MR_Word STATE_VARIABLE_ProcInfo_0_12,
  MR_Word * STATE_VARIABLE_ProcInfo_13)
{
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_12, 4))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_12, 5))));
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_12, 6))));
  MR_Word Var_24 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_12, 7))));
  MR_Word Var_25 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_12, 8))));
  MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_12, 9))) & (MR_Integer) 7);
  MR_Word Var_27 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_12, 10))));
  MR_Word Var_28 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_ProcInfo_0_12, 11))));

  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_ProcInfo_13 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (HeadVars_8));
    MR_hl_field(0, base, 1) = ((MR_Box) (Goal_9));
    MR_hl_field(0, base, 2) = ((MR_Box) (VarTable_7));
    MR_hl_field(0, base, 3) = ((MR_Box) (RttiVarMaps_10));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_22));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_23));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_24));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_25));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_26));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_27));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_28));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_create_48_p_0(
  MR_Word HeadVars_49,
  MR_Word Goal_50,
  MR_Word VarTable_51,
  MR_Word RttiVarMaps_52,
  MR_Word InstVarSet_53,
  MR_Word DeclaredModes_54,
  MR_Word Modes_55,
  MR_Word MaybeArgLives_56,
  MR_Word MaybeDeclaredDetism_57,
  MR_Word Detism_58,
  MR_Word EvalMethod_59,
  MR_Word MainContext_60,
  MR_Word ItemNumber_61,
  MR_Word CanProcess_62,
  MR_Word MaybeHeadModesConstr_63,
  MR_Word DetismDecl_64,
  MR_Word CseNopullContexts_65,
  MR_Word MaybeUntupleInfo_66,
  MR_Word VarNameRemap_67,
  MR_Word StateVarWarnings_68,
  MR_Word DeletedCallees_69,
  MR_Word IsAddressTaken_70,
  MR_Word HasForeignProcExports_71,
  MR_Word HasParallelConj_72,
  MR_Word HasUserEvent_73,
  MR_Word HasTailCallEvent_74,
  MR_Word OisuKinds_75,
  MR_Word MaybeRequireTailRecursion_76,
  MR_Word RegR_HeadVars_77,
  MR_Word MaybeArgPassInfo_78,
  MR_Word MaybeSpecialReturn_79,
  MR_Word InitialLiveness_80,
  MR_Word StackSlots_81,
  MR_Word NeedsMaxfrSlot_82,
  MR_Word MaybeCallTableTip_83,
  MR_Word MaybeTableIOInfo_84,
  MR_Word MaybeTableAttrs_85,
  MR_Word MaybeObsoleteInFavourOf_86,
  MR_Word MaybeDeepProfProcInfo_87,
  MR_Word MaybeArgSizes_88,
  MR_Word MaybeTermInfo_89,
  MR_Word Term2Info_90,
  MR_Word MaybeExceptionInfo_91,
  MR_Word MaybeTrailingInfo_92,
  MR_Word MaybeMMTablingInfo_93,
  MR_Word SharingInfo_94,
  MR_Word ReuseInfo_95,
  MR_Word * ProcInfo_96)
{
  MR_Word ProcSubInfo_97;

  {
    ProcSubInfo_97 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, ProcSubInfo_97, 0) = ((MR_Box) (MainContext_60));
    MR_hl_field(0, ProcSubInfo_97, 1) = ((MR_Box) (ItemNumber_61));
    MR_hl_field(0, ProcSubInfo_97, 2) = (MR_Box) ((MR_Unsigned) (CanProcess_62));
    MR_hl_field(0, ProcSubInfo_97, 3) = ((MR_Box) (MaybeHeadModesConstr_63));
    MR_hl_field(0, ProcSubInfo_97, 4) = (MR_Box) ((MR_Unsigned) (DetismDecl_64));
    MR_hl_field(0, ProcSubInfo_97, 5) = ((MR_Box) (CseNopullContexts_65));
    MR_hl_field(0, ProcSubInfo_97, 6) = ((MR_Box) (MaybeUntupleInfo_66));
    MR_hl_field(0, ProcSubInfo_97, 7) = ((MR_Box) (VarNameRemap_67));
    MR_hl_field(0, ProcSubInfo_97, 8) = ((MR_Box) (StateVarWarnings_68));
    MR_hl_field(0, ProcSubInfo_97, 9) = ((MR_Box) (DeletedCallees_69));
    MR_hl_field(0, ProcSubInfo_97, 10) = (MR_Box) (((((MR_Unsigned) (IsAddressTaken_70) << 3)) | (((((MR_Unsigned) (HasForeignProcExports_71) << 2)) | (((((MR_Unsigned) (HasParallelConj_72) << 1)) | (MR_Unsigned) (HasUserEvent_73)))))));
    MR_hl_field(0, ProcSubInfo_97, 11) = ((MR_Box) (HasTailCallEvent_74));
    MR_hl_field(0, ProcSubInfo_97, 12) = ((MR_Box) (OisuKinds_75));
    MR_hl_field(0, ProcSubInfo_97, 13) = ((MR_Box) (MaybeRequireTailRecursion_76));
    MR_hl_field(0, ProcSubInfo_97, 14) = ((MR_Box) (RegR_HeadVars_77));
    MR_hl_field(0, ProcSubInfo_97, 15) = ((MR_Box) (MaybeArgPassInfo_78));
    MR_hl_field(0, ProcSubInfo_97, 16) = ((MR_Box) (MaybeSpecialReturn_79));
    MR_hl_field(0, ProcSubInfo_97, 17) = ((MR_Box) (InitialLiveness_80));
    MR_hl_field(0, ProcSubInfo_97, 18) = ((MR_Box) (StackSlots_81));
    MR_hl_field(0, ProcSubInfo_97, 19) = (MR_Box) ((MR_Unsigned) (NeedsMaxfrSlot_82));
    MR_hl_field(0, ProcSubInfo_97, 20) = ((MR_Box) (MaybeCallTableTip_83));
    MR_hl_field(0, ProcSubInfo_97, 21) = ((MR_Box) (MaybeTableIOInfo_84));
    MR_hl_field(0, ProcSubInfo_97, 22) = ((MR_Box) (MaybeTableAttrs_85));
    MR_hl_field(0, ProcSubInfo_97, 23) = ((MR_Box) (MaybeObsoleteInFavourOf_86));
    MR_hl_field(0, ProcSubInfo_97, 24) = ((MR_Box) (MaybeDeepProfProcInfo_87));
    MR_hl_field(0, ProcSubInfo_97, 25) = ((MR_Box) (MaybeArgSizes_88));
    MR_hl_field(0, ProcSubInfo_97, 26) = ((MR_Box) (MaybeTermInfo_89));
    MR_hl_field(0, ProcSubInfo_97, 27) = ((MR_Box) (Term2Info_90));
    MR_hl_field(0, ProcSubInfo_97, 28) = ((MR_Box) (MaybeExceptionInfo_91));
    MR_hl_field(0, ProcSubInfo_97, 29) = ((MR_Box) (MaybeTrailingInfo_92));
    MR_hl_field(0, ProcSubInfo_97, 30) = ((MR_Box) (MaybeMMTablingInfo_93));
    MR_hl_field(0, ProcSubInfo_97, 31) = ((MR_Box) (SharingInfo_94));
    MR_hl_field(0, ProcSubInfo_97, 32) = ((MR_Box) (ReuseInfo_95));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *ProcInfo_96 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (HeadVars_49));
    MR_hl_field(0, base, 1) = ((MR_Box) (Goal_50));
    MR_hl_field(0, base, 2) = ((MR_Box) (VarTable_51));
    MR_hl_field(0, base, 3) = ((MR_Box) (RttiVarMaps_52));
    MR_hl_field(0, base, 4) = ((MR_Box) (InstVarSet_53));
    MR_hl_field(0, base, 5) = ((MR_Box) (DeclaredModes_54));
    MR_hl_field(0, base, 6) = ((MR_Box) (Modes_55));
    MR_hl_field(0, base, 7) = ((MR_Box) (MaybeArgLives_56));
    MR_hl_field(0, base, 8) = ((MR_Box) (MaybeDeclaredDetism_57));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Detism_58));
    MR_hl_field(0, base, 10) = ((MR_Box) (EvalMethod_59));
    MR_hl_field(0, base, 11) = ((MR_Box) (ProcSubInfo_97));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_prepare_to_clone_48_p_0(
  MR_Word ProcInfo_49,
  MR_Word * HeadVars_50,
  MR_Word * Goal_51,
  MR_Word * VarTable_52,
  MR_Word * RttiVarMaps_53,
  MR_Word * InstVarSet_54,
  MR_Word * DeclaredModes_55,
  MR_Word * Modes_56,
  MR_Word * MaybeArgLives_57,
  MR_Word * MaybeDeclaredDetism_58,
  MR_Word * Detism_59,
  MR_Word * EvalMethod_60,
  MR_Word * MainContext_61,
  MR_Word * ItemNumber_62,
  MR_Word * CanProcess_63,
  MR_Word * MaybeHeadModesConstr_64,
  MR_Word * DetismDecl_65,
  MR_Word * CseNopullContexts_66,
  MR_Word * MaybeUntupleInfo_67,
  MR_Word * VarNameRemap_68,
  MR_Word * StateVarWarnings_69,
  MR_Word * DeletedCallees_70,
  MR_Word * IsAddressTaken_71,
  MR_Word * HasForeignProcExports_72,
  MR_Word * HasParallelConj_73,
  MR_Word * HasUserEvent_74,
  MR_Word * HasTailCallEvent_75,
  MR_Word * OisuKinds_76,
  MR_Word * MaybeRequireTailRecursion_77,
  MR_Word * RegR_HeadVars_78,
  MR_Word * MaybeArgPassInfo_79,
  MR_Word * MaybeSpecialReturn_80,
  MR_Word * InitialLiveness_81,
  MR_Word * StackSlots_82,
  MR_Word * NeedsMaxfrSlot_83,
  MR_Word * MaybeCallTableTip_84,
  MR_Word * MaybeTableIOInfo_85,
  MR_Word * MaybeTableAttrs_86,
  MR_Word * MaybeObsoleteInFavourOf_87,
  MR_Word * MaybeDeepProfProcInfo_88,
  MR_Word * MaybeArgSizes_89,
  MR_Word * MaybeTermInfo_90,
  MR_Word * Term2Info_91,
  MR_Word * MaybeExceptionInfo_92,
  MR_Word * MaybeTrailingInfo_93,
  MR_Word * MaybeMMTablingInfo_94,
  MR_Word * SharingInfo_95,
  MR_Word * ReuseInfo_96)
{
  MR_Word ProcSubInfo_97;

  *HeadVars_50 = ((MR_Word) ((MR_hl_field(0, ProcInfo_49, 0))));
  *Goal_51 = ((MR_Word) ((MR_hl_field(0, ProcInfo_49, 1))));
  *VarTable_52 = ((MR_Word) ((MR_hl_field(0, ProcInfo_49, 2))));
  *RttiVarMaps_53 = ((MR_Word) ((MR_hl_field(0, ProcInfo_49, 3))));
  *InstVarSet_54 = ((MR_Word) ((MR_hl_field(0, ProcInfo_49, 4))));
  *DeclaredModes_55 = ((MR_Word) ((MR_hl_field(0, ProcInfo_49, 5))));
  *Modes_56 = ((MR_Word) ((MR_hl_field(0, ProcInfo_49, 6))));
  *MaybeArgLives_57 = ((MR_Word) ((MR_hl_field(0, ProcInfo_49, 7))));
  *MaybeDeclaredDetism_58 = ((MR_Word) ((MR_hl_field(0, ProcInfo_49, 8))));
  *Detism_59 = ((MR_Unsigned) ((MR_hl_field(0, ProcInfo_49, 9))) & (MR_Integer) 7);
  *EvalMethod_60 = ((MR_Word) ((MR_hl_field(0, ProcInfo_49, 10))));
  ProcSubInfo_97 = ((MR_Word) ((MR_hl_field(0, ProcInfo_49, 11))));
  *MainContext_61 = ((MR_Word) ((MR_hl_field(0, ProcSubInfo_97, 0))));
  *ItemNumber_62 = ((MR_Word) ((MR_hl_field(0, ProcSubInfo_97, 1))));
  *CanProcess_63 = ((MR_Unsigned) ((MR_hl_field(0, ProcSubInfo_97, 2))) & (MR_Integer) 1);
  *MaybeHeadModesConstr_64 = ((MR_Word) ((MR_hl_field(0, ProcSubInfo_97, 3))));
  *DetismDecl_65 = ((MR_Unsigned) ((MR_hl_field(0, ProcSubInfo_97, 4))) & (MR_Integer) 3);
  *CseNopullContexts_66 = ((MR_Word) ((MR_hl_field(0, ProcSubInfo_97, 5))));
  *MaybeUntupleInfo_67 = ((MR_Word) ((MR_hl_field(0, ProcSubInfo_97, 6))));
  *VarNameRemap_68 = ((MR_Word) ((MR_hl_field(0, ProcSubInfo_97, 7))));
  *StateVarWarnings_69 = ((MR_Word) ((MR_hl_field(0, ProcSubInfo_97, 8))));
  *DeletedCallees_70 = ((MR_Word) ((MR_hl_field(0, ProcSubInfo_97, 9))));
  *IsAddressTaken_71 = ((((MR_Unsigned) ((MR_hl_field(0, ProcSubInfo_97, 10))) >> 3)) & (MR_Integer) 1);
  *HasForeignProcExports_72 = ((((MR_Unsigned) ((MR_hl_field(0, ProcSubInfo_97, 10))) >> 2)) & (MR_Integer) 1);
  *HasParallelConj_73 = ((((MR_Unsigned) ((MR_hl_field(0, ProcSubInfo_97, 10))) >> 1)) & (MR_Integer) 1);
  *HasUserEvent_74 = ((MR_Unsigned) ((MR_hl_field(0, ProcSubInfo_97, 10))) & (MR_Integer) 1);
  *HasTailCallEvent_75 = ((MR_Word) ((MR_hl_field(0, ProcSubInfo_97, 11))));
  *OisuKinds_76 = ((MR_Word) ((MR_hl_field(0, ProcSubInfo_97, 12))));
  *MaybeRequireTailRecursion_77 = ((MR_Word) ((MR_hl_field(0, ProcSubInfo_97, 13))));
  *RegR_HeadVars_78 = ((MR_Word) ((MR_hl_field(0, ProcSubInfo_97, 14))));
  *MaybeArgPassInfo_79 = ((MR_Word) ((MR_hl_field(0, ProcSubInfo_97, 15))));
  *MaybeSpecialReturn_80 = ((MR_Word) ((MR_hl_field(0, ProcSubInfo_97, 16))));
  *InitialLiveness_81 = ((MR_Word) ((MR_hl_field(0, ProcSubInfo_97, 17))));
  *StackSlots_82 = ((MR_Word) ((MR_hl_field(0, ProcSubInfo_97, 18))));
  *NeedsMaxfrSlot_83 = ((MR_Unsigned) ((MR_hl_field(0, ProcSubInfo_97, 19))) & (MR_Integer) 1);
  *MaybeCallTableTip_84 = ((MR_Word) ((MR_hl_field(0, ProcSubInfo_97, 20))));
  *MaybeTableIOInfo_85 = ((MR_Word) ((MR_hl_field(0, ProcSubInfo_97, 21))));
  *MaybeTableAttrs_86 = ((MR_Word) ((MR_hl_field(0, ProcSubInfo_97, 22))));
  *MaybeObsoleteInFavourOf_87 = ((MR_Word) ((MR_hl_field(0, ProcSubInfo_97, 23))));
  *MaybeDeepProfProcInfo_88 = ((MR_Word) ((MR_hl_field(0, ProcSubInfo_97, 24))));
  *MaybeArgSizes_89 = ((MR_Word) ((MR_hl_field(0, ProcSubInfo_97, 25))));
  *MaybeTermInfo_90 = ((MR_Word) ((MR_hl_field(0, ProcSubInfo_97, 26))));
  *Term2Info_91 = ((MR_Word) ((MR_hl_field(0, ProcSubInfo_97, 27))));
  *MaybeExceptionInfo_92 = ((MR_Word) ((MR_hl_field(0, ProcSubInfo_97, 28))));
  *MaybeTrailingInfo_93 = ((MR_Word) ((MR_hl_field(0, ProcSubInfo_97, 29))));
  *MaybeMMTablingInfo_94 = ((MR_Word) ((MR_hl_field(0, ProcSubInfo_97, 30))));
  *SharingInfo_95 = ((MR_Word) ((MR_hl_field(0, ProcSubInfo_97, 31))));
  *ReuseInfo_96 = ((MR_Word) ((MR_hl_field(0, ProcSubInfo_97, 32))));
}

void MR_CALL 
hlds__hlds_pred__proc_info_create_14_p_0(
  MR_Word Context_15,
  MR_Word ItemNumber_16,
  MR_Word VarTable_17,
  MR_Word HeadVars_18,
  MR_Word InstVarSet_19,
  MR_Word HeadModes_20,
  MR_Word DetismDecl_21,
  MR_Word Detism_22,
  MR_Word Goal_23,
  MR_Word RttiVarMaps_24,
  MR_Word IsAddressTaken_25,
  MR_Word HasParallelConj_26,
  MR_Word VarNameRemap_27,
  MR_Word * ProcInfo_28)
{
  MR_Word Var_29;
  MR_Word DeletedCallees_34;
  MR_Word RegR_HeadVars_40;
  MR_Word InitialLiveness_43;
  MR_Word StackSlots_44;
  MR_Word Term2Info_53;
  MR_Word ProcSubInfo_59;

  {
    Var_29 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (1 * sizeof(MR_Word)), NULL, NULL));
    MR_hl_field(1, Var_29, 0) = ((MR_Box) (Detism_22));
  }
  mercury__set__init_1_p_0((MR_Word) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_proc_id_0), &DeletedCallees_34);
  parse_tree__set_of_var__init_1_p_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_var_type_0), &RegR_HeadVars_40);
  parse_tree__set_of_var__init_1_p_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_var_type_0), &InitialLiveness_43);
  mercury__map__init_1_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[1]), (MR_Word) (&hlds__hlds_llds__hlds__hlds_llds__type_ctor_info_stack_slot_0), &StackSlots_44);
  Term2Info_53 = transform_hlds__term_constr_main_types__term2_info_init_0_f_0();
  {
    ProcSubInfo_59 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, ProcSubInfo_59, 0) = ((MR_Box) (Context_15));
    MR_hl_field(0, ProcSubInfo_59, 1) = ((MR_Box) (ItemNumber_16));
    MR_hl_field(0, ProcSubInfo_59, 2) = (MR_Box) ((MR_Unsigned) ((MR_Integer) 1));
    MR_hl_field(0, ProcSubInfo_59, 3) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_59, 4) = (MR_Box) ((MR_Unsigned) (DetismDecl_21));
    MR_hl_field(0, ProcSubInfo_59, 5) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_59, 6) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_59, 7) = ((MR_Box) (VarNameRemap_27));
    MR_hl_field(0, ProcSubInfo_59, 8) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_59, 9) = ((MR_Box) (DeletedCallees_34));
    MR_hl_field(0, ProcSubInfo_59, 10) = (MR_Box) (((((MR_Unsigned) (IsAddressTaken_25) << 3)) | (((((MR_Unsigned) ((MR_Integer) 0) << 2)) | (((((MR_Unsigned) (HasParallelConj_26) << 1)) | (MR_Unsigned) ((MR_Integer) 1)))))));
    MR_hl_field(0, ProcSubInfo_59, 11) = ((MR_Box) (&hlds__hlds_pred_scalar_common_3[5]));
    MR_hl_field(0, ProcSubInfo_59, 12) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_59, 13) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_59, 14) = ((MR_Box) (RegR_HeadVars_40));
    MR_hl_field(0, ProcSubInfo_59, 15) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_59, 16) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_59, 17) = ((MR_Box) (InitialLiveness_43));
    MR_hl_field(0, ProcSubInfo_59, 18) = ((MR_Box) (StackSlots_44));
    MR_hl_field(0, ProcSubInfo_59, 19) = (MR_Box) ((MR_Unsigned) ((MR_Integer) 1));
    MR_hl_field(0, ProcSubInfo_59, 20) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_59, 21) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_59, 22) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_59, 23) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_59, 24) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_59, 25) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_59, 26) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_59, 27) = ((MR_Box) (Term2Info_53));
    MR_hl_field(0, ProcSubInfo_59, 28) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_59, 29) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_59, 30) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_59, 31) = ((MR_Box) (&hlds__hlds_pred_scalar_common_2[61]));
    MR_hl_field(0, ProcSubInfo_59, 32) = ((MR_Box) (&hlds__hlds_pred_scalar_common_2[62]));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *ProcInfo_28 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (HeadVars_18));
    MR_hl_field(0, base, 1) = ((MR_Box) (Goal_23));
    MR_hl_field(0, base, 2) = ((MR_Box) (VarTable_17));
    MR_hl_field(0, base, 3) = ((MR_Box) (RttiVarMaps_24));
    MR_hl_field(0, base, 4) = ((MR_Box) (InstVarSet_19));
    MR_hl_field(0, base, 5) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, base, 6) = ((MR_Box) (HeadModes_20));
    MR_hl_field(0, base, 7) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_29));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Detism_22));
    MR_hl_field(0, base, 10) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, base, 11) = ((MR_Box) (ProcSubInfo_59));
  }
}

MR_String MR_CALL 
hlds__hlds_pred__table_step_stats_kind_1_f_0(
  MR_Word Step_3)
{
  MR_String KindStr_4;

  switch (MR_tag((MR_Word) Step_3)) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 0:
      switch (MR_unmkbody(Step_3)) {
        default: /*NOTREACHED*/ MR_assert(0);
        case (MR_Integer) 0:
        case (MR_Integer) 7:
          KindStr_4 = (MR_String) "MR_TABLE_STATS_DETAIL_NONE";
          break;
        case (MR_Integer) 1:
        case (MR_Integer) 2:
        case (MR_Integer) 3:
        case (MR_Integer) 4:
        case (MR_Integer) 5:
        case (MR_Integer) 6:
          KindStr_4 = (MR_String) "MR_TABLE_STATS_DETAIL_HASH";
          break;
      }
      break;
    case (MR_Integer) 1:
      KindStr_4 = (MR_String) "MR_TABLE_STATS_DETAIL_HASH";
      break;
    case (MR_Integer) 2:
      KindStr_4 = (MR_String) "MR_TABLE_STATS_DETAIL_ENUM";
      break;
    case (MR_Integer) 3:
      {
        MR_Word IsPoly_8 = ((((MR_Unsigned) ((MR_hl_field(3, Step_3, 1))) >> 1)) & (MR_Integer) 1);
        MR_Word ValueOrAddr_9 = ((MR_Unsigned) ((MR_hl_field(3, Step_3, 1))) & (MR_Integer) 1);

        switch (ValueOrAddr_9) {
          default: /*NOTREACHED*/ MR_assert(0);
          case (MR_Integer) 1:
            KindStr_4 = (MR_String) "MR_TABLE_STATS_DETAIL_HASH";
            break;
          case (MR_Integer) 0:
            switch (IsPoly_8) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 0:
                KindStr_4 = (MR_String) "MR_TABLE_STATS_DETAIL_DU";
                break;
              case (MR_Integer) 1:
                KindStr_4 = (MR_String) "MR_TABLE_STATS_DETAIL_POLY";
                break;
            }
            break;
        }
      }
      break;
  }
  return KindStr_4;
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_sym_name_2_p_0(
  MR_Word PredInfo_3,
  MR_Word * SymName_4)
{
  MR_Word Module_5 = ((MR_Word) ((MR_hl_field(0, PredInfo_3, 0))));
  MR_String Name_6 = ((MR_String) ((MR_hl_field(0, PredInfo_3, 2))));

  {
    MR_Word base;
    base = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
    *SymName_4 = base;
    MR_hl_field(1, base, 0) = ((MR_Box) (Module_5));
    MR_hl_field(1, base, 1) = ((MR_Box) (Name_6));
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_pf_sym_name_arity_2_p_0(
  MR_Word PredInfo_3,
  MR_Word * PFSymNameArity_4)
{
  MR_Word PredOrFunc_5 = ((MR_Unsigned) ((MR_hl_field(0, PredInfo_3, 1))) & (MR_Integer) 1);
  MR_Word SymName_6;
  MR_Word PredFormArity_7 = ((MR_Word) ((MR_hl_field(0, PredInfo_3, 3))));
  MR_Word Module_22 = ((MR_Word) ((MR_hl_field(0, PredInfo_3, 0))));
  MR_String Name_23 = ((MR_String) ((MR_hl_field(0, PredInfo_3, 2))));

  {
    SymName_6 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
    MR_hl_field(1, SymName_6, 0) = ((MR_Box) (Module_22));
    MR_hl_field(1, SymName_6, 1) = ((MR_Box) (Name_23));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (3 * sizeof(MR_Word)), NULL, NULL);
    *PFSymNameArity_4 = base;
    MR_hl_field(0, base, 0) = (MR_Box) ((MR_Unsigned) (PredOrFunc_5));
    MR_hl_field(0, base, 1) = ((MR_Box) (SymName_6));
    MR_hl_field(0, base, 2) = ((MR_Box) (PredFormArity_7));
  }
}

MR_bool MR_CALL 
hlds__hlds_pred__pred_info_infer_modes_1_p_0(
  MR_Word PredInfo_2)
{
  MR_bool succeeded;
  MR_Word Markers_3 = ((MR_Word) ((MR_hl_field(0, PredInfo_2, 6))));

  succeeded = hlds__hlds_markers__marker_is_present_2_p_0(Markers_3, (MR_Integer) 3);
  return succeeded;
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_promised_purity_2_p_0(
  MR_Word PredInfo0_3,
  MR_Word * MaybePromisedPurity_4)
{
  MR_bool succeeded;
  MR_Word Markers_5 = ((MR_Word) ((MR_hl_field(0, PredInfo0_3, 6))));

  succeeded = hlds__hlds_markers__marker_is_present_2_p_0(Markers_5, (MR_Integer) 17);
  if (succeeded)
    *MaybePromisedPurity_4 = (MR_Word) (MR_mkword(1, &hlds__hlds_pred_scalar_common_3[3]));
  else
  {
    succeeded = hlds__hlds_markers__marker_is_present_2_p_0(Markers_5, (MR_Integer) 18);
    if (succeeded)
      *MaybePromisedPurity_4 = (MR_Word) (MR_mkword(1, &hlds__hlds_pred_scalar_common_3[4]));
    else
      *MaybePromisedPurity_4 = (MR_Word) ((MR_Unsigned) 0U);
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_purity_2_p_0(
  MR_Word PredInfo0_3,
  MR_Word * Purity_4)
{
  MR_bool succeeded;
  MR_Word Markers_5 = ((MR_Word) ((MR_hl_field(0, PredInfo0_3, 6))));

  succeeded = hlds__hlds_markers__marker_is_present_2_p_0(Markers_5, (MR_Integer) 15);
  if (succeeded)
    *Purity_4 = (MR_Integer) 2;
  else
  {
    succeeded = hlds__hlds_markers__marker_is_present_2_p_0(Markers_5, (MR_Integer) 16);
    if (succeeded)
      *Purity_4 = (MR_Integer) 1;
    else
      *Purity_4 = (MR_Integer) 0;
  }
}

MR_bool MR_CALL 
hlds__hlds_pred__pred_info_requested_no_inlining_1_p_0(
  MR_Word PredInfo0_2)
{
  MR_bool succeeded;
  MR_Word Markers_3 = ((MR_Word) ((MR_hl_field(0, PredInfo0_2, 6))));

  succeeded = hlds__hlds_markers__marker_is_present_2_p_0(Markers_3, (MR_Integer) 8);
  if (!(succeeded))
    succeeded = hlds__hlds_markers__marker_is_present_2_p_0(Markers_3, (MR_Integer) 9);
  return succeeded;
}

MR_bool MR_CALL 
hlds__hlds_pred__pred_info_requested_inlining_1_p_0(
  MR_Word PredInfo0_2)
{
  MR_bool succeeded;
  MR_Word Markers_3 = ((MR_Word) ((MR_hl_field(0, PredInfo0_2, 6))));

  succeeded = hlds__hlds_markers__marker_is_present_2_p_0(Markers_3, (MR_Integer) 6);
  if (!(succeeded))
    succeeded = hlds__hlds_markers__marker_is_present_2_p_0(Markers_3, (MR_Integer) 7);
  return succeeded;
}

void MR_CALL 
hlds__hlds_pred__pred_info_update_goal_type_3_p_0(
  MR_Word NPGoalType1_4,
  MR_Word STATE_VARIABLE_PredInfo_0_11,
  MR_Word * STATE_VARIABLE_PredInfo_12)
{
  MR_bool succeeded;
  MR_Word GoalType0_6;
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_11, 14))));

  GoalType0_6 = ((MR_Word) ((MR_hl_field(0, Var_16, 2))));
  if (((MR_tag((MR_Word) GoalType0_6)) == (MR_Integer) 1))
    {
      mercury__require__unexpected_2_p_0((MR_String) "predicate \140hlds.hlds_pred.pred_info_update_goal_type\'/3", (MR_String) "promise");
      return;
    }
  else
  {
    MR_Word NPGoalType0_7 = ((MR_Unsigned) ((MR_hl_field(0, GoalType0_6, 0))) & (MR_Integer) 3);
    MR_Word NPGoalType_8;
    MR_Word GoalType_9;

    switch (NPGoalType0_7) {
      default: /*NOTREACHED*/ MR_assert(0);
      case (MR_Integer) 1:
        {
          switch (NPGoalType1_4) {
            default:
              succeeded = MR_FALSE;
              break;
            case (MR_Integer) 3:
              succeeded = MR_TRUE;
              break;
            case (MR_Integer) 2:
              succeeded = MR_TRUE;
              break;
          }
          if (succeeded)
            NPGoalType_8 = (MR_Integer) 3;
          else
            NPGoalType_8 = (MR_Integer) 1;
        }
        break;
      case (MR_Integer) 3:
        NPGoalType_8 = NPGoalType0_7;
        break;
      case (MR_Integer) 2:
        {
          switch (NPGoalType1_4) {
            default:
              succeeded = MR_FALSE;
              break;
            case (MR_Integer) 1:
              succeeded = MR_TRUE;
              break;
            case (MR_Integer) 3:
              succeeded = MR_TRUE;
              break;
          }
          if (succeeded)
            NPGoalType_8 = (MR_Integer) 3;
          else
            NPGoalType_8 = (MR_Integer) 2;
        }
        break;
      case (MR_Integer) 0:
        NPGoalType_8 = NPGoalType1_4;
        break;
    }
    {
      GoalType_9 = (MR_Word) MR_new_object(MR_Word, (1 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(0, GoalType_9, 0) = (MR_Box) ((MR_Unsigned) (NPGoalType_8));
    }
    succeeded = hlds__hlds_pred____Unify____goal_type_0_0(GoalType_9, GoalType0_6);
    if (succeeded)
      *STATE_VARIABLE_PredInfo_12 = STATE_VARIABLE_PredInfo_0_11;
    else
    {
      MR_Word Var_47 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_11, 14))));
      MR_Word Var_48;
      MR_Word Var_49 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_11, 0))));
      MR_Word Var_50 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_11, 1))) & (MR_Integer) 1);
      MR_String Var_51 = ((MR_String) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_11, 2))));
      MR_Word Var_52 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_11, 3))));
      MR_Word Var_53 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_11, 4))));
      MR_Word Var_54 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_11, 5))));
      MR_Word Var_55 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_11, 6))));
      MR_Word Var_56 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_11, 7))));
      MR_Word Var_57 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_11, 8))));
      MR_Word Var_58 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_11, 9))));
      MR_Word Var_59 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_11, 10))));
      MR_Word Var_60 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_11, 11))));
      MR_Word Var_61 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_11, 12))));
      MR_Word Var_62 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_11, 13))));
      MR_Word Var_63 = ((MR_Word) ((MR_hl_field(0, Var_47, 0))));
      MR_Word Var_64 = ((MR_Word) ((MR_hl_field(0, Var_47, 1))));
      MR_Word Var_66 = ((MR_Word) ((MR_hl_field(0, Var_47, 3))));
      MR_Word Var_67 = ((MR_Word) ((MR_hl_field(0, Var_47, 4))));
      MR_Integer Var_68 = ((MR_Integer) ((MR_hl_field(0, Var_47, 5))));
      MR_Word Var_69 = ((MR_Word) ((MR_hl_field(0, Var_47, 6))));
      MR_Word Var_70 = ((MR_Word) ((MR_hl_field(0, Var_47, 7))));
      MR_Word Var_71 = ((MR_Word) ((MR_hl_field(0, Var_47, 8))));
      MR_Word Var_72 = ((MR_Word) ((MR_hl_field(0, Var_47, 9))));
      MR_Word Var_73 = ((MR_Word) ((MR_hl_field(0, Var_47, 10))));
      MR_Word Var_74 = ((MR_Word) ((MR_hl_field(0, Var_47, 11))));
      MR_Word Var_75 = ((MR_Word) ((MR_hl_field(0, Var_47, 12))));
      MR_Word Var_76 = ((MR_Word) ((MR_hl_field(0, Var_47, 13))));
      MR_Word Var_77 = ((MR_Word) ((MR_hl_field(0, Var_47, 14))));
      MR_Word Var_78 = ((MR_Word) ((MR_hl_field(0, Var_47, 15))));
      MR_Word Var_79 = ((MR_Word) ((MR_hl_field(0, Var_47, 16))));

      {
        Var_48 = (MR_Word) MR_new_object(MR_Word, (17 * sizeof(MR_Word)), NULL, NULL);
        MR_hl_field(0, Var_48, 0) = ((MR_Box) (Var_63));
        MR_hl_field(0, Var_48, 1) = ((MR_Box) (Var_64));
        MR_hl_field(0, Var_48, 2) = ((MR_Box) (GoalType_9));
        MR_hl_field(0, Var_48, 3) = ((MR_Box) (Var_66));
        MR_hl_field(0, Var_48, 4) = ((MR_Box) (Var_67));
        MR_hl_field(0, Var_48, 5) = ((MR_Box) (Var_68));
        MR_hl_field(0, Var_48, 6) = ((MR_Box) (Var_69));
        MR_hl_field(0, Var_48, 7) = ((MR_Box) (Var_70));
        MR_hl_field(0, Var_48, 8) = ((MR_Box) (Var_71));
        MR_hl_field(0, Var_48, 9) = ((MR_Box) (Var_72));
        MR_hl_field(0, Var_48, 10) = ((MR_Box) (Var_73));
        MR_hl_field(0, Var_48, 11) = ((MR_Box) (Var_74));
        MR_hl_field(0, Var_48, 12) = ((MR_Box) (Var_75));
        MR_hl_field(0, Var_48, 13) = ((MR_Box) (Var_76));
        MR_hl_field(0, Var_48, 14) = ((MR_Box) (Var_77));
        MR_hl_field(0, Var_48, 15) = ((MR_Box) (Var_78));
        MR_hl_field(0, Var_48, 16) = ((MR_Box) (Var_79));
      }
      {
        MR_Word base;
        base = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
        *STATE_VARIABLE_PredInfo_12 = base;
        MR_hl_field(0, base, 0) = ((MR_Box) (Var_49));
        MR_hl_field(0, base, 1) = (MR_Box) ((MR_Unsigned) (Var_50));
        MR_hl_field(0, base, 2) = ((MR_Box) (Var_51));
        MR_hl_field(0, base, 3) = ((MR_Box) (Var_52));
        MR_hl_field(0, base, 4) = ((MR_Box) (Var_53));
        MR_hl_field(0, base, 5) = ((MR_Box) (Var_54));
        MR_hl_field(0, base, 6) = ((MR_Box) (Var_55));
        MR_hl_field(0, base, 7) = ((MR_Box) (Var_56));
        MR_hl_field(0, base, 8) = ((MR_Box) (Var_57));
        MR_hl_field(0, base, 9) = ((MR_Box) (Var_58));
        MR_hl_field(0, base, 10) = ((MR_Box) (Var_59));
        MR_hl_field(0, base, 11) = ((MR_Box) (Var_60));
        MR_hl_field(0, base, 12) = ((MR_Box) (Var_61));
        MR_hl_field(0, base, 13) = ((MR_Box) (Var_62));
        MR_hl_field(0, base, 14) = ((MR_Box) (Var_48));
      }
    }
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____goal_type_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  MR_bool succeeded;
  MR_Integer CastX_7 = (MR_Integer) (HeadVar__1_1);
  MR_Integer CastY_8 = (MR_Integer) (HeadVar__2_2);

  succeeded = (CastX_7 == CastY_8);
  if (succeeded)
    succeeded = MR_TRUE;
  else
  if (((MR_tag((MR_Word) HeadVar__1_1)) == (MR_Integer) 1))
  {
    MR_Word ArgX1_5 = ((MR_Unsigned) ((MR_hl_field(1, HeadVar__1_1, 0))) & (MR_Integer) 3);
    MR_Word ArgY1_6;

    succeeded = ((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 1);
    if (succeeded)
    {
      ArgY1_6 = ((MR_Unsigned) ((MR_hl_field(1, HeadVar__2_2, 0))) & (MR_Integer) 3);
      succeeded = (ArgX1_5 == ArgY1_6);
    }
  }
  else
  {
    MR_Word ArgX1_3 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__1_1, 0))) & (MR_Integer) 3);
    MR_Word ArgY1_4;

    succeeded = ((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 0);
    if (succeeded)
    {
      ArgY1_4 = ((MR_Unsigned) ((MR_hl_field(0, HeadVar__2_2, 0))) & (MR_Integer) 3);
      succeeded = (ArgX1_3 == ArgY1_4);
    }
  }
  return succeeded;
}

MR_bool MR_CALL 
hlds__hlds_pred__pred_info_defn_has_foreign_proc_1_p_0(
  MR_Word PredInfo_2)
{
  MR_bool succeeded;
  MR_Word GoalType_3;
  MR_Word NPGoalType_4;
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PredInfo_2, 14))));

  GoalType_3 = ((MR_Word) ((MR_hl_field(0, Var_5, 2))));
  succeeded = ((MR_tag((MR_Word) GoalType_3)) == (MR_Integer) 0);
  if (succeeded)
  {
    NPGoalType_4 = ((MR_Unsigned) ((MR_hl_field(0, GoalType_3, 0))) & (MR_Integer) 3);
    switch (NPGoalType_4) {
      default:
        succeeded = MR_FALSE;
        break;
      case (MR_Integer) 3:
        succeeded = MR_TRUE;
        break;
      case (MR_Integer) 2:
        succeeded = MR_TRUE;
        break;
    }
  }
  return succeeded;
}

MR_bool MR_CALL 
hlds__hlds_pred__pred_info_defn_has_clause_1_p_0(
  MR_Word PredInfo_2)
{
  MR_bool succeeded;
  MR_Word GoalType_3;
  MR_Word NPGoalType_4;
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PredInfo_2, 14))));

  GoalType_3 = ((MR_Word) ((MR_hl_field(0, Var_5, 2))));
  succeeded = ((MR_tag((MR_Word) GoalType_3)) == (MR_Integer) 0);
  if (succeeded)
  {
    NPGoalType_4 = ((MR_Unsigned) ((MR_hl_field(0, GoalType_3, 0))) & (MR_Integer) 3);
    switch (NPGoalType_4) {
      default:
        succeeded = MR_FALSE;
        break;
      case (MR_Integer) 1:
        succeeded = MR_TRUE;
        break;
      case (MR_Integer) 3:
        succeeded = MR_TRUE;
        break;
    }
  }
  return succeeded;
}

void MR_CALL 
hlds__hlds_pred__pred_info_mark_as_external_2_p_0(
  MR_Word STATE_VARIABLE_PredInfo_0_7,
  MR_Word * STATE_VARIABLE_PredInfo_8)
{
  MR_Word PredStatus0_4 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_7, 5))));
  MR_Word OldImportStatus0_5 = (MR_Word) (PredStatus0_4);
  MR_Word PredStatus_6;
  MR_Word Var_9;
  MR_Word Var_10 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_7, 0))));
  MR_Word Var_11 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_7, 1))) & (MR_Integer) 1);
  MR_String Var_12 = ((MR_String) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_7, 2))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_7, 3))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_7, 4))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_7, 6))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_7, 7))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_7, 8))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_7, 9))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_7, 10))));
  MR_Word Var_20 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_7, 11))));
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_7, 12))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_7, 13))));
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_7, 14))));

  {
    Var_9 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (1 * sizeof(MR_Word)), NULL, NULL));
    MR_hl_field(1, Var_9, 0) = ((MR_Box) (OldImportStatus0_5));
  }
  PredStatus_6 = (MR_Word) (Var_9);
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PredInfo_8 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_10));
    MR_hl_field(0, base, 1) = (MR_Box) ((MR_Unsigned) (Var_11));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 5) = ((MR_Box) (PredStatus_6));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 9) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_20));
    MR_hl_field(0, base, 12) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 13) = ((MR_Box) (Var_22));
    MR_hl_field(0, base, 14) = ((MR_Box) (Var_23));
  }
}

MR_bool MR_CALL 
hlds__hlds_pred__procedure_is_exported_3_p_0(
  MR_Word ModuleInfo_4,
  MR_Word PredInfo_5,
  MR_Integer ProcId_6)
{
  MR_bool succeeded;

  {
    MR_Word PredStatus_22 = ((MR_Word) ((MR_hl_field(0, PredInfo_5, 5))));
    MR_Word Var_23 = (MR_Word) (PredStatus_22);

    succeeded = (Var_23 == (MR_Word) ((MR_Unsigned) 12U));
  }
  if (!(succeeded))
  {
    {
      MR_Word PredStatus_38 = ((MR_Word) ((MR_hl_field(0, PredInfo_5, 5))));
      MR_Word Var_39 = (MR_Word) (PredStatus_38);

      succeeded = (Var_39 == (MR_Word) ((MR_Unsigned) 16U));
    }
    if (!(succeeded))
    {
      {
        MR_Word PredStatus_54 = ((MR_Word) ((MR_hl_field(0, PredInfo_5, 5))));
        MR_Word Var_55 = (MR_Word) (PredStatus_54);

        succeeded = (Var_55 == (MR_Word) ((MR_Unsigned) 28U));
      }
      if (!(succeeded))
      {
        {
          MR_Word PredStatus_70;
          MR_Word Var_71;

          succeeded = (ProcId_6 == (MR_Integer) 0);
          if (succeeded)
          {
            PredStatus_70 = ((MR_Word) ((MR_hl_field(0, PredInfo_5, 5))));
            Var_71 = (MR_Word) (PredStatus_70);
            succeeded = (Var_71 == (MR_Word) ((MR_Unsigned) 24U));
          }
        }
        if (!(succeeded))
        {
          {
            MR_Word PredStatus_7 = ((MR_Word) ((MR_hl_field(0, PredInfo_5, 5))));
            MR_Word ExternalImportStatus_8;
            MR_Word Var_14 = (MR_Word) (PredStatus_7);
            MR_Word Var_15;
            MR_Word Var_16;

            succeeded = ((MR_tag((MR_Word) Var_14)) == (MR_Integer) 1);
            if (succeeded)
            {
              ExternalImportStatus_8 = ((MR_Word) ((MR_hl_field(1, Var_14, 0))));
              Var_16 = (MR_Word) (ExternalImportStatus_8);
              Var_15 = hlds__status__pred_status_is_exported_1_f_0(Var_16);
              succeeded = (Var_15 == (MR_Integer) 1);
            }
          }
          if (!(succeeded))
          {
            MR_Word Origin_9;
            MR_Word SpecialPredId_10;
            MR_Word TypeCtor_11;
            MR_Word TypeTable_12;
            MR_Word TypeDefn_13;
            MR_Word Var_17;
            MR_Word Var_18;
            MR_Word Var_20;

            hlds__hlds_pred__pred_info_get_origin_2_p_0(PredInfo_5, &Origin_9);
            succeeded = ((MR_tag((MR_Word) Origin_9)) == (MR_Integer) 1);
            if (succeeded)
            {
              Var_17 = ((MR_Word) ((MR_hl_field(1, Origin_9, 0))));
              succeeded = ((MR_tag((MR_Word) Var_17)) == (MR_Integer) 0);
              if (succeeded)
              {
                SpecialPredId_10 = ((MR_Unsigned) ((MR_hl_field(0, Var_17, 0))) & (MR_Integer) 3);
                TypeCtor_11 = ((MR_Word) ((MR_hl_field(0, Var_17, 1))));
                hlds__hlds_module__module_info_get_type_table_2_p_0(ModuleInfo_4, &TypeTable_12);
                succeeded = hlds__hlds_data__search_type_ctor_defn_3_p_0(TypeTable_12, TypeCtor_11, &TypeDefn_13);
                if (succeeded)
                {
                  Var_18 = (MR_Integer) 1;
                  hlds__hlds_data__get_type_defn_in_exported_eqv_2_p_0(TypeDefn_13, &Var_20);
                  succeeded = (Var_18 == Var_20);
                  if (succeeded)
                    switch (SpecialPredId_10) {
                      default:
                        succeeded = MR_FALSE;
                        break;
                      case (MR_Integer) 2:
                        succeeded = MR_TRUE;
                        break;
                      case (MR_Integer) 0:
                        succeeded = (ProcId_6 == (MR_Integer) 0);
                        break;
                    }
                }
              }
            }
          }
        }
      }
    }
  }
  return succeeded;
}

MR_bool MR_CALL 
hlds__hlds_pred__pred_info_is_pseudo_exported_1_p_0(
  MR_Word PredInfo_2)
{
  MR_bool succeeded;
  MR_Word PredStatus_3 = ((MR_Word) ((MR_hl_field(0, PredInfo_2, 5))));
  MR_Word Var_4 = (MR_Word) (PredStatus_3);

  succeeded = (Var_4 == (MR_Word) ((MR_Unsigned) 24U));
  return succeeded;
}

MR_bool MR_CALL 
hlds__hlds_pred__pred_info_is_exported_to_submodules_1_p_0(
  MR_Word PredInfo_2)
{
  MR_bool succeeded;
  MR_Word PredStatus_3 = ((MR_Word) ((MR_hl_field(0, PredInfo_2, 5))));
  MR_Word Var_4 = (MR_Word) (PredStatus_3);

  succeeded = (Var_4 == (MR_Word) ((MR_Unsigned) 28U));
  return succeeded;
}

MR_bool MR_CALL 
hlds__hlds_pred__pred_info_is_opt_exported_1_p_0(
  MR_Word PredInfo_2)
{
  MR_bool succeeded;
  MR_Word PredStatus_3 = ((MR_Word) ((MR_hl_field(0, PredInfo_2, 5))));
  MR_Word Var_4 = (MR_Word) (PredStatus_3);

  succeeded = (Var_4 == (MR_Word) ((MR_Unsigned) 16U));
  return succeeded;
}

MR_bool MR_CALL 
hlds__hlds_pred__pred_info_is_exported_1_p_0(
  MR_Word PredInfo_2)
{
  MR_bool succeeded;
  MR_Word PredStatus_3 = ((MR_Word) ((MR_hl_field(0, PredInfo_2, 5))));
  MR_Word Var_4 = (MR_Word) (PredStatus_3);

  succeeded = (Var_4 == (MR_Word) ((MR_Unsigned) 12U));
  return succeeded;
}

MR_bool MR_CALL 
hlds__hlds_pred__pred_info_is_pseudo_imported_1_p_0(
  MR_Word PredInfo_2)
{
  MR_bool succeeded;
  MR_Word PredStatus_3 = ((MR_Word) ((MR_hl_field(0, PredInfo_2, 5))));
  MR_Word Var_4 = (MR_Word) (PredStatus_3);

  succeeded = (Var_4 == (MR_Word) ((MR_Unsigned) 8U));
  return succeeded;
}

MR_bool MR_CALL 
hlds__hlds_pred__pred_info_is_imported_not_external_1_p_0(
  MR_Word PredInfo_2)
{
  MR_bool succeeded;
  MR_Word PredStatus_3 = ((MR_Word) ((MR_hl_field(0, PredInfo_2, 5))));
  MR_Word Var_5 = (MR_Word) (PredStatus_3);

  succeeded = ((MR_tag((MR_Word) Var_5)) == (MR_Integer) 2);
  return succeeded;
}

MR_bool MR_CALL 
hlds__hlds_pred__pred_info_is_imported_1_p_0(
  MR_Word PredInfo_2)
{
  MR_bool succeeded;
  MR_Word PredStatus_3 = ((MR_Word) ((MR_hl_field(0, PredInfo_2, 5))));
  MR_Word Var_8 = (MR_Word) (PredStatus_3);

  if (((MR_tag((MR_Word) Var_8)) == (MR_Integer) 1))
    succeeded = MR_TRUE;
  else
  if (((MR_tag((MR_Word) Var_8)) == (MR_Integer) 2))
    succeeded = MR_TRUE;
  else
    succeeded = MR_FALSE;
  return succeeded;
}

void MR_CALL 
hlds__hlds_pred__pred_info_set_proc_info_4_p_0(
  MR_Integer ProcId_5,
  MR_Word ProcInfo_6,
  MR_Word STATE_VARIABLE_PredInfo_0_10,
  MR_Word * STATE_VARIABLE_PredInfo_11)
{
  MR_Word ProcTable0_8 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_10, 13))));
  MR_Word ProcTable_9;
  MR_Word Var_28;
  MR_Word Var_29;
  MR_String Var_30;
  MR_Word Var_31;
  MR_Word Var_32;
  MR_Word Var_33;
  MR_Word Var_34;
  MR_Word Var_35;
  MR_Word Var_36;
  MR_Word Var_37;
  MR_Word Var_38;
  MR_Word Var_39;
  MR_Word Var_40;
  MR_Word Var_42;

  mercury__map__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_100_101_116_95_117_112_100_97_116_101_95_95_91_75_32_61_32_105_110_116_93_95_48_95_49_4_p_0((MR_Word) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_info_0), ProcId_5, ((MR_Box) (ProcInfo_6)), ProcTable0_8, &ProcTable_9);
  Var_28 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_10, 0))));
  Var_29 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_10, 1))) & (MR_Integer) 1);
  Var_30 = ((MR_String) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_10, 2))));
  Var_31 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_10, 3))));
  Var_32 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_10, 4))));
  Var_33 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_10, 5))));
  Var_34 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_10, 6))));
  Var_35 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_10, 7))));
  Var_36 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_10, 8))));
  Var_37 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_10, 9))));
  Var_38 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_10, 10))));
  Var_39 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_10, 11))));
  Var_40 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_10, 12))));
  Var_42 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_10, 14))));
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PredInfo_11 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_28));
    MR_hl_field(0, base, 1) = (MR_Box) ((MR_Unsigned) (Var_29));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_30));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_31));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_32));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_33));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_34));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_35));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_36));
    MR_hl_field(0, base, 9) = ((MR_Box) (Var_37));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_38));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_39));
    MR_hl_field(0, base, 12) = ((MR_Box) (Var_40));
    MR_hl_field(0, base, 13) = ((MR_Box) (ProcTable_9));
    MR_hl_field(0, base, 14) = ((MR_Box) (Var_42));
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_proc_info_3_p_0(
  MR_Word PredInfo_4,
  MR_Integer ProcId_5,
  MR_Word * ProcInfo_6)
{
  MR_Word ProcTable_7 = ((MR_Word) ((MR_hl_field(0, PredInfo_4, 13))));
  MR_Box conv0_ProcInfo_6;

  mercury__map__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_108_111_111_107_117_112_95_95_91_75_32_61_32_105_110_116_93_95_48_95_49_3_p_0((MR_Word) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_info_0), ProcTable_7, ProcId_5, &conv0_ProcInfo_6);
  *ProcInfo_6 = ((MR_Word) (conv0_ProcInfo_6));
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_univ_quant_tvars_2_p_0(
  MR_Word PredInfo_3,
  MR_Word * UnivQVars_4)
{
  MR_Word ArgTypes_5 = ((MR_Word) ((MR_hl_field(0, PredInfo_3, 7))));
  MR_Word ArgTypeVars0_6;
  MR_Word ArgTypeVars_7;
  MR_Word ExistQVars_8;

  parse_tree__prog_type_scan__type_vars_in_types_2_p_0(ArgTypes_5, &ArgTypeVars0_6);
  mercury__list__sort_and_remove_dups_2_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[0]), ArgTypeVars0_6, &ArgTypeVars_7);
  ExistQVars_8 = ((MR_Word) ((MR_hl_field(0, PredInfo_3, 10))));
  mercury__list__delete_elems_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[0]), ArgTypeVars_7, ExistQVars_8, UnivQVars_4);
}

void MR_CALL 
hlds__hlds_pred__pred_info_set_arg_types_5_p_0(
  MR_Word X_6,
  MR_Word Y_7,
  MR_Word Z_8,
  MR_Word STATE_VARIABLE_PredInfo_0_10,
  MR_Word * STATE_VARIABLE_PredInfo_11)
{
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_10, 0))));
  MR_Word Var_15 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_10, 1))) & (MR_Integer) 1);
  MR_String Var_16 = ((MR_String) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_10, 2))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_10, 3))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_10, 4))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_10, 5))));
  MR_Word Var_20 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_10, 6))));
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_10, 9))));
  MR_Word Var_25 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_10, 11))));
  MR_Word Var_26 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_10, 12))));
  MR_Word Var_27 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_10, 13))));
  MR_Word Var_28 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_10, 14))));

  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PredInfo_11 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 1) = (MR_Box) ((MR_Unsigned) (Var_15));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_20));
    MR_hl_field(0, base, 7) = ((MR_Box) (Z_8));
    MR_hl_field(0, base, 8) = ((MR_Box) (X_6));
    MR_hl_field(0, base, 9) = ((MR_Box) (Var_23));
    MR_hl_field(0, base, 10) = ((MR_Box) (Y_7));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_25));
    MR_hl_field(0, base, 12) = ((MR_Box) (Var_26));
    MR_hl_field(0, base, 13) = ((MR_Box) (Var_27));
    MR_hl_field(0, base, 14) = ((MR_Box) (Var_28));
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_arg_types_4_p_0(
  MR_Word PredInfo_5,
  MR_Word * X_6,
  MR_Word * Y_7,
  MR_Word * Z_8)
{
  *Z_8 = ((MR_Word) ((MR_hl_field(0, PredInfo_5, 7))));
  *X_6 = ((MR_Word) ((MR_hl_field(0, PredInfo_5, 8))));
  *Y_7 = ((MR_Word) ((MR_hl_field(0, PredInfo_5, 10))));
}

void MR_CALL 
hlds__hlds_pred__pred_info_remove_proc_id_3_p_0(
  MR_Integer ProcId_4,
  MR_Word STATE_VARIABLE_PredInfo_0_8,
  MR_Word * STATE_VARIABLE_PredInfo_9)
{
  MR_Word Procs0_6 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_8, 13))));
  MR_Word Procs_7;
  MR_Word Var_26;
  MR_Word Var_27;
  MR_String Var_28;
  MR_Word Var_29;
  MR_Word Var_30;
  MR_Word Var_31;
  MR_Word Var_32;
  MR_Word Var_33;
  MR_Word Var_34;
  MR_Word Var_35;
  MR_Word Var_36;
  MR_Word Var_37;
  MR_Word Var_38;
  MR_Word Var_40;

  mercury__map__delete_3_p_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_int_0), (MR_Word) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_info_0), ((MR_Box) (ProcId_4)), Procs0_6, &Procs_7);
  Var_26 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_8, 0))));
  Var_27 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_8, 1))) & (MR_Integer) 1);
  Var_28 = ((MR_String) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_8, 2))));
  Var_29 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_8, 3))));
  Var_30 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_8, 4))));
  Var_31 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_8, 5))));
  Var_32 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_8, 6))));
  Var_33 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_8, 7))));
  Var_34 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_8, 8))));
  Var_35 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_8, 9))));
  Var_36 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_8, 10))));
  Var_37 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_8, 11))));
  Var_38 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_8, 12))));
  Var_40 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_8, 14))));
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PredInfo_9 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_26));
    MR_hl_field(0, base, 1) = (MR_Box) ((MR_Unsigned) (Var_27));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_28));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_29));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_30));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_31));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_32));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_33));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_34));
    MR_hl_field(0, base, 9) = ((MR_Box) (Var_35));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_36));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_37));
    MR_hl_field(0, base, 12) = ((MR_Box) (Var_38));
    MR_hl_field(0, base, 13) = ((MR_Box) (Procs_7));
    MR_hl_field(0, base, 14) = ((MR_Box) (Var_40));
  }
}

MR_Word MR_CALL 
hlds__hlds_pred__pred_info_all_exported_proc_ids_1_f_0(
  MR_Word PredInfo_3)
{
  MR_Word ProcIds_4;
  MR_Word OldImportStatus_5;
  MR_Word Var_8 = ((MR_Word) ((MR_hl_field(0, PredInfo_3, 5))));
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, PredInfo_3, 13))));

  OldImportStatus_5 = (MR_Word) (Var_8);
  switch (MR_tag((MR_Word) OldImportStatus_5)) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 0:
      switch (MR_unmkbody(OldImportStatus_5)) {
        default: /*NOTREACHED*/ MR_assert(0);
        case (MR_Integer) 0:
        case (MR_Integer) 1:
        case (MR_Integer) 2:
        case (MR_Integer) 5:
        case (MR_Integer) 8:
          ProcIds_4 = (MR_Word) ((MR_Unsigned) 0U);
          break;
        case (MR_Integer) 3:
        case (MR_Integer) 4:
        case (MR_Integer) 7:
          mercury__map__keys_2_p_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_int_0), (MR_Word) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_info_0), Var_23, &ProcIds_4);
          break;
        case (MR_Integer) 6:
          ProcIds_4 = (MR_Word) (MR_mkword(1, &hlds__hlds_pred_scalar_common_2[60]));
          break;
      }
      break;
    case (MR_Integer) 1:
    case (MR_Integer) 2:
      ProcIds_4 = (MR_Word) ((MR_Unsigned) 0U);
      break;
  }
  return ProcIds_4;
}

MR_Word MR_CALL 
hlds__hlds_pred__pred_info_will_codegen_proc_ids_1_f_0(
  MR_Word PredInfo_3)
{
  MR_Word ProcIds_4;
  MR_Word OldImportStatus_5;
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, PredInfo_3, 5))));
  MR_Word Var_26 = ((MR_Word) ((MR_hl_field(0, PredInfo_3, 13))));

  OldImportStatus_5 = (MR_Word) (Var_9);
  switch (MR_tag((MR_Word) OldImportStatus_5)) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 0:
      switch (MR_unmkbody(OldImportStatus_5)) {
        default: /*NOTREACHED*/ MR_assert(0);
        case (MR_Integer) 0:
        case (MR_Integer) 3:
        case (MR_Integer) 4:
        case (MR_Integer) 5:
        case (MR_Integer) 6:
        case (MR_Integer) 7:
        case (MR_Integer) 8:
          mercury__map__keys_2_p_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_int_0), (MR_Word) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_info_0), Var_26, &ProcIds_4);
          break;
        case (MR_Integer) 1:
          mercury__require__unexpected_2_p_0((MR_String) "function \140hlds.hlds_pred.pred_info_will_codegen_proc_ids\'/1", (MR_String) "status_abstract_imported");
          break;
        case (MR_Integer) 2:
          {
            MR_Word ProcIds0_8;

            mercury__map__keys_2_p_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_int_0), (MR_Word) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_info_0), Var_26, &ProcIds0_8);
            mercury__list__delete_all_3_p_1((MR_Word) (&mercury__builtin__builtin__type_ctor_info_int_0), ProcIds0_8, ((MR_Box) ((MR_Integer) 0)), &ProcIds_4);
          }
          break;
      }
      break;
    case (MR_Integer) 1:
    case (MR_Integer) 2:
      ProcIds_4 = (MR_Word) ((MR_Unsigned) 0U);
      break;
  }
  return ProcIds_4;
}

MR_Word MR_CALL 
hlds__hlds_pred__pred_info_all_proc_ids_1_f_0(
  MR_Word PredInfo_3)
{
  MR_Word ProcIds_4;
  MR_Word ProcTable_5 = ((MR_Word) ((MR_hl_field(0, PredInfo_3, 13))));

  mercury__map__keys_2_p_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_int_0), (MR_Word) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_info_0), ProcTable_5, &ProcIds_4);
  return ProcIds_4;
}

void MR_CALL 
hlds__hlds_pred__pred_info_set_clauses_info_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_8 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_9 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))) & (MR_Integer) 1);
  MR_String Var_10 = ((MR_String) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 13))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 14))));

  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_8));
    MR_hl_field(0, base, 1) = (MR_Box) ((MR_Unsigned) (Var_9));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_10));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 9) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 12) = ((MR_Box) (X_4));
    MR_hl_field(0, base, 13) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 14) = ((MR_Box) (Var_22));
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_set_instance_method_arg_types_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 14))));
  MR_Word Var_10;
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_12 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))) & (MR_Integer) 1);
  MR_String Var_13 = ((MR_String) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_20 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))));
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 12))));
  MR_Word Var_24 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 13))));
  MR_Word Var_25 = ((MR_Word) ((MR_hl_field(0, Var_9, 0))));
  MR_Word Var_26 = ((MR_Word) ((MR_hl_field(0, Var_9, 1))));
  MR_Word Var_27 = ((MR_Word) ((MR_hl_field(0, Var_9, 2))));
  MR_Word Var_28 = ((MR_Word) ((MR_hl_field(0, Var_9, 3))));
  MR_Word Var_29 = ((MR_Word) ((MR_hl_field(0, Var_9, 4))));
  MR_Integer Var_30 = ((MR_Integer) ((MR_hl_field(0, Var_9, 5))));
  MR_Word Var_31 = ((MR_Word) ((MR_hl_field(0, Var_9, 6))));
  MR_Word Var_32 = ((MR_Word) ((MR_hl_field(0, Var_9, 7))));
  MR_Word Var_33 = ((MR_Word) ((MR_hl_field(0, Var_9, 8))));
  MR_Word Var_34 = ((MR_Word) ((MR_hl_field(0, Var_9, 9))));
  MR_Word Var_35 = ((MR_Word) ((MR_hl_field(0, Var_9, 10))));
  MR_Word Var_36 = ((MR_Word) ((MR_hl_field(0, Var_9, 11))));
  MR_Word Var_37 = ((MR_Word) ((MR_hl_field(0, Var_9, 12))));
  MR_Word Var_38 = ((MR_Word) ((MR_hl_field(0, Var_9, 13))));
  MR_Word Var_39 = ((MR_Word) ((MR_hl_field(0, Var_9, 14))));
  MR_Word Var_40 = ((MR_Word) ((MR_hl_field(0, Var_9, 15))));

  {
    Var_10 = (MR_Word) MR_new_object(MR_Word, (17 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_10, 0) = ((MR_Box) (Var_25));
    MR_hl_field(0, Var_10, 1) = ((MR_Box) (Var_26));
    MR_hl_field(0, Var_10, 2) = ((MR_Box) (Var_27));
    MR_hl_field(0, Var_10, 3) = ((MR_Box) (Var_28));
    MR_hl_field(0, Var_10, 4) = ((MR_Box) (Var_29));
    MR_hl_field(0, Var_10, 5) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_10, 6) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_10, 7) = ((MR_Box) (Var_32));
    MR_hl_field(0, Var_10, 8) = ((MR_Box) (Var_33));
    MR_hl_field(0, Var_10, 9) = ((MR_Box) (Var_34));
    MR_hl_field(0, Var_10, 10) = ((MR_Box) (Var_35));
    MR_hl_field(0, Var_10, 11) = ((MR_Box) (Var_36));
    MR_hl_field(0, Var_10, 12) = ((MR_Box) (Var_37));
    MR_hl_field(0, Var_10, 13) = ((MR_Box) (Var_38));
    MR_hl_field(0, Var_10, 14) = ((MR_Box) (Var_39));
    MR_hl_field(0, Var_10, 15) = ((MR_Box) (Var_40));
    MR_hl_field(0, Var_10, 16) = ((MR_Box) (X_4));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 1) = (MR_Box) ((MR_Unsigned) (Var_12));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 9) = ((MR_Box) (Var_20));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_22));
    MR_hl_field(0, base, 12) = ((MR_Box) (Var_23));
    MR_hl_field(0, base, 13) = ((MR_Box) (Var_24));
    MR_hl_field(0, base, 14) = ((MR_Box) (Var_10));
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_set_format_call_info_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 14))));
  MR_Word Var_10;
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_12 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))) & (MR_Integer) 1);
  MR_String Var_13 = ((MR_String) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_20 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))));
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 12))));
  MR_Word Var_24 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 13))));
  MR_Word Var_25 = ((MR_Word) ((MR_hl_field(0, Var_9, 0))));
  MR_Word Var_26 = ((MR_Word) ((MR_hl_field(0, Var_9, 1))));
  MR_Word Var_27 = ((MR_Word) ((MR_hl_field(0, Var_9, 2))));
  MR_Word Var_28 = ((MR_Word) ((MR_hl_field(0, Var_9, 3))));
  MR_Word Var_29 = ((MR_Word) ((MR_hl_field(0, Var_9, 4))));
  MR_Integer Var_30 = ((MR_Integer) ((MR_hl_field(0, Var_9, 5))));
  MR_Word Var_31 = ((MR_Word) ((MR_hl_field(0, Var_9, 6))));
  MR_Word Var_32 = ((MR_Word) ((MR_hl_field(0, Var_9, 7))));
  MR_Word Var_33 = ((MR_Word) ((MR_hl_field(0, Var_9, 8))));
  MR_Word Var_34 = ((MR_Word) ((MR_hl_field(0, Var_9, 9))));
  MR_Word Var_35 = ((MR_Word) ((MR_hl_field(0, Var_9, 10))));
  MR_Word Var_36 = ((MR_Word) ((MR_hl_field(0, Var_9, 11))));
  MR_Word Var_37 = ((MR_Word) ((MR_hl_field(0, Var_9, 12))));
  MR_Word Var_38 = ((MR_Word) ((MR_hl_field(0, Var_9, 13))));
  MR_Word Var_39 = ((MR_Word) ((MR_hl_field(0, Var_9, 14))));
  MR_Word Var_41 = ((MR_Word) ((MR_hl_field(0, Var_9, 16))));

  {
    Var_10 = (MR_Word) MR_new_object(MR_Word, (17 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_10, 0) = ((MR_Box) (Var_25));
    MR_hl_field(0, Var_10, 1) = ((MR_Box) (Var_26));
    MR_hl_field(0, Var_10, 2) = ((MR_Box) (Var_27));
    MR_hl_field(0, Var_10, 3) = ((MR_Box) (Var_28));
    MR_hl_field(0, Var_10, 4) = ((MR_Box) (Var_29));
    MR_hl_field(0, Var_10, 5) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_10, 6) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_10, 7) = ((MR_Box) (Var_32));
    MR_hl_field(0, Var_10, 8) = ((MR_Box) (Var_33));
    MR_hl_field(0, Var_10, 9) = ((MR_Box) (Var_34));
    MR_hl_field(0, Var_10, 10) = ((MR_Box) (Var_35));
    MR_hl_field(0, Var_10, 11) = ((MR_Box) (Var_36));
    MR_hl_field(0, Var_10, 12) = ((MR_Box) (Var_37));
    MR_hl_field(0, Var_10, 13) = ((MR_Box) (Var_38));
    MR_hl_field(0, Var_10, 14) = ((MR_Box) (Var_39));
    MR_hl_field(0, Var_10, 15) = ((MR_Box) (X_4));
    MR_hl_field(0, Var_10, 16) = ((MR_Box) (Var_41));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 1) = (MR_Box) ((MR_Unsigned) (Var_12));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 9) = ((MR_Box) (Var_20));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_22));
    MR_hl_field(0, base, 12) = ((MR_Box) (Var_23));
    MR_hl_field(0, base, 13) = ((MR_Box) (Var_24));
    MR_hl_field(0, base, 14) = ((MR_Box) (Var_10));
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_set_obsolete_in_favour_of_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 14))));
  MR_Word Var_10;
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_12 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))) & (MR_Integer) 1);
  MR_String Var_13 = ((MR_String) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_20 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))));
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 12))));
  MR_Word Var_24 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 13))));
  MR_Word Var_25 = ((MR_Word) ((MR_hl_field(0, Var_9, 0))));
  MR_Word Var_26 = ((MR_Word) ((MR_hl_field(0, Var_9, 1))));
  MR_Word Var_27 = ((MR_Word) ((MR_hl_field(0, Var_9, 2))));
  MR_Word Var_28 = ((MR_Word) ((MR_hl_field(0, Var_9, 3))));
  MR_Word Var_29 = ((MR_Word) ((MR_hl_field(0, Var_9, 4))));
  MR_Integer Var_30 = ((MR_Integer) ((MR_hl_field(0, Var_9, 5))));
  MR_Word Var_31 = ((MR_Word) ((MR_hl_field(0, Var_9, 6))));
  MR_Word Var_32 = ((MR_Word) ((MR_hl_field(0, Var_9, 7))));
  MR_Word Var_33 = ((MR_Word) ((MR_hl_field(0, Var_9, 8))));
  MR_Word Var_34 = ((MR_Word) ((MR_hl_field(0, Var_9, 9))));
  MR_Word Var_35 = ((MR_Word) ((MR_hl_field(0, Var_9, 10))));
  MR_Word Var_36 = ((MR_Word) ((MR_hl_field(0, Var_9, 11))));
  MR_Word Var_37 = ((MR_Word) ((MR_hl_field(0, Var_9, 12))));
  MR_Word Var_38 = ((MR_Word) ((MR_hl_field(0, Var_9, 13))));
  MR_Word Var_40 = ((MR_Word) ((MR_hl_field(0, Var_9, 15))));
  MR_Word Var_41 = ((MR_Word) ((MR_hl_field(0, Var_9, 16))));

  {
    Var_10 = (MR_Word) MR_new_object(MR_Word, (17 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_10, 0) = ((MR_Box) (Var_25));
    MR_hl_field(0, Var_10, 1) = ((MR_Box) (Var_26));
    MR_hl_field(0, Var_10, 2) = ((MR_Box) (Var_27));
    MR_hl_field(0, Var_10, 3) = ((MR_Box) (Var_28));
    MR_hl_field(0, Var_10, 4) = ((MR_Box) (Var_29));
    MR_hl_field(0, Var_10, 5) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_10, 6) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_10, 7) = ((MR_Box) (Var_32));
    MR_hl_field(0, Var_10, 8) = ((MR_Box) (Var_33));
    MR_hl_field(0, Var_10, 9) = ((MR_Box) (Var_34));
    MR_hl_field(0, Var_10, 10) = ((MR_Box) (Var_35));
    MR_hl_field(0, Var_10, 11) = ((MR_Box) (Var_36));
    MR_hl_field(0, Var_10, 12) = ((MR_Box) (Var_37));
    MR_hl_field(0, Var_10, 13) = ((MR_Box) (Var_38));
    MR_hl_field(0, Var_10, 14) = ((MR_Box) (X_4));
    MR_hl_field(0, Var_10, 15) = ((MR_Box) (Var_40));
    MR_hl_field(0, Var_10, 16) = ((MR_Box) (Var_41));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 1) = (MR_Box) ((MR_Unsigned) (Var_12));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 9) = ((MR_Box) (Var_20));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_22));
    MR_hl_field(0, base, 12) = ((MR_Box) (Var_23));
    MR_hl_field(0, base, 13) = ((MR_Box) (Var_24));
    MR_hl_field(0, base, 14) = ((MR_Box) (Var_10));
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_set_assertions_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 14))));
  MR_Word Var_10;
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_12 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))) & (MR_Integer) 1);
  MR_String Var_13 = ((MR_String) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_20 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))));
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 12))));
  MR_Word Var_24 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 13))));
  MR_Word Var_25 = ((MR_Word) ((MR_hl_field(0, Var_9, 0))));
  MR_Word Var_26 = ((MR_Word) ((MR_hl_field(0, Var_9, 1))));
  MR_Word Var_27 = ((MR_Word) ((MR_hl_field(0, Var_9, 2))));
  MR_Word Var_28 = ((MR_Word) ((MR_hl_field(0, Var_9, 3))));
  MR_Word Var_29 = ((MR_Word) ((MR_hl_field(0, Var_9, 4))));
  MR_Integer Var_30 = ((MR_Integer) ((MR_hl_field(0, Var_9, 5))));
  MR_Word Var_31 = ((MR_Word) ((MR_hl_field(0, Var_9, 6))));
  MR_Word Var_32 = ((MR_Word) ((MR_hl_field(0, Var_9, 7))));
  MR_Word Var_33 = ((MR_Word) ((MR_hl_field(0, Var_9, 8))));
  MR_Word Var_34 = ((MR_Word) ((MR_hl_field(0, Var_9, 9))));
  MR_Word Var_35 = ((MR_Word) ((MR_hl_field(0, Var_9, 10))));
  MR_Word Var_36 = ((MR_Word) ((MR_hl_field(0, Var_9, 11))));
  MR_Word Var_37 = ((MR_Word) ((MR_hl_field(0, Var_9, 12))));
  MR_Word Var_39 = ((MR_Word) ((MR_hl_field(0, Var_9, 14))));
  MR_Word Var_40 = ((MR_Word) ((MR_hl_field(0, Var_9, 15))));
  MR_Word Var_41 = ((MR_Word) ((MR_hl_field(0, Var_9, 16))));

  {
    Var_10 = (MR_Word) MR_new_object(MR_Word, (17 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_10, 0) = ((MR_Box) (Var_25));
    MR_hl_field(0, Var_10, 1) = ((MR_Box) (Var_26));
    MR_hl_field(0, Var_10, 2) = ((MR_Box) (Var_27));
    MR_hl_field(0, Var_10, 3) = ((MR_Box) (Var_28));
    MR_hl_field(0, Var_10, 4) = ((MR_Box) (Var_29));
    MR_hl_field(0, Var_10, 5) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_10, 6) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_10, 7) = ((MR_Box) (Var_32));
    MR_hl_field(0, Var_10, 8) = ((MR_Box) (Var_33));
    MR_hl_field(0, Var_10, 9) = ((MR_Box) (Var_34));
    MR_hl_field(0, Var_10, 10) = ((MR_Box) (Var_35));
    MR_hl_field(0, Var_10, 11) = ((MR_Box) (Var_36));
    MR_hl_field(0, Var_10, 12) = ((MR_Box) (Var_37));
    MR_hl_field(0, Var_10, 13) = ((MR_Box) (X_4));
    MR_hl_field(0, Var_10, 14) = ((MR_Box) (Var_39));
    MR_hl_field(0, Var_10, 15) = ((MR_Box) (Var_40));
    MR_hl_field(0, Var_10, 16) = ((MR_Box) (Var_41));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 1) = (MR_Box) ((MR_Unsigned) (Var_12));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 9) = ((MR_Box) (Var_20));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_22));
    MR_hl_field(0, base, 12) = ((MR_Box) (Var_23));
    MR_hl_field(0, base, 13) = ((MR_Box) (Var_24));
    MR_hl_field(0, base, 14) = ((MR_Box) (Var_10));
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_set_var_name_remap_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_bool succeeded;
  MR_Word Var_8;
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 14))));

  Var_8 = ((MR_Word) ((MR_hl_field(0, Var_9, 12))));
  succeeded = (((MR_Word) X_4) == ((MR_Word) Var_8));
  if (succeeded)
    *STATE_VARIABLE_PI_7 = STATE_VARIABLE_PI_0_6;
  else
  {
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 14))));
    MR_Word Var_12;
    MR_Word Var_43 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
    MR_Word Var_44 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))) & (MR_Integer) 1);
    MR_String Var_45 = ((MR_String) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
    MR_Word Var_46 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
    MR_Word Var_47 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
    MR_Word Var_48 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
    MR_Word Var_49 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
    MR_Word Var_50 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
    MR_Word Var_51 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
    MR_Word Var_52 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))));
    MR_Word Var_53 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
    MR_Word Var_54 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
    MR_Word Var_55 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 12))));
    MR_Word Var_56 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 13))));
    MR_Word Var_57 = ((MR_Word) ((MR_hl_field(0, Var_11, 0))));
    MR_Word Var_58 = ((MR_Word) ((MR_hl_field(0, Var_11, 1))));
    MR_Word Var_59 = ((MR_Word) ((MR_hl_field(0, Var_11, 2))));
    MR_Word Var_60 = ((MR_Word) ((MR_hl_field(0, Var_11, 3))));
    MR_Word Var_61 = ((MR_Word) ((MR_hl_field(0, Var_11, 4))));
    MR_Integer Var_62 = ((MR_Integer) ((MR_hl_field(0, Var_11, 5))));
    MR_Word Var_63 = ((MR_Word) ((MR_hl_field(0, Var_11, 6))));
    MR_Word Var_64 = ((MR_Word) ((MR_hl_field(0, Var_11, 7))));
    MR_Word Var_65 = ((MR_Word) ((MR_hl_field(0, Var_11, 8))));
    MR_Word Var_66 = ((MR_Word) ((MR_hl_field(0, Var_11, 9))));
    MR_Word Var_67 = ((MR_Word) ((MR_hl_field(0, Var_11, 10))));
    MR_Word Var_68 = ((MR_Word) ((MR_hl_field(0, Var_11, 11))));
    MR_Word Var_70 = ((MR_Word) ((MR_hl_field(0, Var_11, 13))));
    MR_Word Var_71 = ((MR_Word) ((MR_hl_field(0, Var_11, 14))));
    MR_Word Var_72 = ((MR_Word) ((MR_hl_field(0, Var_11, 15))));
    MR_Word Var_73 = ((MR_Word) ((MR_hl_field(0, Var_11, 16))));

    {
      Var_12 = (MR_Word) MR_new_object(MR_Word, (17 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(0, Var_12, 0) = ((MR_Box) (Var_57));
      MR_hl_field(0, Var_12, 1) = ((MR_Box) (Var_58));
      MR_hl_field(0, Var_12, 2) = ((MR_Box) (Var_59));
      MR_hl_field(0, Var_12, 3) = ((MR_Box) (Var_60));
      MR_hl_field(0, Var_12, 4) = ((MR_Box) (Var_61));
      MR_hl_field(0, Var_12, 5) = ((MR_Box) (Var_62));
      MR_hl_field(0, Var_12, 6) = ((MR_Box) (Var_63));
      MR_hl_field(0, Var_12, 7) = ((MR_Box) (Var_64));
      MR_hl_field(0, Var_12, 8) = ((MR_Box) (Var_65));
      MR_hl_field(0, Var_12, 9) = ((MR_Box) (Var_66));
      MR_hl_field(0, Var_12, 10) = ((MR_Box) (Var_67));
      MR_hl_field(0, Var_12, 11) = ((MR_Box) (Var_68));
      MR_hl_field(0, Var_12, 12) = ((MR_Box) (X_4));
      MR_hl_field(0, Var_12, 13) = ((MR_Box) (Var_70));
      MR_hl_field(0, Var_12, 14) = ((MR_Box) (Var_71));
      MR_hl_field(0, Var_12, 15) = ((MR_Box) (Var_72));
      MR_hl_field(0, Var_12, 16) = ((MR_Box) (Var_73));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(0, base, 0) = ((MR_Box) (Var_43));
      MR_hl_field(0, base, 1) = (MR_Box) ((MR_Unsigned) (Var_44));
      MR_hl_field(0, base, 2) = ((MR_Box) (Var_45));
      MR_hl_field(0, base, 3) = ((MR_Box) (Var_46));
      MR_hl_field(0, base, 4) = ((MR_Box) (Var_47));
      MR_hl_field(0, base, 5) = ((MR_Box) (Var_48));
      MR_hl_field(0, base, 6) = ((MR_Box) (Var_49));
      MR_hl_field(0, base, 7) = ((MR_Box) (Var_50));
      MR_hl_field(0, base, 8) = ((MR_Box) (Var_51));
      MR_hl_field(0, base, 9) = ((MR_Box) (Var_52));
      MR_hl_field(0, base, 10) = ((MR_Box) (Var_53));
      MR_hl_field(0, base, 11) = ((MR_Box) (Var_54));
      MR_hl_field(0, base, 12) = ((MR_Box) (Var_55));
      MR_hl_field(0, base, 13) = ((MR_Box) (Var_56));
      MR_hl_field(0, base, 14) = ((MR_Box) (Var_12));
    }
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_set_arg_modes_maps_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 14))));
  MR_Word Var_10;
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_12 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))) & (MR_Integer) 1);
  MR_String Var_13 = ((MR_String) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_20 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))));
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 12))));
  MR_Word Var_24 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 13))));
  MR_Word Var_25 = ((MR_Word) ((MR_hl_field(0, Var_9, 0))));
  MR_Word Var_26 = ((MR_Word) ((MR_hl_field(0, Var_9, 1))));
  MR_Word Var_27 = ((MR_Word) ((MR_hl_field(0, Var_9, 2))));
  MR_Word Var_28 = ((MR_Word) ((MR_hl_field(0, Var_9, 3))));
  MR_Word Var_29 = ((MR_Word) ((MR_hl_field(0, Var_9, 4))));
  MR_Integer Var_30 = ((MR_Integer) ((MR_hl_field(0, Var_9, 5))));
  MR_Word Var_31 = ((MR_Word) ((MR_hl_field(0, Var_9, 6))));
  MR_Word Var_32 = ((MR_Word) ((MR_hl_field(0, Var_9, 7))));
  MR_Word Var_33 = ((MR_Word) ((MR_hl_field(0, Var_9, 8))));
  MR_Word Var_34 = ((MR_Word) ((MR_hl_field(0, Var_9, 9))));
  MR_Word Var_35 = ((MR_Word) ((MR_hl_field(0, Var_9, 10))));
  MR_Word Var_37 = ((MR_Word) ((MR_hl_field(0, Var_9, 12))));
  MR_Word Var_38 = ((MR_Word) ((MR_hl_field(0, Var_9, 13))));
  MR_Word Var_39 = ((MR_Word) ((MR_hl_field(0, Var_9, 14))));
  MR_Word Var_40 = ((MR_Word) ((MR_hl_field(0, Var_9, 15))));
  MR_Word Var_41 = ((MR_Word) ((MR_hl_field(0, Var_9, 16))));

  {
    Var_10 = (MR_Word) MR_new_object(MR_Word, (17 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_10, 0) = ((MR_Box) (Var_25));
    MR_hl_field(0, Var_10, 1) = ((MR_Box) (Var_26));
    MR_hl_field(0, Var_10, 2) = ((MR_Box) (Var_27));
    MR_hl_field(0, Var_10, 3) = ((MR_Box) (Var_28));
    MR_hl_field(0, Var_10, 4) = ((MR_Box) (Var_29));
    MR_hl_field(0, Var_10, 5) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_10, 6) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_10, 7) = ((MR_Box) (Var_32));
    MR_hl_field(0, Var_10, 8) = ((MR_Box) (Var_33));
    MR_hl_field(0, Var_10, 9) = ((MR_Box) (Var_34));
    MR_hl_field(0, Var_10, 10) = ((MR_Box) (Var_35));
    MR_hl_field(0, Var_10, 11) = ((MR_Box) (X_4));
    MR_hl_field(0, Var_10, 12) = ((MR_Box) (Var_37));
    MR_hl_field(0, Var_10, 13) = ((MR_Box) (Var_38));
    MR_hl_field(0, Var_10, 14) = ((MR_Box) (Var_39));
    MR_hl_field(0, Var_10, 15) = ((MR_Box) (Var_40));
    MR_hl_field(0, Var_10, 16) = ((MR_Box) (Var_41));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 1) = (MR_Box) ((MR_Unsigned) (Var_12));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 9) = ((MR_Box) (Var_20));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_22));
    MR_hl_field(0, base, 12) = ((MR_Box) (Var_23));
    MR_hl_field(0, base, 13) = ((MR_Box) (Var_24));
    MR_hl_field(0, base, 14) = ((MR_Box) (Var_10));
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_set_inst_graph_info_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 14))));
  MR_Word Var_10;
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_12 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))) & (MR_Integer) 1);
  MR_String Var_13 = ((MR_String) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_20 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))));
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 12))));
  MR_Word Var_24 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 13))));
  MR_Word Var_25 = ((MR_Word) ((MR_hl_field(0, Var_9, 0))));
  MR_Word Var_26 = ((MR_Word) ((MR_hl_field(0, Var_9, 1))));
  MR_Word Var_27 = ((MR_Word) ((MR_hl_field(0, Var_9, 2))));
  MR_Word Var_28 = ((MR_Word) ((MR_hl_field(0, Var_9, 3))));
  MR_Word Var_29 = ((MR_Word) ((MR_hl_field(0, Var_9, 4))));
  MR_Integer Var_30 = ((MR_Integer) ((MR_hl_field(0, Var_9, 5))));
  MR_Word Var_31 = ((MR_Word) ((MR_hl_field(0, Var_9, 6))));
  MR_Word Var_32 = ((MR_Word) ((MR_hl_field(0, Var_9, 7))));
  MR_Word Var_33 = ((MR_Word) ((MR_hl_field(0, Var_9, 8))));
  MR_Word Var_34 = ((MR_Word) ((MR_hl_field(0, Var_9, 9))));
  MR_Word Var_36 = ((MR_Word) ((MR_hl_field(0, Var_9, 11))));
  MR_Word Var_37 = ((MR_Word) ((MR_hl_field(0, Var_9, 12))));
  MR_Word Var_38 = ((MR_Word) ((MR_hl_field(0, Var_9, 13))));
  MR_Word Var_39 = ((MR_Word) ((MR_hl_field(0, Var_9, 14))));
  MR_Word Var_40 = ((MR_Word) ((MR_hl_field(0, Var_9, 15))));
  MR_Word Var_41 = ((MR_Word) ((MR_hl_field(0, Var_9, 16))));

  {
    Var_10 = (MR_Word) MR_new_object(MR_Word, (17 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_10, 0) = ((MR_Box) (Var_25));
    MR_hl_field(0, Var_10, 1) = ((MR_Box) (Var_26));
    MR_hl_field(0, Var_10, 2) = ((MR_Box) (Var_27));
    MR_hl_field(0, Var_10, 3) = ((MR_Box) (Var_28));
    MR_hl_field(0, Var_10, 4) = ((MR_Box) (Var_29));
    MR_hl_field(0, Var_10, 5) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_10, 6) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_10, 7) = ((MR_Box) (Var_32));
    MR_hl_field(0, Var_10, 8) = ((MR_Box) (Var_33));
    MR_hl_field(0, Var_10, 9) = ((MR_Box) (Var_34));
    MR_hl_field(0, Var_10, 10) = ((MR_Box) (X_4));
    MR_hl_field(0, Var_10, 11) = ((MR_Box) (Var_36));
    MR_hl_field(0, Var_10, 12) = ((MR_Box) (Var_37));
    MR_hl_field(0, Var_10, 13) = ((MR_Box) (Var_38));
    MR_hl_field(0, Var_10, 14) = ((MR_Box) (Var_39));
    MR_hl_field(0, Var_10, 15) = ((MR_Box) (Var_40));
    MR_hl_field(0, Var_10, 16) = ((MR_Box) (Var_41));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 1) = (MR_Box) ((MR_Unsigned) (Var_12));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 9) = ((MR_Box) (Var_20));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_22));
    MR_hl_field(0, base, 12) = ((MR_Box) (Var_23));
    MR_hl_field(0, base, 13) = ((MR_Box) (Var_24));
    MR_hl_field(0, base, 14) = ((MR_Box) (Var_10));
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_set_unproven_body_constraints_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_bool succeeded;
  MR_Word Var_8;
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 14))));

  Var_8 = ((MR_Word) ((MR_hl_field(0, Var_9, 9))));
  succeeded = (((MR_Word) X_4) == ((MR_Word) Var_8));
  if (succeeded)
    *STATE_VARIABLE_PI_7 = STATE_VARIABLE_PI_0_6;
  else
  {
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 14))));
    MR_Word Var_12;
    MR_Word Var_43 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
    MR_Word Var_44 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))) & (MR_Integer) 1);
    MR_String Var_45 = ((MR_String) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
    MR_Word Var_46 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
    MR_Word Var_47 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
    MR_Word Var_48 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
    MR_Word Var_49 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
    MR_Word Var_50 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
    MR_Word Var_51 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
    MR_Word Var_52 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))));
    MR_Word Var_53 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
    MR_Word Var_54 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
    MR_Word Var_55 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 12))));
    MR_Word Var_56 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 13))));
    MR_Word Var_57 = ((MR_Word) ((MR_hl_field(0, Var_11, 0))));
    MR_Word Var_58 = ((MR_Word) ((MR_hl_field(0, Var_11, 1))));
    MR_Word Var_59 = ((MR_Word) ((MR_hl_field(0, Var_11, 2))));
    MR_Word Var_60 = ((MR_Word) ((MR_hl_field(0, Var_11, 3))));
    MR_Word Var_61 = ((MR_Word) ((MR_hl_field(0, Var_11, 4))));
    MR_Integer Var_62 = ((MR_Integer) ((MR_hl_field(0, Var_11, 5))));
    MR_Word Var_63 = ((MR_Word) ((MR_hl_field(0, Var_11, 6))));
    MR_Word Var_64 = ((MR_Word) ((MR_hl_field(0, Var_11, 7))));
    MR_Word Var_65 = ((MR_Word) ((MR_hl_field(0, Var_11, 8))));
    MR_Word Var_67 = ((MR_Word) ((MR_hl_field(0, Var_11, 10))));
    MR_Word Var_68 = ((MR_Word) ((MR_hl_field(0, Var_11, 11))));
    MR_Word Var_69 = ((MR_Word) ((MR_hl_field(0, Var_11, 12))));
    MR_Word Var_70 = ((MR_Word) ((MR_hl_field(0, Var_11, 13))));
    MR_Word Var_71 = ((MR_Word) ((MR_hl_field(0, Var_11, 14))));
    MR_Word Var_72 = ((MR_Word) ((MR_hl_field(0, Var_11, 15))));
    MR_Word Var_73 = ((MR_Word) ((MR_hl_field(0, Var_11, 16))));

    {
      Var_12 = (MR_Word) MR_new_object(MR_Word, (17 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(0, Var_12, 0) = ((MR_Box) (Var_57));
      MR_hl_field(0, Var_12, 1) = ((MR_Box) (Var_58));
      MR_hl_field(0, Var_12, 2) = ((MR_Box) (Var_59));
      MR_hl_field(0, Var_12, 3) = ((MR_Box) (Var_60));
      MR_hl_field(0, Var_12, 4) = ((MR_Box) (Var_61));
      MR_hl_field(0, Var_12, 5) = ((MR_Box) (Var_62));
      MR_hl_field(0, Var_12, 6) = ((MR_Box) (Var_63));
      MR_hl_field(0, Var_12, 7) = ((MR_Box) (Var_64));
      MR_hl_field(0, Var_12, 8) = ((MR_Box) (Var_65));
      MR_hl_field(0, Var_12, 9) = ((MR_Box) (X_4));
      MR_hl_field(0, Var_12, 10) = ((MR_Box) (Var_67));
      MR_hl_field(0, Var_12, 11) = ((MR_Box) (Var_68));
      MR_hl_field(0, Var_12, 12) = ((MR_Box) (Var_69));
      MR_hl_field(0, Var_12, 13) = ((MR_Box) (Var_70));
      MR_hl_field(0, Var_12, 14) = ((MR_Box) (Var_71));
      MR_hl_field(0, Var_12, 15) = ((MR_Box) (Var_72));
      MR_hl_field(0, Var_12, 16) = ((MR_Box) (Var_73));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(0, base, 0) = ((MR_Box) (Var_43));
      MR_hl_field(0, base, 1) = (MR_Box) ((MR_Unsigned) (Var_44));
      MR_hl_field(0, base, 2) = ((MR_Box) (Var_45));
      MR_hl_field(0, base, 3) = ((MR_Box) (Var_46));
      MR_hl_field(0, base, 4) = ((MR_Box) (Var_47));
      MR_hl_field(0, base, 5) = ((MR_Box) (Var_48));
      MR_hl_field(0, base, 6) = ((MR_Box) (Var_49));
      MR_hl_field(0, base, 7) = ((MR_Box) (Var_50));
      MR_hl_field(0, base, 8) = ((MR_Box) (Var_51));
      MR_hl_field(0, base, 9) = ((MR_Box) (Var_52));
      MR_hl_field(0, base, 10) = ((MR_Box) (Var_53));
      MR_hl_field(0, base, 11) = ((MR_Box) (Var_54));
      MR_hl_field(0, base, 12) = ((MR_Box) (Var_55));
      MR_hl_field(0, base, 13) = ((MR_Box) (Var_56));
      MR_hl_field(0, base, 14) = ((MR_Box) (Var_12));
    }
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_set_constraint_map_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_bool succeeded;
  MR_Word Var_8;
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 14))));

  Var_8 = ((MR_Word) ((MR_hl_field(0, Var_9, 8))));
  succeeded = (((MR_Word) X_4) == ((MR_Word) Var_8));
  if (succeeded)
    *STATE_VARIABLE_PI_7 = STATE_VARIABLE_PI_0_6;
  else
  {
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 14))));
    MR_Word Var_12;
    MR_Word Var_43 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
    MR_Word Var_44 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))) & (MR_Integer) 1);
    MR_String Var_45 = ((MR_String) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
    MR_Word Var_46 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
    MR_Word Var_47 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
    MR_Word Var_48 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
    MR_Word Var_49 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
    MR_Word Var_50 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
    MR_Word Var_51 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
    MR_Word Var_52 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))));
    MR_Word Var_53 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
    MR_Word Var_54 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
    MR_Word Var_55 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 12))));
    MR_Word Var_56 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 13))));
    MR_Word Var_57 = ((MR_Word) ((MR_hl_field(0, Var_11, 0))));
    MR_Word Var_58 = ((MR_Word) ((MR_hl_field(0, Var_11, 1))));
    MR_Word Var_59 = ((MR_Word) ((MR_hl_field(0, Var_11, 2))));
    MR_Word Var_60 = ((MR_Word) ((MR_hl_field(0, Var_11, 3))));
    MR_Word Var_61 = ((MR_Word) ((MR_hl_field(0, Var_11, 4))));
    MR_Integer Var_62 = ((MR_Integer) ((MR_hl_field(0, Var_11, 5))));
    MR_Word Var_63 = ((MR_Word) ((MR_hl_field(0, Var_11, 6))));
    MR_Word Var_64 = ((MR_Word) ((MR_hl_field(0, Var_11, 7))));
    MR_Word Var_66 = ((MR_Word) ((MR_hl_field(0, Var_11, 9))));
    MR_Word Var_67 = ((MR_Word) ((MR_hl_field(0, Var_11, 10))));
    MR_Word Var_68 = ((MR_Word) ((MR_hl_field(0, Var_11, 11))));
    MR_Word Var_69 = ((MR_Word) ((MR_hl_field(0, Var_11, 12))));
    MR_Word Var_70 = ((MR_Word) ((MR_hl_field(0, Var_11, 13))));
    MR_Word Var_71 = ((MR_Word) ((MR_hl_field(0, Var_11, 14))));
    MR_Word Var_72 = ((MR_Word) ((MR_hl_field(0, Var_11, 15))));
    MR_Word Var_73 = ((MR_Word) ((MR_hl_field(0, Var_11, 16))));

    {
      Var_12 = (MR_Word) MR_new_object(MR_Word, (17 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(0, Var_12, 0) = ((MR_Box) (Var_57));
      MR_hl_field(0, Var_12, 1) = ((MR_Box) (Var_58));
      MR_hl_field(0, Var_12, 2) = ((MR_Box) (Var_59));
      MR_hl_field(0, Var_12, 3) = ((MR_Box) (Var_60));
      MR_hl_field(0, Var_12, 4) = ((MR_Box) (Var_61));
      MR_hl_field(0, Var_12, 5) = ((MR_Box) (Var_62));
      MR_hl_field(0, Var_12, 6) = ((MR_Box) (Var_63));
      MR_hl_field(0, Var_12, 7) = ((MR_Box) (Var_64));
      MR_hl_field(0, Var_12, 8) = ((MR_Box) (X_4));
      MR_hl_field(0, Var_12, 9) = ((MR_Box) (Var_66));
      MR_hl_field(0, Var_12, 10) = ((MR_Box) (Var_67));
      MR_hl_field(0, Var_12, 11) = ((MR_Box) (Var_68));
      MR_hl_field(0, Var_12, 12) = ((MR_Box) (Var_69));
      MR_hl_field(0, Var_12, 13) = ((MR_Box) (Var_70));
      MR_hl_field(0, Var_12, 14) = ((MR_Box) (Var_71));
      MR_hl_field(0, Var_12, 15) = ((MR_Box) (Var_72));
      MR_hl_field(0, Var_12, 16) = ((MR_Box) (Var_73));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(0, base, 0) = ((MR_Box) (Var_43));
      MR_hl_field(0, base, 1) = (MR_Box) ((MR_Unsigned) (Var_44));
      MR_hl_field(0, base, 2) = ((MR_Box) (Var_45));
      MR_hl_field(0, base, 3) = ((MR_Box) (Var_46));
      MR_hl_field(0, base, 4) = ((MR_Box) (Var_47));
      MR_hl_field(0, base, 5) = ((MR_Box) (Var_48));
      MR_hl_field(0, base, 6) = ((MR_Box) (Var_49));
      MR_hl_field(0, base, 7) = ((MR_Box) (Var_50));
      MR_hl_field(0, base, 8) = ((MR_Box) (Var_51));
      MR_hl_field(0, base, 9) = ((MR_Box) (Var_52));
      MR_hl_field(0, base, 10) = ((MR_Box) (Var_53));
      MR_hl_field(0, base, 11) = ((MR_Box) (Var_54));
      MR_hl_field(0, base, 12) = ((MR_Box) (Var_55));
      MR_hl_field(0, base, 13) = ((MR_Box) (Var_56));
      MR_hl_field(0, base, 14) = ((MR_Box) (Var_12));
    }
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_set_constraint_proof_map_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_bool succeeded;
  MR_Word Var_8;
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 14))));

  Var_8 = ((MR_Word) ((MR_hl_field(0, Var_9, 7))));
  succeeded = (((MR_Word) X_4) == ((MR_Word) Var_8));
  if (succeeded)
    *STATE_VARIABLE_PI_7 = STATE_VARIABLE_PI_0_6;
  else
  {
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 14))));
    MR_Word Var_12;
    MR_Word Var_43 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
    MR_Word Var_44 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))) & (MR_Integer) 1);
    MR_String Var_45 = ((MR_String) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
    MR_Word Var_46 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
    MR_Word Var_47 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
    MR_Word Var_48 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
    MR_Word Var_49 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
    MR_Word Var_50 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
    MR_Word Var_51 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
    MR_Word Var_52 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))));
    MR_Word Var_53 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
    MR_Word Var_54 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
    MR_Word Var_55 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 12))));
    MR_Word Var_56 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 13))));
    MR_Word Var_57 = ((MR_Word) ((MR_hl_field(0, Var_11, 0))));
    MR_Word Var_58 = ((MR_Word) ((MR_hl_field(0, Var_11, 1))));
    MR_Word Var_59 = ((MR_Word) ((MR_hl_field(0, Var_11, 2))));
    MR_Word Var_60 = ((MR_Word) ((MR_hl_field(0, Var_11, 3))));
    MR_Word Var_61 = ((MR_Word) ((MR_hl_field(0, Var_11, 4))));
    MR_Integer Var_62 = ((MR_Integer) ((MR_hl_field(0, Var_11, 5))));
    MR_Word Var_63 = ((MR_Word) ((MR_hl_field(0, Var_11, 6))));
    MR_Word Var_65 = ((MR_Word) ((MR_hl_field(0, Var_11, 8))));
    MR_Word Var_66 = ((MR_Word) ((MR_hl_field(0, Var_11, 9))));
    MR_Word Var_67 = ((MR_Word) ((MR_hl_field(0, Var_11, 10))));
    MR_Word Var_68 = ((MR_Word) ((MR_hl_field(0, Var_11, 11))));
    MR_Word Var_69 = ((MR_Word) ((MR_hl_field(0, Var_11, 12))));
    MR_Word Var_70 = ((MR_Word) ((MR_hl_field(0, Var_11, 13))));
    MR_Word Var_71 = ((MR_Word) ((MR_hl_field(0, Var_11, 14))));
    MR_Word Var_72 = ((MR_Word) ((MR_hl_field(0, Var_11, 15))));
    MR_Word Var_73 = ((MR_Word) ((MR_hl_field(0, Var_11, 16))));

    {
      Var_12 = (MR_Word) MR_new_object(MR_Word, (17 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(0, Var_12, 0) = ((MR_Box) (Var_57));
      MR_hl_field(0, Var_12, 1) = ((MR_Box) (Var_58));
      MR_hl_field(0, Var_12, 2) = ((MR_Box) (Var_59));
      MR_hl_field(0, Var_12, 3) = ((MR_Box) (Var_60));
      MR_hl_field(0, Var_12, 4) = ((MR_Box) (Var_61));
      MR_hl_field(0, Var_12, 5) = ((MR_Box) (Var_62));
      MR_hl_field(0, Var_12, 6) = ((MR_Box) (Var_63));
      MR_hl_field(0, Var_12, 7) = ((MR_Box) (X_4));
      MR_hl_field(0, Var_12, 8) = ((MR_Box) (Var_65));
      MR_hl_field(0, Var_12, 9) = ((MR_Box) (Var_66));
      MR_hl_field(0, Var_12, 10) = ((MR_Box) (Var_67));
      MR_hl_field(0, Var_12, 11) = ((MR_Box) (Var_68));
      MR_hl_field(0, Var_12, 12) = ((MR_Box) (Var_69));
      MR_hl_field(0, Var_12, 13) = ((MR_Box) (Var_70));
      MR_hl_field(0, Var_12, 14) = ((MR_Box) (Var_71));
      MR_hl_field(0, Var_12, 15) = ((MR_Box) (Var_72));
      MR_hl_field(0, Var_12, 16) = ((MR_Box) (Var_73));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(0, base, 0) = ((MR_Box) (Var_43));
      MR_hl_field(0, base, 1) = (MR_Box) ((MR_Unsigned) (Var_44));
      MR_hl_field(0, base, 2) = ((MR_Box) (Var_45));
      MR_hl_field(0, base, 3) = ((MR_Box) (Var_46));
      MR_hl_field(0, base, 4) = ((MR_Box) (Var_47));
      MR_hl_field(0, base, 5) = ((MR_Box) (Var_48));
      MR_hl_field(0, base, 6) = ((MR_Box) (Var_49));
      MR_hl_field(0, base, 7) = ((MR_Box) (Var_50));
      MR_hl_field(0, base, 8) = ((MR_Box) (Var_51));
      MR_hl_field(0, base, 9) = ((MR_Box) (Var_52));
      MR_hl_field(0, base, 10) = ((MR_Box) (Var_53));
      MR_hl_field(0, base, 11) = ((MR_Box) (Var_54));
      MR_hl_field(0, base, 12) = ((MR_Box) (Var_55));
      MR_hl_field(0, base, 13) = ((MR_Box) (Var_56));
      MR_hl_field(0, base, 14) = ((MR_Box) (Var_12));
    }
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_set_class_context_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_8 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_9 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))) & (MR_Integer) 1);
  MR_String Var_10 = ((MR_String) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_20 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 12))));
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 13))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 14))));

  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_8));
    MR_hl_field(0, base, 1) = (MR_Box) ((MR_Unsigned) (Var_9));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_10));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 9) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 11) = ((MR_Box) (X_4));
    MR_hl_field(0, base, 12) = ((MR_Box) (Var_20));
    MR_hl_field(0, base, 13) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 14) = ((MR_Box) (Var_22));
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_set_external_type_params_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_bool succeeded;
  MR_Word Var_8;
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 14))));

  Var_8 = ((MR_Word) ((MR_hl_field(0, Var_9, 6))));
  succeeded = (((MR_Word) X_4) == ((MR_Word) Var_8));
  if (succeeded)
    *STATE_VARIABLE_PI_7 = STATE_VARIABLE_PI_0_6;
  else
  {
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 14))));
    MR_Word Var_12;
    MR_Word Var_43 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
    MR_Word Var_44 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))) & (MR_Integer) 1);
    MR_String Var_45 = ((MR_String) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
    MR_Word Var_46 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
    MR_Word Var_47 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
    MR_Word Var_48 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
    MR_Word Var_49 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
    MR_Word Var_50 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
    MR_Word Var_51 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
    MR_Word Var_52 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))));
    MR_Word Var_53 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
    MR_Word Var_54 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
    MR_Word Var_55 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 12))));
    MR_Word Var_56 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 13))));
    MR_Word Var_57 = ((MR_Word) ((MR_hl_field(0, Var_11, 0))));
    MR_Word Var_58 = ((MR_Word) ((MR_hl_field(0, Var_11, 1))));
    MR_Word Var_59 = ((MR_Word) ((MR_hl_field(0, Var_11, 2))));
    MR_Word Var_60 = ((MR_Word) ((MR_hl_field(0, Var_11, 3))));
    MR_Word Var_61 = ((MR_Word) ((MR_hl_field(0, Var_11, 4))));
    MR_Integer Var_62 = ((MR_Integer) ((MR_hl_field(0, Var_11, 5))));
    MR_Word Var_64 = ((MR_Word) ((MR_hl_field(0, Var_11, 7))));
    MR_Word Var_65 = ((MR_Word) ((MR_hl_field(0, Var_11, 8))));
    MR_Word Var_66 = ((MR_Word) ((MR_hl_field(0, Var_11, 9))));
    MR_Word Var_67 = ((MR_Word) ((MR_hl_field(0, Var_11, 10))));
    MR_Word Var_68 = ((MR_Word) ((MR_hl_field(0, Var_11, 11))));
    MR_Word Var_69 = ((MR_Word) ((MR_hl_field(0, Var_11, 12))));
    MR_Word Var_70 = ((MR_Word) ((MR_hl_field(0, Var_11, 13))));
    MR_Word Var_71 = ((MR_Word) ((MR_hl_field(0, Var_11, 14))));
    MR_Word Var_72 = ((MR_Word) ((MR_hl_field(0, Var_11, 15))));
    MR_Word Var_73 = ((MR_Word) ((MR_hl_field(0, Var_11, 16))));

    {
      Var_12 = (MR_Word) MR_new_object(MR_Word, (17 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(0, Var_12, 0) = ((MR_Box) (Var_57));
      MR_hl_field(0, Var_12, 1) = ((MR_Box) (Var_58));
      MR_hl_field(0, Var_12, 2) = ((MR_Box) (Var_59));
      MR_hl_field(0, Var_12, 3) = ((MR_Box) (Var_60));
      MR_hl_field(0, Var_12, 4) = ((MR_Box) (Var_61));
      MR_hl_field(0, Var_12, 5) = ((MR_Box) (Var_62));
      MR_hl_field(0, Var_12, 6) = ((MR_Box) (X_4));
      MR_hl_field(0, Var_12, 7) = ((MR_Box) (Var_64));
      MR_hl_field(0, Var_12, 8) = ((MR_Box) (Var_65));
      MR_hl_field(0, Var_12, 9) = ((MR_Box) (Var_66));
      MR_hl_field(0, Var_12, 10) = ((MR_Box) (Var_67));
      MR_hl_field(0, Var_12, 11) = ((MR_Box) (Var_68));
      MR_hl_field(0, Var_12, 12) = ((MR_Box) (Var_69));
      MR_hl_field(0, Var_12, 13) = ((MR_Box) (Var_70));
      MR_hl_field(0, Var_12, 14) = ((MR_Box) (Var_71));
      MR_hl_field(0, Var_12, 15) = ((MR_Box) (Var_72));
      MR_hl_field(0, Var_12, 16) = ((MR_Box) (Var_73));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(0, base, 0) = ((MR_Box) (Var_43));
      MR_hl_field(0, base, 1) = (MR_Box) ((MR_Unsigned) (Var_44));
      MR_hl_field(0, base, 2) = ((MR_Box) (Var_45));
      MR_hl_field(0, base, 3) = ((MR_Box) (Var_46));
      MR_hl_field(0, base, 4) = ((MR_Box) (Var_47));
      MR_hl_field(0, base, 5) = ((MR_Box) (Var_48));
      MR_hl_field(0, base, 6) = ((MR_Box) (Var_49));
      MR_hl_field(0, base, 7) = ((MR_Box) (Var_50));
      MR_hl_field(0, base, 8) = ((MR_Box) (Var_51));
      MR_hl_field(0, base, 9) = ((MR_Box) (Var_52));
      MR_hl_field(0, base, 10) = ((MR_Box) (Var_53));
      MR_hl_field(0, base, 11) = ((MR_Box) (Var_54));
      MR_hl_field(0, base, 12) = ((MR_Box) (Var_55));
      MR_hl_field(0, base, 13) = ((MR_Box) (Var_56));
      MR_hl_field(0, base, 14) = ((MR_Box) (Var_12));
    }
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_set_polymorphism_added_args_3_p_0(
  MR_Integer X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 14))));
  MR_Word Var_10;
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_12 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))) & (MR_Integer) 1);
  MR_String Var_13 = ((MR_String) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_20 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))));
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 12))));
  MR_Word Var_24 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 13))));
  MR_Word Var_25 = ((MR_Word) ((MR_hl_field(0, Var_9, 0))));
  MR_Word Var_26 = ((MR_Word) ((MR_hl_field(0, Var_9, 1))));
  MR_Word Var_27 = ((MR_Word) ((MR_hl_field(0, Var_9, 2))));
  MR_Word Var_28 = ((MR_Word) ((MR_hl_field(0, Var_9, 3))));
  MR_Word Var_29 = ((MR_Word) ((MR_hl_field(0, Var_9, 4))));
  MR_Word Var_31 = ((MR_Word) ((MR_hl_field(0, Var_9, 6))));
  MR_Word Var_32 = ((MR_Word) ((MR_hl_field(0, Var_9, 7))));
  MR_Word Var_33 = ((MR_Word) ((MR_hl_field(0, Var_9, 8))));
  MR_Word Var_34 = ((MR_Word) ((MR_hl_field(0, Var_9, 9))));
  MR_Word Var_35 = ((MR_Word) ((MR_hl_field(0, Var_9, 10))));
  MR_Word Var_36 = ((MR_Word) ((MR_hl_field(0, Var_9, 11))));
  MR_Word Var_37 = ((MR_Word) ((MR_hl_field(0, Var_9, 12))));
  MR_Word Var_38 = ((MR_Word) ((MR_hl_field(0, Var_9, 13))));
  MR_Word Var_39 = ((MR_Word) ((MR_hl_field(0, Var_9, 14))));
  MR_Word Var_40 = ((MR_Word) ((MR_hl_field(0, Var_9, 15))));
  MR_Word Var_41 = ((MR_Word) ((MR_hl_field(0, Var_9, 16))));

  {
    Var_10 = (MR_Word) MR_new_object(MR_Word, (17 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_10, 0) = ((MR_Box) (Var_25));
    MR_hl_field(0, Var_10, 1) = ((MR_Box) (Var_26));
    MR_hl_field(0, Var_10, 2) = ((MR_Box) (Var_27));
    MR_hl_field(0, Var_10, 3) = ((MR_Box) (Var_28));
    MR_hl_field(0, Var_10, 4) = ((MR_Box) (Var_29));
    MR_hl_field(0, Var_10, 5) = ((MR_Box) (X_4));
    MR_hl_field(0, Var_10, 6) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_10, 7) = ((MR_Box) (Var_32));
    MR_hl_field(0, Var_10, 8) = ((MR_Box) (Var_33));
    MR_hl_field(0, Var_10, 9) = ((MR_Box) (Var_34));
    MR_hl_field(0, Var_10, 10) = ((MR_Box) (Var_35));
    MR_hl_field(0, Var_10, 11) = ((MR_Box) (Var_36));
    MR_hl_field(0, Var_10, 12) = ((MR_Box) (Var_37));
    MR_hl_field(0, Var_10, 13) = ((MR_Box) (Var_38));
    MR_hl_field(0, Var_10, 14) = ((MR_Box) (Var_39));
    MR_hl_field(0, Var_10, 15) = ((MR_Box) (Var_40));
    MR_hl_field(0, Var_10, 16) = ((MR_Box) (Var_41));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 1) = (MR_Box) ((MR_Unsigned) (Var_12));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 9) = ((MR_Box) (Var_20));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_22));
    MR_hl_field(0, base, 12) = ((MR_Box) (Var_23));
    MR_hl_field(0, base, 13) = ((MR_Box) (Var_24));
    MR_hl_field(0, base, 14) = ((MR_Box) (Var_10));
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_set_existq_tvar_binding_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 14))));
  MR_Word Var_10;
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_12 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))) & (MR_Integer) 1);
  MR_String Var_13 = ((MR_String) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_20 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))));
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 12))));
  MR_Word Var_24 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 13))));
  MR_Word Var_25 = ((MR_Word) ((MR_hl_field(0, Var_9, 0))));
  MR_Word Var_26 = ((MR_Word) ((MR_hl_field(0, Var_9, 1))));
  MR_Word Var_27 = ((MR_Word) ((MR_hl_field(0, Var_9, 2))));
  MR_Word Var_28 = ((MR_Word) ((MR_hl_field(0, Var_9, 3))));
  MR_Integer Var_30 = ((MR_Integer) ((MR_hl_field(0, Var_9, 5))));
  MR_Word Var_31 = ((MR_Word) ((MR_hl_field(0, Var_9, 6))));
  MR_Word Var_32 = ((MR_Word) ((MR_hl_field(0, Var_9, 7))));
  MR_Word Var_33 = ((MR_Word) ((MR_hl_field(0, Var_9, 8))));
  MR_Word Var_34 = ((MR_Word) ((MR_hl_field(0, Var_9, 9))));
  MR_Word Var_35 = ((MR_Word) ((MR_hl_field(0, Var_9, 10))));
  MR_Word Var_36 = ((MR_Word) ((MR_hl_field(0, Var_9, 11))));
  MR_Word Var_37 = ((MR_Word) ((MR_hl_field(0, Var_9, 12))));
  MR_Word Var_38 = ((MR_Word) ((MR_hl_field(0, Var_9, 13))));
  MR_Word Var_39 = ((MR_Word) ((MR_hl_field(0, Var_9, 14))));
  MR_Word Var_40 = ((MR_Word) ((MR_hl_field(0, Var_9, 15))));
  MR_Word Var_41 = ((MR_Word) ((MR_hl_field(0, Var_9, 16))));

  {
    Var_10 = (MR_Word) MR_new_object(MR_Word, (17 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_10, 0) = ((MR_Box) (Var_25));
    MR_hl_field(0, Var_10, 1) = ((MR_Box) (Var_26));
    MR_hl_field(0, Var_10, 2) = ((MR_Box) (Var_27));
    MR_hl_field(0, Var_10, 3) = ((MR_Box) (Var_28));
    MR_hl_field(0, Var_10, 4) = ((MR_Box) (X_4));
    MR_hl_field(0, Var_10, 5) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_10, 6) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_10, 7) = ((MR_Box) (Var_32));
    MR_hl_field(0, Var_10, 8) = ((MR_Box) (Var_33));
    MR_hl_field(0, Var_10, 9) = ((MR_Box) (Var_34));
    MR_hl_field(0, Var_10, 10) = ((MR_Box) (Var_35));
    MR_hl_field(0, Var_10, 11) = ((MR_Box) (Var_36));
    MR_hl_field(0, Var_10, 12) = ((MR_Box) (Var_37));
    MR_hl_field(0, Var_10, 13) = ((MR_Box) (Var_38));
    MR_hl_field(0, Var_10, 14) = ((MR_Box) (Var_39));
    MR_hl_field(0, Var_10, 15) = ((MR_Box) (Var_40));
    MR_hl_field(0, Var_10, 16) = ((MR_Box) (Var_41));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 1) = (MR_Box) ((MR_Unsigned) (Var_12));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 9) = ((MR_Box) (Var_20));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_22));
    MR_hl_field(0, base, 12) = ((MR_Box) (Var_23));
    MR_hl_field(0, base, 13) = ((MR_Box) (Var_24));
    MR_hl_field(0, base, 14) = ((MR_Box) (Var_10));
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_set_tvar_kind_map_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_bool succeeded;
  MR_Word Var_8;
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 14))));

  Var_8 = ((MR_Word) ((MR_hl_field(0, Var_9, 3))));
  succeeded = (((MR_Word) X_4) == ((MR_Word) Var_8));
  if (succeeded)
    *STATE_VARIABLE_PI_7 = STATE_VARIABLE_PI_0_6;
  else
  {
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 14))));
    MR_Word Var_12;
    MR_Word Var_43 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
    MR_Word Var_44 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))) & (MR_Integer) 1);
    MR_String Var_45 = ((MR_String) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
    MR_Word Var_46 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
    MR_Word Var_47 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
    MR_Word Var_48 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
    MR_Word Var_49 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
    MR_Word Var_50 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
    MR_Word Var_51 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
    MR_Word Var_52 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))));
    MR_Word Var_53 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
    MR_Word Var_54 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
    MR_Word Var_55 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 12))));
    MR_Word Var_56 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 13))));
    MR_Word Var_57 = ((MR_Word) ((MR_hl_field(0, Var_11, 0))));
    MR_Word Var_58 = ((MR_Word) ((MR_hl_field(0, Var_11, 1))));
    MR_Word Var_59 = ((MR_Word) ((MR_hl_field(0, Var_11, 2))));
    MR_Word Var_61 = ((MR_Word) ((MR_hl_field(0, Var_11, 4))));
    MR_Integer Var_62 = ((MR_Integer) ((MR_hl_field(0, Var_11, 5))));
    MR_Word Var_63 = ((MR_Word) ((MR_hl_field(0, Var_11, 6))));
    MR_Word Var_64 = ((MR_Word) ((MR_hl_field(0, Var_11, 7))));
    MR_Word Var_65 = ((MR_Word) ((MR_hl_field(0, Var_11, 8))));
    MR_Word Var_66 = ((MR_Word) ((MR_hl_field(0, Var_11, 9))));
    MR_Word Var_67 = ((MR_Word) ((MR_hl_field(0, Var_11, 10))));
    MR_Word Var_68 = ((MR_Word) ((MR_hl_field(0, Var_11, 11))));
    MR_Word Var_69 = ((MR_Word) ((MR_hl_field(0, Var_11, 12))));
    MR_Word Var_70 = ((MR_Word) ((MR_hl_field(0, Var_11, 13))));
    MR_Word Var_71 = ((MR_Word) ((MR_hl_field(0, Var_11, 14))));
    MR_Word Var_72 = ((MR_Word) ((MR_hl_field(0, Var_11, 15))));
    MR_Word Var_73 = ((MR_Word) ((MR_hl_field(0, Var_11, 16))));

    {
      Var_12 = (MR_Word) MR_new_object(MR_Word, (17 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(0, Var_12, 0) = ((MR_Box) (Var_57));
      MR_hl_field(0, Var_12, 1) = ((MR_Box) (Var_58));
      MR_hl_field(0, Var_12, 2) = ((MR_Box) (Var_59));
      MR_hl_field(0, Var_12, 3) = ((MR_Box) (X_4));
      MR_hl_field(0, Var_12, 4) = ((MR_Box) (Var_61));
      MR_hl_field(0, Var_12, 5) = ((MR_Box) (Var_62));
      MR_hl_field(0, Var_12, 6) = ((MR_Box) (Var_63));
      MR_hl_field(0, Var_12, 7) = ((MR_Box) (Var_64));
      MR_hl_field(0, Var_12, 8) = ((MR_Box) (Var_65));
      MR_hl_field(0, Var_12, 9) = ((MR_Box) (Var_66));
      MR_hl_field(0, Var_12, 10) = ((MR_Box) (Var_67));
      MR_hl_field(0, Var_12, 11) = ((MR_Box) (Var_68));
      MR_hl_field(0, Var_12, 12) = ((MR_Box) (Var_69));
      MR_hl_field(0, Var_12, 13) = ((MR_Box) (Var_70));
      MR_hl_field(0, Var_12, 14) = ((MR_Box) (Var_71));
      MR_hl_field(0, Var_12, 15) = ((MR_Box) (Var_72));
      MR_hl_field(0, Var_12, 16) = ((MR_Box) (Var_73));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(0, base, 0) = ((MR_Box) (Var_43));
      MR_hl_field(0, base, 1) = (MR_Box) ((MR_Unsigned) (Var_44));
      MR_hl_field(0, base, 2) = ((MR_Box) (Var_45));
      MR_hl_field(0, base, 3) = ((MR_Box) (Var_46));
      MR_hl_field(0, base, 4) = ((MR_Box) (Var_47));
      MR_hl_field(0, base, 5) = ((MR_Box) (Var_48));
      MR_hl_field(0, base, 6) = ((MR_Box) (Var_49));
      MR_hl_field(0, base, 7) = ((MR_Box) (Var_50));
      MR_hl_field(0, base, 8) = ((MR_Box) (Var_51));
      MR_hl_field(0, base, 9) = ((MR_Box) (Var_52));
      MR_hl_field(0, base, 10) = ((MR_Box) (Var_53));
      MR_hl_field(0, base, 11) = ((MR_Box) (Var_54));
      MR_hl_field(0, base, 12) = ((MR_Box) (Var_55));
      MR_hl_field(0, base, 13) = ((MR_Box) (Var_56));
      MR_hl_field(0, base, 14) = ((MR_Box) (Var_12));
    }
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_set_typevarset_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_bool succeeded;
  MR_Word Var_8 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))));

  succeeded = (((MR_Word) X_4) == ((MR_Word) Var_8));
  if (succeeded)
    *STATE_VARIABLE_PI_7 = STATE_VARIABLE_PI_0_6;
  else
  {
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
    MR_Word Var_24 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))) & (MR_Integer) 1);
    MR_String Var_25 = ((MR_String) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
    MR_Word Var_26 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
    MR_Word Var_27 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
    MR_Word Var_28 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
    MR_Word Var_29 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
    MR_Word Var_30 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
    MR_Word Var_31 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
    MR_Word Var_33 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
    MR_Word Var_34 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
    MR_Word Var_35 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 12))));
    MR_Word Var_36 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 13))));
    MR_Word Var_37 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 14))));

    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(0, base, 0) = ((MR_Box) (Var_23));
      MR_hl_field(0, base, 1) = (MR_Box) ((MR_Unsigned) (Var_24));
      MR_hl_field(0, base, 2) = ((MR_Box) (Var_25));
      MR_hl_field(0, base, 3) = ((MR_Box) (Var_26));
      MR_hl_field(0, base, 4) = ((MR_Box) (Var_27));
      MR_hl_field(0, base, 5) = ((MR_Box) (Var_28));
      MR_hl_field(0, base, 6) = ((MR_Box) (Var_29));
      MR_hl_field(0, base, 7) = ((MR_Box) (Var_30));
      MR_hl_field(0, base, 8) = ((MR_Box) (Var_31));
      MR_hl_field(0, base, 9) = ((MR_Box) (X_4));
      MR_hl_field(0, base, 10) = ((MR_Box) (Var_33));
      MR_hl_field(0, base, 11) = ((MR_Box) (Var_34));
      MR_hl_field(0, base, 12) = ((MR_Box) (Var_35));
      MR_hl_field(0, base, 13) = ((MR_Box) (Var_36));
      MR_hl_field(0, base, 14) = ((MR_Box) (Var_37));
    }
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_set_markers_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_8 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_9 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))) & (MR_Integer) 1);
  MR_String Var_10 = ((MR_String) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_20 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 12))));
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 13))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 14))));

  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_8));
    MR_hl_field(0, base, 1) = (MR_Box) ((MR_Unsigned) (Var_9));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_10));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 6) = ((MR_Box) (X_4));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 9) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 12) = ((MR_Box) (Var_20));
    MR_hl_field(0, base, 13) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 14) = ((MR_Box) (Var_22));
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_set_goal_type_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 14))));
  MR_Word Var_10;
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_12 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))) & (MR_Integer) 1);
  MR_String Var_13 = ((MR_String) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_20 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))));
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 12))));
  MR_Word Var_24 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 13))));
  MR_Word Var_25 = ((MR_Word) ((MR_hl_field(0, Var_9, 0))));
  MR_Word Var_26 = ((MR_Word) ((MR_hl_field(0, Var_9, 1))));
  MR_Word Var_28 = ((MR_Word) ((MR_hl_field(0, Var_9, 3))));
  MR_Word Var_29 = ((MR_Word) ((MR_hl_field(0, Var_9, 4))));
  MR_Integer Var_30 = ((MR_Integer) ((MR_hl_field(0, Var_9, 5))));
  MR_Word Var_31 = ((MR_Word) ((MR_hl_field(0, Var_9, 6))));
  MR_Word Var_32 = ((MR_Word) ((MR_hl_field(0, Var_9, 7))));
  MR_Word Var_33 = ((MR_Word) ((MR_hl_field(0, Var_9, 8))));
  MR_Word Var_34 = ((MR_Word) ((MR_hl_field(0, Var_9, 9))));
  MR_Word Var_35 = ((MR_Word) ((MR_hl_field(0, Var_9, 10))));
  MR_Word Var_36 = ((MR_Word) ((MR_hl_field(0, Var_9, 11))));
  MR_Word Var_37 = ((MR_Word) ((MR_hl_field(0, Var_9, 12))));
  MR_Word Var_38 = ((MR_Word) ((MR_hl_field(0, Var_9, 13))));
  MR_Word Var_39 = ((MR_Word) ((MR_hl_field(0, Var_9, 14))));
  MR_Word Var_40 = ((MR_Word) ((MR_hl_field(0, Var_9, 15))));
  MR_Word Var_41 = ((MR_Word) ((MR_hl_field(0, Var_9, 16))));

  {
    Var_10 = (MR_Word) MR_new_object(MR_Word, (17 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_10, 0) = ((MR_Box) (Var_25));
    MR_hl_field(0, Var_10, 1) = ((MR_Box) (Var_26));
    MR_hl_field(0, Var_10, 2) = ((MR_Box) (X_4));
    MR_hl_field(0, Var_10, 3) = ((MR_Box) (Var_28));
    MR_hl_field(0, Var_10, 4) = ((MR_Box) (Var_29));
    MR_hl_field(0, Var_10, 5) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_10, 6) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_10, 7) = ((MR_Box) (Var_32));
    MR_hl_field(0, Var_10, 8) = ((MR_Box) (Var_33));
    MR_hl_field(0, Var_10, 9) = ((MR_Box) (Var_34));
    MR_hl_field(0, Var_10, 10) = ((MR_Box) (Var_35));
    MR_hl_field(0, Var_10, 11) = ((MR_Box) (Var_36));
    MR_hl_field(0, Var_10, 12) = ((MR_Box) (Var_37));
    MR_hl_field(0, Var_10, 13) = ((MR_Box) (Var_38));
    MR_hl_field(0, Var_10, 14) = ((MR_Box) (Var_39));
    MR_hl_field(0, Var_10, 15) = ((MR_Box) (Var_40));
    MR_hl_field(0, Var_10, 16) = ((MR_Box) (Var_41));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 1) = (MR_Box) ((MR_Unsigned) (Var_12));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 9) = ((MR_Box) (Var_20));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_22));
    MR_hl_field(0, base, 12) = ((MR_Box) (Var_23));
    MR_hl_field(0, base, 13) = ((MR_Box) (Var_24));
    MR_hl_field(0, base, 14) = ((MR_Box) (Var_10));
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_set_status_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_8 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_9 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))) & (MR_Integer) 1);
  MR_String Var_10 = ((MR_String) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_20 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 12))));
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 13))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 14))));

  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_8));
    MR_hl_field(0, base, 1) = (MR_Box) ((MR_Unsigned) (Var_9));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_10));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 5) = ((MR_Box) (X_4));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 9) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 12) = ((MR_Box) (Var_20));
    MR_hl_field(0, base, 13) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 14) = ((MR_Box) (Var_22));
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_set_origin_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_bool succeeded;
  MR_Word Var_8 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));

  succeeded = (((MR_Word) X_4) == ((MR_Word) Var_8));
  if (succeeded)
    *STATE_VARIABLE_PI_7 = STATE_VARIABLE_PI_0_6;
  else
  {
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
    MR_Word Var_24 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))) & (MR_Integer) 1);
    MR_String Var_25 = ((MR_String) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
    MR_Word Var_26 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
    MR_Word Var_28 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
    MR_Word Var_29 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
    MR_Word Var_30 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
    MR_Word Var_31 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
    MR_Word Var_32 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))));
    MR_Word Var_33 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
    MR_Word Var_34 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
    MR_Word Var_35 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 12))));
    MR_Word Var_36 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 13))));
    MR_Word Var_37 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 14))));

    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(0, base, 0) = ((MR_Box) (Var_23));
      MR_hl_field(0, base, 1) = (MR_Box) ((MR_Unsigned) (Var_24));
      MR_hl_field(0, base, 2) = ((MR_Box) (Var_25));
      MR_hl_field(0, base, 3) = ((MR_Box) (Var_26));
      MR_hl_field(0, base, 4) = ((MR_Box) (X_4));
      MR_hl_field(0, base, 5) = ((MR_Box) (Var_28));
      MR_hl_field(0, base, 6) = ((MR_Box) (Var_29));
      MR_hl_field(0, base, 7) = ((MR_Box) (Var_30));
      MR_hl_field(0, base, 8) = ((MR_Box) (Var_31));
      MR_hl_field(0, base, 9) = ((MR_Box) (Var_32));
      MR_hl_field(0, base, 10) = ((MR_Box) (Var_33));
      MR_hl_field(0, base, 11) = ((MR_Box) (Var_34));
      MR_hl_field(0, base, 12) = ((MR_Box) (Var_35));
      MR_hl_field(0, base, 13) = ((MR_Box) (Var_36));
      MR_hl_field(0, base, 14) = ((MR_Box) (Var_37));
    }
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_set_orig_arity_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_8 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_9 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))) & (MR_Integer) 1);
  MR_String Var_10 = ((MR_String) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_20 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 12))));
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 13))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 14))));

  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_8));
    MR_hl_field(0, base, 1) = (MR_Box) ((MR_Unsigned) (Var_9));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_10));
    MR_hl_field(0, base, 3) = ((MR_Box) (X_4));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 9) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 12) = ((MR_Box) (Var_20));
    MR_hl_field(0, base, 13) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 14) = ((MR_Box) (Var_22));
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_set_name_3_p_0(
  MR_String X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_8 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_9 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))) & (MR_Integer) 1);
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_20 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 12))));
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 13))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 14))));

  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_8));
    MR_hl_field(0, base, 1) = (MR_Box) ((MR_Unsigned) (Var_9));
    MR_hl_field(0, base, 2) = ((MR_Box) (X_4));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 9) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 12) = ((MR_Box) (Var_20));
    MR_hl_field(0, base, 13) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 14) = ((MR_Box) (Var_22));
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_set_is_pred_or_func_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_bool succeeded;
  MR_Word Var_37 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))) & (MR_Integer) 1);

  succeeded = (X_4 == Var_37);
  if (succeeded)
    *STATE_VARIABLE_PI_7 = STATE_VARIABLE_PI_0_6;
  else
  {
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
    MR_String Var_24 = ((MR_String) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
    MR_Word Var_25 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
    MR_Word Var_26 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
    MR_Word Var_27 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
    MR_Word Var_28 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
    MR_Word Var_29 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
    MR_Word Var_30 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
    MR_Word Var_31 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))));
    MR_Word Var_32 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
    MR_Word Var_33 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
    MR_Word Var_34 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 12))));
    MR_Word Var_35 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 13))));
    MR_Word Var_36 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 14))));

    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(0, base, 0) = ((MR_Box) (Var_22));
      MR_hl_field(0, base, 1) = (MR_Box) ((MR_Unsigned) (X_4));
      MR_hl_field(0, base, 2) = ((MR_Box) (Var_24));
      MR_hl_field(0, base, 3) = ((MR_Box) (Var_25));
      MR_hl_field(0, base, 4) = ((MR_Box) (Var_26));
      MR_hl_field(0, base, 5) = ((MR_Box) (Var_27));
      MR_hl_field(0, base, 6) = ((MR_Box) (Var_28));
      MR_hl_field(0, base, 7) = ((MR_Box) (Var_29));
      MR_hl_field(0, base, 8) = ((MR_Box) (Var_30));
      MR_hl_field(0, base, 9) = ((MR_Box) (Var_31));
      MR_hl_field(0, base, 10) = ((MR_Box) (Var_32));
      MR_hl_field(0, base, 11) = ((MR_Box) (Var_33));
      MR_hl_field(0, base, 12) = ((MR_Box) (Var_34));
      MR_hl_field(0, base, 13) = ((MR_Box) (Var_35));
      MR_hl_field(0, base, 14) = ((MR_Box) (Var_36));
    }
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_set_module_name_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_9 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))) & (MR_Integer) 1);
  MR_String Var_10 = ((MR_String) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_20 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 12))));
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 13))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 14))));

  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (X_4));
    MR_hl_field(0, base, 1) = (MR_Box) ((MR_Unsigned) (Var_9));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_10));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 9) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 12) = ((MR_Box) (Var_20));
    MR_hl_field(0, base, 13) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 14) = ((MR_Box) (Var_22));
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_proc_table_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  *X_4 = ((MR_Word) ((MR_hl_field(0, PI_3, 13))));
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_clauses_info_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  *X_4 = ((MR_Word) ((MR_hl_field(0, PI_3, 12))));
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_instance_method_arg_types_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 14))));

  *X_4 = ((MR_Word) ((MR_hl_field(0, Var_5, 16))));
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_format_call_info_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 14))));

  *X_4 = ((MR_Word) ((MR_hl_field(0, Var_5, 15))));
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_obsolete_in_favour_of_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 14))));

  *X_4 = ((MR_Word) ((MR_hl_field(0, Var_5, 14))));
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_assertions_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 14))));

  *X_4 = ((MR_Word) ((MR_hl_field(0, Var_5, 13))));
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_var_name_remap_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 14))));

  *X_4 = ((MR_Word) ((MR_hl_field(0, Var_5, 12))));
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_arg_modes_maps_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 14))));

  *X_4 = ((MR_Word) ((MR_hl_field(0, Var_5, 11))));
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_inst_graph_info_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 14))));

  *X_4 = ((MR_Word) ((MR_hl_field(0, Var_5, 10))));
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_unproven_body_constraints_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 14))));

  *X_4 = ((MR_Word) ((MR_hl_field(0, Var_5, 9))));
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_constraint_map_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 14))));

  *X_4 = ((MR_Word) ((MR_hl_field(0, Var_5, 8))));
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_constraint_proof_map_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 14))));

  *X_4 = ((MR_Word) ((MR_hl_field(0, Var_5, 7))));
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_class_context_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  *X_4 = ((MR_Word) ((MR_hl_field(0, PI_3, 11))));
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_external_type_params_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 14))));

  *X_4 = ((MR_Word) ((MR_hl_field(0, Var_5, 6))));
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_polymorphism_added_args_2_p_0(
  MR_Word PI_3,
  MR_Integer * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 14))));

  *X_4 = ((MR_Integer) ((MR_hl_field(0, Var_5, 5))));
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_existq_tvar_binding_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 14))));

  *X_4 = ((MR_Word) ((MR_hl_field(0, Var_5, 4))));
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_exist_quant_tvars_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  *X_4 = ((MR_Word) ((MR_hl_field(0, PI_3, 10))));
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_tvar_kind_map_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 14))));

  *X_4 = ((MR_Word) ((MR_hl_field(0, Var_5, 3))));
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_typevarset_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  *X_4 = ((MR_Word) ((MR_hl_field(0, PI_3, 9))));
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_arg_types_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  *X_4 = ((MR_Word) ((MR_hl_field(0, PI_3, 7))));
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_markers_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  *X_4 = ((MR_Word) ((MR_hl_field(0, PI_3, 6))));
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_goal_type_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 14))));

  *X_4 = ((MR_Word) ((MR_hl_field(0, Var_5, 2))));
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_status_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  *X_4 = ((MR_Word) ((MR_hl_field(0, PI_3, 5))));
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_origin_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  *X_4 = ((MR_Word) ((MR_hl_field(0, PI_3, 4))));
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_cur_user_decl_info_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 14))));

  *X_4 = ((MR_Word) ((MR_hl_field(0, Var_5, 1))));
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_context_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, PI_3, 14))));

  *X_4 = ((MR_Word) ((MR_hl_field(0, Var_5, 0))));
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_orig_arity_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  *X_4 = ((MR_Word) ((MR_hl_field(0, PI_3, 3))));
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_name_2_p_0(
  MR_Word PI_3,
  MR_String * X_4)
{
  *X_4 = ((MR_String) ((MR_hl_field(0, PI_3, 2))));
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_is_pred_or_func_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  *X_4 = ((MR_Unsigned) ((MR_hl_field(0, PI_3, 1))) & (MR_Integer) 1);
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_module_name_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  *X_4 = ((MR_Word) ((MR_hl_field(0, PI_3, 0))));
}

MR_Word MR_CALL 
hlds__hlds_pred__pred_info_user_arity_1_f_0(
  MR_Word PI_3)
{
  MR_Word UserArity_4;
  MR_Word PredOrFunc_5 = ((MR_Unsigned) ((MR_hl_field(0, PI_3, 1))) & (MR_Integer) 1);
  MR_Word PredFormArity_6 = ((MR_Word) ((MR_hl_field(0, PI_3, 3))));

  parse_tree__prog_util__user_arity_pred_form_arity_3_p_1(PredOrFunc_5, &UserArity_4, PredFormArity_6);
  return UserArity_4;
}

MR_Word MR_CALL 
hlds__hlds_pred__pred_info_pred_form_arity_1_f_0(
  MR_Word PI_3)
{
  MR_Word PredFormArity_4 = ((MR_Word) ((MR_hl_field(0, PI_3, 3))));

  return PredFormArity_4;
}

MR_Word MR_CALL 
hlds__hlds_pred__pred_info_is_pred_or_func_1_f_0(
  MR_Word PI_3)
{
  MR_Word X_4 = ((MR_Unsigned) ((MR_hl_field(0, PI_3, 1))) & (MR_Integer) 1);

  return X_4;
}

MR_String MR_CALL 
hlds__hlds_pred__pred_info_name_1_f_0(
  MR_Word PI_3)
{
  MR_String X_4 = ((MR_String) ((MR_hl_field(0, PI_3, 2))));

  return X_4;
}

MR_Word MR_CALL 
hlds__hlds_pred__pred_info_module_1_f_0(
  MR_Word PI_3)
{
  MR_Word X_4 = ((MR_Word) ((MR_hl_field(0, PI_3, 0))));

  return X_4;
}

void MR_CALL 
hlds__hlds_pred__add_new_proc_14_p_0(
  MR_Word ModuleInfo_15,
  MR_Word Context_16,
  MR_Word SeqNum_17,
  MR_Word InstVarSet_18,
  MR_Word ArgModes_19,
  MR_Word MaybeDeclaredArgModes_20,
  MR_Word MaybeArgLives_21,
  MR_Word DetismDecl_22,
  MR_Word MaybeDetism_23,
  MR_Word IsAddressTaken_24,
  MR_Word HasParallelConj_25,
  MR_Word STATE_VARIABLE_PredInfo_0_34,
  MR_Word * STATE_VARIABLE_PredInfo_35,
  MR_Integer * ProcId_27)
{
  MR_Word ArgTypes_28 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_34, 7))));
  MR_Word VarNameRemap_29;
  MR_Word ProcInfo0_30;
  MR_Word ProcInfo_31;
  MR_Word ProcTable0_32;
  MR_Word ProcTable_33;
  MR_Word Var_51 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_34, 14))));
  MR_Word ProcIdsInfos_109;
  MR_Word Var_83;
  MR_Word Var_84;
  MR_Word Var_85;
  MR_Word Var_86;
  MR_Word Var_88;
  MR_Word Var_89;
  MR_Word Var_90;
  MR_Word Var_91;
  MR_Word Var_92;
  MR_Word Var_93;
  MR_Word Var_94;

  VarNameRemap_29 = ((MR_Word) ((MR_hl_field(0, Var_51, 12))));
  hlds__hlds_pred__proc_info_init_13_p_0(ModuleInfo_15, Context_16, SeqNum_17, ArgTypes_28, MaybeDeclaredArgModes_20, ArgModes_19, MaybeArgLives_21, DetismDecl_22, MaybeDetism_23, IsAddressTaken_24, HasParallelConj_25, VarNameRemap_29, &ProcInfo0_30);
  Var_83 = ((MR_Word) ((MR_hl_field(0, ProcInfo0_30, 0))));
  Var_84 = ((MR_Word) ((MR_hl_field(0, ProcInfo0_30, 1))));
  Var_85 = ((MR_Word) ((MR_hl_field(0, ProcInfo0_30, 2))));
  Var_86 = ((MR_Word) ((MR_hl_field(0, ProcInfo0_30, 3))));
  Var_88 = ((MR_Word) ((MR_hl_field(0, ProcInfo0_30, 5))));
  Var_89 = ((MR_Word) ((MR_hl_field(0, ProcInfo0_30, 6))));
  Var_90 = ((MR_Word) ((MR_hl_field(0, ProcInfo0_30, 7))));
  Var_91 = ((MR_Word) ((MR_hl_field(0, ProcInfo0_30, 8))));
  Var_92 = ((MR_Unsigned) ((MR_hl_field(0, ProcInfo0_30, 9))) & (MR_Integer) 7);
  Var_93 = ((MR_Word) ((MR_hl_field(0, ProcInfo0_30, 10))));
  Var_94 = ((MR_Word) ((MR_hl_field(0, ProcInfo0_30, 11))));
  {
    ProcInfo_31 = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, ProcInfo_31, 0) = ((MR_Box) (Var_83));
    MR_hl_field(0, ProcInfo_31, 1) = ((MR_Box) (Var_84));
    MR_hl_field(0, ProcInfo_31, 2) = ((MR_Box) (Var_85));
    MR_hl_field(0, ProcInfo_31, 3) = ((MR_Box) (Var_86));
    MR_hl_field(0, ProcInfo_31, 4) = ((MR_Box) (InstVarSet_18));
    MR_hl_field(0, ProcInfo_31, 5) = ((MR_Box) (Var_88));
    MR_hl_field(0, ProcInfo_31, 6) = ((MR_Box) (Var_89));
    MR_hl_field(0, ProcInfo_31, 7) = ((MR_Box) (Var_90));
    MR_hl_field(0, ProcInfo_31, 8) = ((MR_Box) (Var_91));
    MR_hl_field(0, ProcInfo_31, 9) = (MR_Box) ((MR_Unsigned) (Var_92));
    MR_hl_field(0, ProcInfo_31, 10) = ((MR_Box) (Var_93));
    MR_hl_field(0, ProcInfo_31, 11) = ((MR_Box) (Var_94));
  }
  ProcTable0_32 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PredInfo_0_34, 13))));
  mercury__map__to_assoc_list_2_p_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_int_0), (MR_Word) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_info_0), ProcTable0_32, &ProcIdsInfos_109);
  mercury__list__length_2_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_1[0]), ProcIdsInfos_109, ProcId_27);
  mercury__map__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_100_101_116_95_105_110_115_101_114_116_95_95_91_75_32_61_32_105_110_116_93_95_48_95_49_4_p_0((MR_Word) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_info_0), *ProcId_27, ((MR_Box) (ProcInfo_31)), ProcTable0_32, &ProcTable_33);
  hlds__hlds_pred__pred_info_set_proc_table_3_p_0(ProcTable_33, STATE_VARIABLE_PredInfo_0_34, STATE_VARIABLE_PredInfo_35);
}

void MR_CALL 
hlds__hlds_pred__proc_info_init_13_p_0(
  MR_Word ModuleInfo_14,
  MR_Word MainContext_15,
  MR_Word ItemNumber_16,
  MR_Word Types_17,
  MR_Word DeclaredModes_18,
  MR_Word Modes_19,
  MR_Word MaybeArgLives_20,
  MR_Word DetismDecl_21,
  MR_Word MaybeDeclaredDetism_22,
  MR_Word IsAddressTaken_23,
  MR_Word HasParallelConj_24,
  MR_Word VarNameRemap_25,
  MR_Word * ProcInfo_26)
{
  MR_Word DeletedCallees_31;
  MR_Word RegR_HeadVars_37;
  MR_Word InitialLiveness_40;
  MR_Word StackSlots_41;
  MR_Word Term2Info_50;
  MR_Word ProcSubInfo_56;
  MR_Word VarTable0_58;
  MR_Word HeadVars_59;
  MR_Word VarTable_60;
  MR_Word GoalInfo_61;
  MR_Word BodyGoal_62;
  MR_Word RttiVarMaps_63;
  MR_Word InstVarSet_64;

  mercury__set__init_1_p_0((MR_Word) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_proc_id_0), &DeletedCallees_31);
  parse_tree__set_of_var__init_1_p_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_var_type_0), &RegR_HeadVars_37);
  parse_tree__set_of_var__init_1_p_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_var_type_0), &InitialLiveness_40);
  mercury__map__init_1_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[1]), (MR_Word) (&hlds__hlds_llds__hlds__hlds_llds__type_ctor_info_stack_slot_0), &StackSlots_41);
  Term2Info_50 = transform_hlds__term_constr_main_types__term2_info_init_0_f_0();
  parse_tree__var_table__init_var_table_1_p_0(&VarTable0_58);
  hlds__hlds_pred__make_fresh_prefix_named_vars_from_types_7_p_0(ModuleInfo_14, (MR_String) "HeadVar__", (MR_Integer) 1, Types_17, &HeadVars_59, VarTable0_58, &VarTable_60);
  hlds__hlds_goal__goal_info_init_1_p_0(&GoalInfo_61);
  {
    BodyGoal_62 = (MR_Word) MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, BodyGoal_62, 0) = ((MR_Box) (MR_mkword(3, &hlds__hlds_pred_scalar_common_1[13])));
    MR_hl_field(0, BodyGoal_62, 1) = ((MR_Box) (GoalInfo_61));
  }
  hlds__hlds_rtti__rtti_varmaps_init_1_p_0(&RttiVarMaps_63);
  mercury__varset__init_1_p_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_inst_var_type_0), &InstVarSet_64);
  {
    ProcSubInfo_56 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, ProcSubInfo_56, 0) = ((MR_Box) (MainContext_15));
    MR_hl_field(0, ProcSubInfo_56, 1) = ((MR_Box) (ItemNumber_16));
    MR_hl_field(0, ProcSubInfo_56, 2) = (MR_Box) ((MR_Unsigned) ((MR_Integer) 1));
    MR_hl_field(0, ProcSubInfo_56, 3) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_56, 4) = (MR_Box) ((MR_Unsigned) (DetismDecl_21));
    MR_hl_field(0, ProcSubInfo_56, 5) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_56, 6) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_56, 7) = ((MR_Box) (VarNameRemap_25));
    MR_hl_field(0, ProcSubInfo_56, 8) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_56, 9) = ((MR_Box) (DeletedCallees_31));
    MR_hl_field(0, ProcSubInfo_56, 10) = (MR_Box) (((((MR_Unsigned) (IsAddressTaken_23) << 3)) | (((((MR_Unsigned) ((MR_Integer) 0) << 2)) | (((((MR_Unsigned) (HasParallelConj_24) << 1)) | (MR_Unsigned) ((MR_Integer) 1)))))));
    MR_hl_field(0, ProcSubInfo_56, 11) = ((MR_Box) (&hlds__hlds_pred_scalar_common_3[5]));
    MR_hl_field(0, ProcSubInfo_56, 12) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_56, 13) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_56, 14) = ((MR_Box) (RegR_HeadVars_37));
    MR_hl_field(0, ProcSubInfo_56, 15) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_56, 16) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_56, 17) = ((MR_Box) (InitialLiveness_40));
    MR_hl_field(0, ProcSubInfo_56, 18) = ((MR_Box) (StackSlots_41));
    MR_hl_field(0, ProcSubInfo_56, 19) = (MR_Box) ((MR_Unsigned) ((MR_Integer) 1));
    MR_hl_field(0, ProcSubInfo_56, 20) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_56, 21) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_56, 22) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_56, 23) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_56, 24) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_56, 25) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_56, 26) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_56, 27) = ((MR_Box) (Term2Info_50));
    MR_hl_field(0, ProcSubInfo_56, 28) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_56, 29) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_56, 30) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_56, 31) = ((MR_Box) (&hlds__hlds_pred_scalar_common_2[61]));
    MR_hl_field(0, ProcSubInfo_56, 32) = ((MR_Box) (&hlds__hlds_pred_scalar_common_2[62]));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *ProcInfo_26 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (HeadVars_59));
    MR_hl_field(0, base, 1) = ((MR_Box) (BodyGoal_62));
    MR_hl_field(0, base, 2) = ((MR_Box) (VarTable_60));
    MR_hl_field(0, base, 3) = ((MR_Box) (RttiVarMaps_63));
    MR_hl_field(0, base, 4) = ((MR_Box) (InstVarSet_64));
    MR_hl_field(0, base, 5) = ((MR_Box) (DeclaredModes_18));
    MR_hl_field(0, base, 6) = ((MR_Box) (Modes_19));
    MR_hl_field(0, base, 7) = ((MR_Box) (MaybeArgLives_20));
    MR_hl_field(0, base, 8) = ((MR_Box) (MaybeDeclaredDetism_22));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) ((MR_Integer) 6));
    MR_hl_field(0, base, 10) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, base, 11) = ((MR_Box) (ProcSubInfo_56));
  }
}

static void MR_CALL 
hlds__hlds_pred__make_fresh_prefix_named_vars_from_types_7_p_0(
  MR_Word ModuleInfo_1,
  MR_String BaseName_2,
  MR_Integer Num_3,
  MR_Word HeadVar__4_4,
  MR_Word * HeadVar__5_5,
  MR_Word HeadVar__6_6,
  MR_Word * HeadVar__7_7)
{
  if ((HeadVar__4_4 == (MR_Word) ((MR_Unsigned) 0U)))
  {
    *HeadVar__5_5 = (MR_Word) ((MR_Unsigned) 0U);
    *HeadVar__7_7 = HeadVar__6_6;
  }
  else
  {
    MR_Word Type_17 = ((MR_Word) ((MR_hl_field(1, HeadVar__4_4, 0))));
    MR_Word Types_18 = ((MR_Word) ((MR_hl_field(1, HeadVar__4_4, 1))));
    MR_Word Var_19;
    MR_Word Vars_20;
    MR_Word STATE_VARIABLE_VarTable_1_24;
    MR_Integer Var_25;
    MR_String Name_28;
    MR_Word IsDummy_29;
    MR_Word Entry_30;
    MR_String Var_37;

    mercury__string__format__format_signed_int_component_nowidth_noprec_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_3[6]), Num_3, &Var_37);
    Name_28 = mercury__string__f_43_43_2_f_0(BaseName_2, Var_37);
    IsDummy_29 = hlds__type_util__is_type_a_dummy_2_f_0(ModuleInfo_1, Type_17);
    {
      Entry_30 = (MR_Word) MR_new_object(MR_Word, (3 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(0, Entry_30, 0) = ((MR_Box) (Name_28));
      MR_hl_field(0, Entry_30, 1) = ((MR_Box) (Type_17));
      MR_hl_field(0, Entry_30, 2) = (MR_Box) ((MR_Unsigned) (IsDummy_29));
    }
    parse_tree__var_table__add_var_entry_4_p_0(Entry_30, &Var_19, HeadVar__6_6, &STATE_VARIABLE_VarTable_1_24);
    Var_25 = (MR_Integer) ((MR_Unsigned) Num_3 + (MR_Unsigned) 1);
    hlds__hlds_pred__make_fresh_prefix_named_vars_from_types_7_p_0(ModuleInfo_1, BaseName_2, Var_25, Types_18, &Vars_20, STATE_VARIABLE_VarTable_1_24, HeadVar__7_7);
    {
      MR_Word base;
      base = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
      *HeadVar__5_5 = base;
      MR_hl_field(1, base, 0) = ((MR_Box) (Var_19));
      MR_hl_field(1, base, 1) = ((MR_Box) (Vars_20));
    }
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_set_proc_table_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_8 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_9 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))) & (MR_Integer) 1);
  MR_String Var_10 = ((MR_String) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_20 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 12))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 14))));

  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_8));
    MR_hl_field(0, base, 1) = (MR_Box) ((MR_Unsigned) (Var_9));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_10));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 9) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 12) = ((MR_Box) (Var_20));
    MR_hl_field(0, base, 13) = ((MR_Box) (X_4));
    MR_hl_field(0, base, 14) = ((MR_Box) (Var_22));
  }
}

void MR_CALL 
hlds__hlds_pred__define_new_pred_19_p_0(
  MR_Word PredSymName_20,
  MR_Word Origin_21,
  MR_Word TVarSet_22,
  MR_Word InstVarSet_23,
  MR_Word VarTable0_24,
  MR_Word RttiVarMaps_25,
  MR_Word ClassContext_26,
  MR_Word InstMap0_27,
  MR_Word VarNameRemap_28,
  MR_Word Markers_29,
  MR_Word IsAddressTaken_30,
  MR_Word HasParallelConj_31,
  MR_Word * PredProcId_32,
  MR_Word ArgVars0_33,
  MR_Word * ExtraTiTcis_34,
  MR_Word Goal0_35,
  MR_Word * CallGoal_36,
  MR_Word STATE_VARIABLE_ModuleInfo_0_74,
  MR_Word * STATE_VARIABLE_ModuleInfo_75)
{
  MR_bool succeeded;
  MR_Word GoalInfo_39 = ((MR_Word) ((MR_hl_field(0, Goal0_35, 1))));
  MR_Word InstMapDelta_40;
  MR_Word InstMap_41;
  MR_Word Globals_43;
  MR_Word PredStatus_44;
  MR_Word ArgVars_49;
  MR_Word Context_50;
  MR_Word Detism_52;
  MR_Word ArgTypes_53;
  MR_Word ArgModes_54;
  MR_Word PredModuleName_55;
  MR_String PredName_56;
  MR_Word GoalVars0_58;
  MR_Word GoalVars_59;
  MR_Word GoalVarsSet_60;
  MR_Word VarTable_61;
  MR_Word TermInfo_62;
  MR_Word ProcInfo0_64;
  MR_Word ProcInfo_65;
  MR_Word Assertions_66;
  MR_Integer ProcId_68;
  MR_Word PredInfo_69;
  MR_Word PredTable0_70;
  MR_Word PredId_71;
  MR_Word PredTable_72;
  MR_Word CallGoalExpr_73;

  InstMapDelta_40 = hlds__hlds_goal__goal_info_get_instmap_delta_1_f_0(GoalInfo_39);
  hlds__instmap__apply_instmap_delta_3_p_0(InstMapDelta_40, InstMap0_27, &InstMap_41);
  hlds__hlds_module__module_info_get_globals_2_p_0(STATE_VARIABLE_ModuleInfo_0_74, &Globals_43);
  PredStatus_44 = (MR_Word) (((MR_Box) ((MR_Unsigned) 32U)));
  succeeded = (IsAddressTaken_30 == (MR_Integer) 0);
  if (!(succeeded))
  {
    {
      MR_Word Var_89 = (MR_Word) (PredStatus_44);

      succeeded = (Var_89 != (MR_Word) ((MR_Unsigned) 32U));
    }
    if (!(succeeded))
    {
      succeeded = libs__globals__lookup_bool_option_3_p_1(Globals_43, (MR_Integer) 83, (MR_Integer) 1);
      if (!(succeeded))
      {
        succeeded = libs__globals__lookup_bool_option_3_p_1(Globals_43, (MR_Integer) 84, (MR_Integer) 1);
        if (!(succeeded))
        {
          MR_Word Var_95;

          libs__globals__lookup_bool_option_3_p_0(Globals_43, (MR_Integer) 759, &Var_95);
          succeeded = ((MR_Integer) 1 == Var_95);
        }
      }
    }
  }
  if (succeeded)
  {
    MR_Word NonLocals_46;
    MR_Word ExtraTiTcis0_47;
    MR_Word ExtraTiTcis1_48;

    NonLocals_46 = hlds__hlds_goal__goal_info_get_nonlocals_1_f_0(GoalInfo_39);
    hlds__goal_util__extra_nonlocal_typeinfos_typeclass_infos_5_p_0(RttiVarMaps_25, VarTable0_24, (MR_Word) ((MR_Unsigned) 0U), NonLocals_46, &ExtraTiTcis0_47);
    parse_tree__set_of_var__delete_list_3_p_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_var_type_0), ArgVars0_33, ExtraTiTcis0_47, &ExtraTiTcis1_48);
    parse_tree__set_of_var__to_sorted_list_2_p_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_var_type_0), ExtraTiTcis1_48, ExtraTiTcis_34);
    ArgVars_49 = mercury__list__f_43_43_2_f_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[1]), *ExtraTiTcis_34, ArgVars0_33);
  }
  else
  {
    ArgVars_49 = ArgVars0_33;
    *ExtraTiTcis_34 = (MR_Word) ((MR_Unsigned) 0U);
  }
  Context_50 = hlds__hlds_goal__goal_info_get_context_1_f_0(GoalInfo_39);
  Detism_52 = hlds__hlds_goal__goal_info_get_determinism_1_f_0(GoalInfo_39);
  hlds__hlds_pred__compute_arg_types_modes_6_p_0(VarTable0_24, InstMap0_27, InstMap_41, ArgVars_49, &ArgTypes_53, &ArgModes_54);
  if (((MR_tag((MR_Word) PredSymName_20)) == (MR_Integer) 1))
  {
    PredModuleName_55 = ((MR_Word) ((MR_hl_field(1, PredSymName_20, 0))));
    PredName_56 = ((MR_String) ((MR_hl_field(1, PredSymName_20, 1))));
  }
  else
  {
    PredName_56 = ((MR_String) ((MR_hl_field(0, PredSymName_20, 0))));
    hlds__hlds_module__module_info_get_name_2_p_0(STATE_VARIABLE_ModuleInfo_0_74, &PredModuleName_55);
  }
  hlds__goal_vars__vars_in_goal_2_p_0(Goal0_35, &GoalVars0_58);
  parse_tree__set_of_var__insert_list_3_p_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_var_type_0), ArgVars_49, GoalVars0_58, &GoalVars_59);
  GoalVarsSet_60 = parse_tree__set_of_var__bitset_to_set_1_f_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_var_type_0), GoalVars_59);
  parse_tree__var_table__var_table_select_3_p_0(GoalVarsSet_60, VarTable0_24, &VarTable_61);
  succeeded = hlds__goal_form__goal_cannot_loop_term_info_2_p_0(STATE_VARIABLE_ModuleInfo_0_74, Goal0_35);
  if (succeeded)
    TermInfo_62 = (MR_Word) (MR_mkword(1, &hlds__hlds_pred_scalar_common_3[1]));
  else
    TermInfo_62 = (MR_Word) ((MR_Unsigned) 0U);
  hlds__hlds_pred__proc_info_create_with_declared_detism_15_p_0(Context_50, (MR_Word) ((MR_Unsigned) 0U), VarTable_61, ArgVars_49, InstVarSet_23, ArgModes_54, (MR_Integer) 2, (MR_Word) ((MR_Unsigned) 0U), Detism_52, Goal0_35, RttiVarMaps_25, IsAddressTaken_30, HasParallelConj_31, VarNameRemap_28, &ProcInfo0_64);
  hlds__hlds_pred__proc_info_set_maybe_termination_info_3_p_0(TermInfo_62, ProcInfo0_64, &ProcInfo_65);
  mercury__set__init_1_p_0((MR_Word) (&hlds__hlds_promise__hlds__hlds_promise__type_ctor_info_assert_id_0), &Assertions_66);
  hlds__hlds_pred__pred_info_create_17_p_0((MR_Integer) 0, PredModuleName_55, PredName_56, Context_50, Origin_21, PredStatus_44, Markers_29, ArgTypes_53, TVarSet_22, (MR_Word) ((MR_Unsigned) 0U), ClassContext_26, Assertions_66, VarNameRemap_28, (MR_Word) (&hlds__hlds_pred_scalar_common_3[2]), ProcInfo_65, &ProcId_68, &PredInfo_69);
  hlds__hlds_module__module_info_get_predicate_table_2_p_0(STATE_VARIABLE_ModuleInfo_0_74, &PredTable0_70);
  hlds__pred_table__predicate_table_insert_4_p_0(PredInfo_69, &PredId_71, PredTable0_70, &PredTable_72);
  hlds__hlds_module__module_info_set_predicate_table_3_p_0(PredTable_72, STATE_VARIABLE_ModuleInfo_0_74, STATE_VARIABLE_ModuleInfo_75);
  {
    CallGoalExpr_73 = (MR_Word) MR_mkword(2, MR_new_object(MR_Word, (6 * sizeof(MR_Word)), NULL, NULL));
    MR_hl_field(2, CallGoalExpr_73, 0) = ((MR_Box) (PredId_71));
    MR_hl_field(2, CallGoalExpr_73, 1) = ((MR_Box) (ProcId_68));
    MR_hl_field(2, CallGoalExpr_73, 2) = ((MR_Box) (ArgVars_49));
    MR_hl_field(2, CallGoalExpr_73, 3) = (MR_Box) ((MR_Unsigned) ((MR_Integer) 1));
    MR_hl_field(2, CallGoalExpr_73, 4) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(2, CallGoalExpr_73, 5) = ((MR_Box) (PredSymName_20));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL);
    *CallGoal_36 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (CallGoalExpr_73));
    MR_hl_field(0, base, 1) = ((MR_Box) (GoalInfo_39));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL);
    *PredProcId_32 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (PredId_71));
    MR_hl_field(0, base, 1) = ((MR_Box) (ProcId_68));
  }
}

static void MR_CALL 
hlds__hlds_pred__proc_info_create_with_declared_detism_15_p_0(
  MR_Word MainContext_16,
  MR_Word ItemNumber_17,
  MR_Word VarTable_18,
  MR_Word HeadVars_19,
  MR_Word InstVarSet_20,
  MR_Word Modes_21,
  MR_Word DetismDecl_22,
  MR_Word MaybeDeclaredDetism_23,
  MR_Word Detism_24,
  MR_Word Goal_25,
  MR_Word RttiVarMaps_26,
  MR_Word IsAddressTaken_27,
  MR_Word HasParallelConj_28,
  MR_Word VarNameRemap_29,
  MR_Word * ProcInfo_30)
{
  MR_Word DeletedCallees_35;
  MR_Word RegR_HeadVars_41;
  MR_Word InitialLiveness_44;
  MR_Word StackSlots_45;
  MR_Word Term2Info_54;
  MR_Word ProcSubInfo_60;

  mercury__set__init_1_p_0((MR_Word) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_proc_id_0), &DeletedCallees_35);
  parse_tree__set_of_var__init_1_p_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_var_type_0), &RegR_HeadVars_41);
  parse_tree__set_of_var__init_1_p_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_var_type_0), &InitialLiveness_44);
  mercury__map__init_1_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[1]), (MR_Word) (&hlds__hlds_llds__hlds__hlds_llds__type_ctor_info_stack_slot_0), &StackSlots_45);
  Term2Info_54 = transform_hlds__term_constr_main_types__term2_info_init_0_f_0();
  {
    ProcSubInfo_60 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, ProcSubInfo_60, 0) = ((MR_Box) (MainContext_16));
    MR_hl_field(0, ProcSubInfo_60, 1) = ((MR_Box) (ItemNumber_17));
    MR_hl_field(0, ProcSubInfo_60, 2) = (MR_Box) ((MR_Unsigned) ((MR_Integer) 1));
    MR_hl_field(0, ProcSubInfo_60, 3) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_60, 4) = (MR_Box) ((MR_Unsigned) (DetismDecl_22));
    MR_hl_field(0, ProcSubInfo_60, 5) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_60, 6) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_60, 7) = ((MR_Box) (VarNameRemap_29));
    MR_hl_field(0, ProcSubInfo_60, 8) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_60, 9) = ((MR_Box) (DeletedCallees_35));
    MR_hl_field(0, ProcSubInfo_60, 10) = (MR_Box) (((((MR_Unsigned) (IsAddressTaken_27) << 3)) | (((((MR_Unsigned) ((MR_Integer) 0) << 2)) | (((((MR_Unsigned) (HasParallelConj_28) << 1)) | (MR_Unsigned) ((MR_Integer) 1)))))));
    MR_hl_field(0, ProcSubInfo_60, 11) = ((MR_Box) (&hlds__hlds_pred_scalar_common_3[5]));
    MR_hl_field(0, ProcSubInfo_60, 12) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_60, 13) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_60, 14) = ((MR_Box) (RegR_HeadVars_41));
    MR_hl_field(0, ProcSubInfo_60, 15) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_60, 16) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_60, 17) = ((MR_Box) (InitialLiveness_44));
    MR_hl_field(0, ProcSubInfo_60, 18) = ((MR_Box) (StackSlots_45));
    MR_hl_field(0, ProcSubInfo_60, 19) = (MR_Box) ((MR_Unsigned) ((MR_Integer) 1));
    MR_hl_field(0, ProcSubInfo_60, 20) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_60, 21) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_60, 22) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_60, 23) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_60, 24) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_60, 25) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_60, 26) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_60, 27) = ((MR_Box) (Term2Info_54));
    MR_hl_field(0, ProcSubInfo_60, 28) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_60, 29) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_60, 30) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, ProcSubInfo_60, 31) = ((MR_Box) (&hlds__hlds_pred_scalar_common_2[61]));
    MR_hl_field(0, ProcSubInfo_60, 32) = ((MR_Box) (&hlds__hlds_pred_scalar_common_2[62]));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *ProcInfo_30 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (HeadVars_19));
    MR_hl_field(0, base, 1) = ((MR_Box) (Goal_25));
    MR_hl_field(0, base, 2) = ((MR_Box) (VarTable_18));
    MR_hl_field(0, base, 3) = ((MR_Box) (RttiVarMaps_26));
    MR_hl_field(0, base, 4) = ((MR_Box) (InstVarSet_20));
    MR_hl_field(0, base, 5) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, base, 6) = ((MR_Box) (Modes_21));
    MR_hl_field(0, base, 7) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, base, 8) = ((MR_Box) (MaybeDeclaredDetism_23));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Detism_24));
    MR_hl_field(0, base, 10) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, base, 11) = ((MR_Box) (ProcSubInfo_60));
  }
}

static void MR_CALL 
hlds__hlds_pred__compute_arg_types_modes_6_p_0(
  MR_Word VarTable_1,
  MR_Word InstMapInit_2,
  MR_Word InstMapFinal_3,
  MR_Word HeadVar__4_4,
  MR_Word * HeadVar__5_5,
  MR_Word * HeadVar__6_6)
{
  if ((HeadVar__4_4 == (MR_Word) ((MR_Unsigned) 0U)))
  {
    *HeadVar__5_5 = (MR_Word) ((MR_Unsigned) 0U);
    *HeadVar__6_6 = (MR_Word) ((MR_Unsigned) 0U);
  }
  else
  {
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(1, HeadVar__4_4, 0))));
    MR_Word Vars_14 = ((MR_Word) ((MR_hl_field(1, HeadVar__4_4, 1))));
    MR_Word Type_15;
    MR_Word Types_16;
    MR_Word Mode_17;
    MR_Word Modes_18;
    MR_Word InstInit_19;
    MR_Word InstFinal_20;

    parse_tree__var_table__lookup_var_type_3_p_0(VarTable_1, Var_13, &Type_15);
    hlds__instmap__instmap_lookup_var_3_p_0(InstMapInit_2, Var_13, &InstInit_19);
    hlds__instmap__instmap_lookup_var_3_p_0(InstMapFinal_3, Var_13, &InstFinal_20);
    {
      Mode_17 = (MR_Word) MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(0, Mode_17, 0) = ((MR_Box) (InstInit_19));
      MR_hl_field(0, Mode_17, 1) = ((MR_Box) (InstFinal_20));
    }
    hlds__hlds_pred__compute_arg_types_modes_6_p_0(VarTable_1, InstMapInit_2, InstMapFinal_3, Vars_14, &Types_16, &Modes_18);
    {
      MR_Word base;
      base = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
      *HeadVar__5_5 = base;
      MR_hl_field(1, base, 0) = ((MR_Box) (Type_15));
      MR_hl_field(1, base, 1) = ((MR_Box) (Types_16));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
      *HeadVar__6_6 = base;
      MR_hl_field(1, base, 0) = ((MR_Box) (Mode_17));
      MR_hl_field(1, base, 1) = ((MR_Box) (Modes_18));
    }
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_maybe_termination_info_3_p_0(
  MR_Word X_4,
  MR_Word STATE_VARIABLE_PI_0_6,
  MR_Word * STATE_VARIABLE_PI_7)
{
  MR_Word Var_9 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 11))));
  MR_Word Var_10;
  MR_Word Var_11 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 0))));
  MR_Word Var_12 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 1))));
  MR_Word Var_13 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 2))));
  MR_Word Var_14 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 3))));
  MR_Word Var_15 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 4))));
  MR_Word Var_16 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 5))));
  MR_Word Var_17 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 6))));
  MR_Word Var_18 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 7))));
  MR_Word Var_19 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 8))));
  MR_Word Var_20 = ((MR_Unsigned) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 9))) & (MR_Integer) 7);
  MR_Word Var_21 = ((MR_Word) ((MR_hl_field(0, STATE_VARIABLE_PI_0_6, 10))));
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, Var_9, 0))));
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, Var_9, 1))));
  MR_Word Var_24 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 2))) & (MR_Integer) 1);
  MR_Word Var_25 = ((MR_Word) ((MR_hl_field(0, Var_9, 3))));
  MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 4))) & (MR_Integer) 3);
  MR_Word Var_27 = ((MR_Word) ((MR_hl_field(0, Var_9, 5))));
  MR_Word Var_28 = ((MR_Word) ((MR_hl_field(0, Var_9, 6))));
  MR_Word Var_29 = ((MR_Word) ((MR_hl_field(0, Var_9, 7))));
  MR_Word Var_30 = ((MR_Word) ((MR_hl_field(0, Var_9, 8))));
  MR_Word Var_31 = ((MR_Word) ((MR_hl_field(0, Var_9, 9))));
  MR_Word Var_36 = ((MR_Word) ((MR_hl_field(0, Var_9, 11))));
  MR_Word Var_37 = ((MR_Word) ((MR_hl_field(0, Var_9, 12))));
  MR_Word Var_38 = ((MR_Word) ((MR_hl_field(0, Var_9, 13))));
  MR_Word Var_39 = ((MR_Word) ((MR_hl_field(0, Var_9, 14))));
  MR_Word Var_40 = ((MR_Word) ((MR_hl_field(0, Var_9, 15))));
  MR_Word Var_41 = ((MR_Word) ((MR_hl_field(0, Var_9, 16))));
  MR_Word Var_42 = ((MR_Word) ((MR_hl_field(0, Var_9, 17))));
  MR_Word Var_43 = ((MR_Word) ((MR_hl_field(0, Var_9, 18))));
  MR_Word Var_44 = ((MR_Unsigned) ((MR_hl_field(0, Var_9, 19))) & (MR_Integer) 1);
  MR_Word Var_45 = ((MR_Word) ((MR_hl_field(0, Var_9, 20))));
  MR_Word Var_46 = ((MR_Word) ((MR_hl_field(0, Var_9, 21))));
  MR_Word Var_47 = ((MR_Word) ((MR_hl_field(0, Var_9, 22))));
  MR_Word Var_48 = ((MR_Word) ((MR_hl_field(0, Var_9, 23))));
  MR_Word Var_49 = ((MR_Word) ((MR_hl_field(0, Var_9, 24))));
  MR_Word Var_50 = ((MR_Word) ((MR_hl_field(0, Var_9, 25))));
  MR_Word Var_52 = ((MR_Word) ((MR_hl_field(0, Var_9, 27))));
  MR_Word Var_53 = ((MR_Word) ((MR_hl_field(0, Var_9, 28))));
  MR_Word Var_54 = ((MR_Word) ((MR_hl_field(0, Var_9, 29))));
  MR_Word Var_55 = ((MR_Word) ((MR_hl_field(0, Var_9, 30))));
  MR_Word Var_56 = ((MR_Word) ((MR_hl_field(0, Var_9, 31))));
  MR_Word Var_57 = ((MR_Word) ((MR_hl_field(0, Var_9, 32))));
  MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(0, Var_9, 10)));

  {
    Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_10, 0) = ((MR_Box) (Var_22));
    MR_hl_field(0, Var_10, 1) = ((MR_Box) (Var_23));
    MR_hl_field(0, Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_24));
    MR_hl_field(0, Var_10, 3) = ((MR_Box) (Var_25));
    MR_hl_field(0, Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_26));
    MR_hl_field(0, Var_10, 5) = ((MR_Box) (Var_27));
    MR_hl_field(0, Var_10, 6) = ((MR_Box) (Var_28));
    MR_hl_field(0, Var_10, 7) = ((MR_Box) (Var_29));
    MR_hl_field(0, Var_10, 8) = ((MR_Box) (Var_30));
    MR_hl_field(0, Var_10, 9) = ((MR_Box) (Var_31));
    MR_hl_field(0, Var_10, 10) = (MR_Box) (packed_word_3);
    MR_hl_field(0, Var_10, 11) = ((MR_Box) (Var_36));
    MR_hl_field(0, Var_10, 12) = ((MR_Box) (Var_37));
    MR_hl_field(0, Var_10, 13) = ((MR_Box) (Var_38));
    MR_hl_field(0, Var_10, 14) = ((MR_Box) (Var_39));
    MR_hl_field(0, Var_10, 15) = ((MR_Box) (Var_40));
    MR_hl_field(0, Var_10, 16) = ((MR_Box) (Var_41));
    MR_hl_field(0, Var_10, 17) = ((MR_Box) (Var_42));
    MR_hl_field(0, Var_10, 18) = ((MR_Box) (Var_43));
    MR_hl_field(0, Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_44));
    MR_hl_field(0, Var_10, 20) = ((MR_Box) (Var_45));
    MR_hl_field(0, Var_10, 21) = ((MR_Box) (Var_46));
    MR_hl_field(0, Var_10, 22) = ((MR_Box) (Var_47));
    MR_hl_field(0, Var_10, 23) = ((MR_Box) (Var_48));
    MR_hl_field(0, Var_10, 24) = ((MR_Box) (Var_49));
    MR_hl_field(0, Var_10, 25) = ((MR_Box) (Var_50));
    MR_hl_field(0, Var_10, 26) = ((MR_Box) (X_4));
    MR_hl_field(0, Var_10, 27) = ((MR_Box) (Var_52));
    MR_hl_field(0, Var_10, 28) = ((MR_Box) (Var_53));
    MR_hl_field(0, Var_10, 29) = ((MR_Box) (Var_54));
    MR_hl_field(0, Var_10, 30) = ((MR_Box) (Var_55));
    MR_hl_field(0, Var_10, 31) = ((MR_Box) (Var_56));
    MR_hl_field(0, Var_10, 32) = ((MR_Box) (Var_57));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (12 * sizeof(MR_Word)), NULL, NULL);
    *STATE_VARIABLE_PI_7 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (Var_11));
    MR_hl_field(0, base, 1) = ((MR_Box) (Var_12));
    MR_hl_field(0, base, 2) = ((MR_Box) (Var_13));
    MR_hl_field(0, base, 3) = ((MR_Box) (Var_14));
    MR_hl_field(0, base, 4) = ((MR_Box) (Var_15));
    MR_hl_field(0, base, 5) = ((MR_Box) (Var_16));
    MR_hl_field(0, base, 6) = ((MR_Box) (Var_17));
    MR_hl_field(0, base, 7) = ((MR_Box) (Var_18));
    MR_hl_field(0, base, 8) = ((MR_Box) (Var_19));
    MR_hl_field(0, base, 9) = (MR_Box) ((MR_Unsigned) (Var_20));
    MR_hl_field(0, base, 10) = ((MR_Box) (Var_21));
    MR_hl_field(0, base, 11) = ((MR_Box) (Var_10));
  }
}

void MR_CALL 
hlds__hlds_pred__pred_create_32_p_0(
  MR_Word ModuleName_33,
  MR_Word PredOrFunc_34,
  MR_String PredName_35,
  MR_Word PredFormArity_36,
  MR_Word Origin_37,
  MR_Word Status_38,
  MR_Word Markers_39,
  MR_Word ArgTypes_40,
  MR_Word DeclTypeVarSet_41,
  MR_Word TypeVarSet_42,
  MR_Word ExistQVars_43,
  MR_Integer PolymorphismAddedArgs_44,
  MR_Word ClassContext_45,
  MR_Word ClausesInfo_46,
  MR_Word ProcTable_47,
  MR_Word Context_48,
  MR_Word CurUserDecl_49,
  MR_Word GoalType_50,
  MR_Word Kinds_51,
  MR_Word ExistQVarBindings_52,
  MR_Word HeadTypeParams_53,
  MR_Word ClassProofs_54,
  MR_Word ClassConstraintMap_55,
  MR_Word UnprovenBodyConstraints_56,
  MR_Word InstGraphInfo_57,
  MR_Word ArgModesMaps_58,
  MR_Word VarNameRemap_59,
  MR_Word Assertions_60,
  MR_Word ObsoleteInFavourOf_61,
  MR_Word FormatCall_62,
  MR_Word InstanceMethodArgTypes_63,
  MR_Word * PredInfo_64)
{
  MR_Word PredSubInfo_65;

  {
    PredSubInfo_65 = (MR_Word) MR_new_object(MR_Word, (17 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, PredSubInfo_65, 0) = ((MR_Box) (Context_48));
    MR_hl_field(0, PredSubInfo_65, 1) = ((MR_Box) (CurUserDecl_49));
    MR_hl_field(0, PredSubInfo_65, 2) = ((MR_Box) (GoalType_50));
    MR_hl_field(0, PredSubInfo_65, 3) = ((MR_Box) (Kinds_51));
    MR_hl_field(0, PredSubInfo_65, 4) = ((MR_Box) (ExistQVarBindings_52));
    MR_hl_field(0, PredSubInfo_65, 5) = ((MR_Box) (PolymorphismAddedArgs_44));
    MR_hl_field(0, PredSubInfo_65, 6) = ((MR_Box) (HeadTypeParams_53));
    MR_hl_field(0, PredSubInfo_65, 7) = ((MR_Box) (ClassProofs_54));
    MR_hl_field(0, PredSubInfo_65, 8) = ((MR_Box) (ClassConstraintMap_55));
    MR_hl_field(0, PredSubInfo_65, 9) = ((MR_Box) (UnprovenBodyConstraints_56));
    MR_hl_field(0, PredSubInfo_65, 10) = ((MR_Box) (InstGraphInfo_57));
    MR_hl_field(0, PredSubInfo_65, 11) = ((MR_Box) (ArgModesMaps_58));
    MR_hl_field(0, PredSubInfo_65, 12) = ((MR_Box) (VarNameRemap_59));
    MR_hl_field(0, PredSubInfo_65, 13) = ((MR_Box) (Assertions_60));
    MR_hl_field(0, PredSubInfo_65, 14) = ((MR_Box) (ObsoleteInFavourOf_61));
    MR_hl_field(0, PredSubInfo_65, 15) = ((MR_Box) (FormatCall_62));
    MR_hl_field(0, PredSubInfo_65, 16) = ((MR_Box) (InstanceMethodArgTypes_63));
  }
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
    *PredInfo_64 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (ModuleName_33));
    MR_hl_field(0, base, 1) = (MR_Box) ((MR_Unsigned) (PredOrFunc_34));
    MR_hl_field(0, base, 2) = ((MR_Box) (PredName_35));
    MR_hl_field(0, base, 3) = ((MR_Box) (PredFormArity_36));
    MR_hl_field(0, base, 4) = ((MR_Box) (Origin_37));
    MR_hl_field(0, base, 5) = ((MR_Box) (Status_38));
    MR_hl_field(0, base, 6) = ((MR_Box) (Markers_39));
    MR_hl_field(0, base, 7) = ((MR_Box) (ArgTypes_40));
    MR_hl_field(0, base, 8) = ((MR_Box) (DeclTypeVarSet_41));
    MR_hl_field(0, base, 9) = ((MR_Box) (TypeVarSet_42));
    MR_hl_field(0, base, 10) = ((MR_Box) (ExistQVars_43));
    MR_hl_field(0, base, 11) = ((MR_Box) (ClassContext_45));
    MR_hl_field(0, base, 12) = ((MR_Box) (ClausesInfo_46));
    MR_hl_field(0, base, 13) = ((MR_Box) (ProcTable_47));
    MR_hl_field(0, base, 14) = ((MR_Box) (PredSubInfo_65));
  }
}

void MR_CALL 
hlds__hlds_pred__pred_prepare_to_clone_32_p_0(
  MR_Word PredInfo_33,
  MR_Word * ModuleName_34,
  MR_Word * PredOrFunc_35,
  MR_String * PredName_36,
  MR_Word * PredFormArity_37,
  MR_Word * Origin_38,
  MR_Word * Status_39,
  MR_Word * Markers_40,
  MR_Word * ArgTypes_41,
  MR_Word * DeclTypeVarSet_42,
  MR_Word * TypeVarSet_43,
  MR_Word * ExistQVars_44,
  MR_Integer * PolymorphismAddedArgs_45,
  MR_Word * ClassContext_46,
  MR_Word * ClausesInfo_47,
  MR_Word * ProcTable_48,
  MR_Word * Context_49,
  MR_Word * CurUserDecl_50,
  MR_Word * GoalType_51,
  MR_Word * Kinds_52,
  MR_Word * ExistQVarBindings_53,
  MR_Word * HeadTypeParams_54,
  MR_Word * ClassProofs_55,
  MR_Word * ClassConstraintMap_56,
  MR_Word * UnprovenBodyConstraints_57,
  MR_Word * InstGraphInfo_58,
  MR_Word * ArgModesMaps_59,
  MR_Word * VarNameRemap_60,
  MR_Word * Assertions_61,
  MR_Word * ObsoleteInFavourOf_62,
  MR_Word * FormatCall_63,
  MR_Word * InstanceMethodArgTypes_64)
{
  MR_Word PredSubInfo_65;

  *ModuleName_34 = ((MR_Word) ((MR_hl_field(0, PredInfo_33, 0))));
  *PredOrFunc_35 = ((MR_Unsigned) ((MR_hl_field(0, PredInfo_33, 1))) & (MR_Integer) 1);
  *PredName_36 = ((MR_String) ((MR_hl_field(0, PredInfo_33, 2))));
  *PredFormArity_37 = ((MR_Word) ((MR_hl_field(0, PredInfo_33, 3))));
  *Origin_38 = ((MR_Word) ((MR_hl_field(0, PredInfo_33, 4))));
  *Status_39 = ((MR_Word) ((MR_hl_field(0, PredInfo_33, 5))));
  *Markers_40 = ((MR_Word) ((MR_hl_field(0, PredInfo_33, 6))));
  *ArgTypes_41 = ((MR_Word) ((MR_hl_field(0, PredInfo_33, 7))));
  *DeclTypeVarSet_42 = ((MR_Word) ((MR_hl_field(0, PredInfo_33, 8))));
  *TypeVarSet_43 = ((MR_Word) ((MR_hl_field(0, PredInfo_33, 9))));
  *ExistQVars_44 = ((MR_Word) ((MR_hl_field(0, PredInfo_33, 10))));
  *ClassContext_46 = ((MR_Word) ((MR_hl_field(0, PredInfo_33, 11))));
  *ClausesInfo_47 = ((MR_Word) ((MR_hl_field(0, PredInfo_33, 12))));
  *ProcTable_48 = ((MR_Word) ((MR_hl_field(0, PredInfo_33, 13))));
  PredSubInfo_65 = ((MR_Word) ((MR_hl_field(0, PredInfo_33, 14))));
  *Context_49 = ((MR_Word) ((MR_hl_field(0, PredSubInfo_65, 0))));
  *CurUserDecl_50 = ((MR_Word) ((MR_hl_field(0, PredSubInfo_65, 1))));
  *GoalType_51 = ((MR_Word) ((MR_hl_field(0, PredSubInfo_65, 2))));
  *Kinds_52 = ((MR_Word) ((MR_hl_field(0, PredSubInfo_65, 3))));
  *ExistQVarBindings_53 = ((MR_Word) ((MR_hl_field(0, PredSubInfo_65, 4))));
  *PolymorphismAddedArgs_45 = ((MR_Integer) ((MR_hl_field(0, PredSubInfo_65, 5))));
  *HeadTypeParams_54 = ((MR_Word) ((MR_hl_field(0, PredSubInfo_65, 6))));
  *ClassProofs_55 = ((MR_Word) ((MR_hl_field(0, PredSubInfo_65, 7))));
  *ClassConstraintMap_56 = ((MR_Word) ((MR_hl_field(0, PredSubInfo_65, 8))));
  *UnprovenBodyConstraints_57 = ((MR_Word) ((MR_hl_field(0, PredSubInfo_65, 9))));
  *InstGraphInfo_58 = ((MR_Word) ((MR_hl_field(0, PredSubInfo_65, 10))));
  *ArgModesMaps_59 = ((MR_Word) ((MR_hl_field(0, PredSubInfo_65, 11))));
  *VarNameRemap_60 = ((MR_Word) ((MR_hl_field(0, PredSubInfo_65, 12))));
  *Assertions_61 = ((MR_Word) ((MR_hl_field(0, PredSubInfo_65, 13))));
  *ObsoleteInFavourOf_62 = ((MR_Word) ((MR_hl_field(0, PredSubInfo_65, 14))));
  *FormatCall_63 = ((MR_Word) ((MR_hl_field(0, PredSubInfo_65, 15))));
  *InstanceMethodArgTypes_64 = ((MR_Word) ((MR_hl_field(0, PredSubInfo_65, 16))));
}

void MR_CALL 
hlds__hlds_pred__pred_info_create_17_p_0(
  MR_Word PredOrFunc_18,
  MR_Word PredModuleName_19,
  MR_String PredName_20,
  MR_Word Context_21,
  MR_Word Origin_22,
  MR_Word Status_23,
  MR_Word Markers_24,
  MR_Word ArgTypes_25,
  MR_Word TypeVarSet_26,
  MR_Word ExistQVars_27,
  MR_Word ClassContext_28,
  MR_Word Assertions_29,
  MR_Word VarNameRemap_30,
  MR_Word GoalType_31,
  MR_Word ProcInfo_32,
  MR_Integer * ProcId_33,
  MR_Word * PredInfo_34)
{
  MR_Word Kinds_36;
  MR_Word ExistQVarBindings_37;
  MR_Word TVars_39;
  MR_Word HeadTypeParams_40;
  MR_Word ClassProofs_41;
  MR_Word ClassConstraintMap_42;
  MR_Word InstGraphInfo_44;
  MR_Word PredSubInfo_49;
  MR_Word VarSet_50;
  MR_Word ExplicitVarTypes_51;
  MR_Word VarTable_52;
  MR_Word TVarNameMap_53;
  MR_Word HeadVars_54;
  MR_Word HeadVarVec_55;
  MR_Word ClausesRep_56;
  MR_Word ItemNumbers_57;
  MR_Word RttiVarMaps_58;
  MR_Word ClausesInfo_59;
  MR_Integer NumArgs_60;
  MR_Word PredFormArity_61;
  MR_Word ProcTable0_62;
  MR_Word ProcTable_63;
  MR_Word ProcIdsInfos_111;

  mercury__map__init_1_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[0]), (MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_kind_0), &Kinds_36);
  mercury__map__init_1_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[0]), (MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_type_0), &ExistQVarBindings_37);
  parse_tree__prog_type_scan__type_vars_in_types_2_p_0(ArgTypes_25, &TVars_39);
  mercury__list__delete_elems_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[0]), TVars_39, ExistQVars_27, &HeadTypeParams_40);
  mercury__map__init_1_p_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_constraint_0), (MR_Word) (&hlds__hlds_class__hlds__hlds_class__type_ctor_info_constraint_proof_0), &ClassProofs_41);
  mercury__map__init_1_p_0((MR_Word) (&hlds__hlds_class__hlds__hlds_class__type_ctor_info_constraint_id_0), (MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_constraint_0), &ClassConstraintMap_42);
  InstGraphInfo_44 = hlds__inst_graph__inst_graph_info_init_0_f_0();
  {
    PredSubInfo_49 = (MR_Word) MR_new_object(MR_Word, (17 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, PredSubInfo_49, 0) = ((MR_Box) (Context_21));
    MR_hl_field(0, PredSubInfo_49, 1) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, PredSubInfo_49, 2) = ((MR_Box) (GoalType_31));
    MR_hl_field(0, PredSubInfo_49, 3) = ((MR_Box) (Kinds_36));
    MR_hl_field(0, PredSubInfo_49, 4) = ((MR_Box) (ExistQVarBindings_37));
    MR_hl_field(0, PredSubInfo_49, 5) = ((MR_Box) ((MR_Integer) 0));
    MR_hl_field(0, PredSubInfo_49, 6) = ((MR_Box) (HeadTypeParams_40));
    MR_hl_field(0, PredSubInfo_49, 7) = ((MR_Box) (ClassProofs_41));
    MR_hl_field(0, PredSubInfo_49, 8) = ((MR_Box) (ClassConstraintMap_42));
    MR_hl_field(0, PredSubInfo_49, 9) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, PredSubInfo_49, 10) = ((MR_Box) (InstGraphInfo_44));
    MR_hl_field(0, PredSubInfo_49, 11) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, PredSubInfo_49, 12) = ((MR_Box) (VarNameRemap_30));
    MR_hl_field(0, PredSubInfo_49, 13) = ((MR_Box) (Assertions_29));
    MR_hl_field(0, PredSubInfo_49, 14) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, PredSubInfo_49, 15) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, PredSubInfo_49, 16) = ((MR_Box) ((MR_Unsigned) 0U));
  }
  mercury__varset__init_1_p_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_var_type_0), &VarSet_50);
  parse_tree__vartypes__init_vartypes_1_p_0(&ExplicitVarTypes_51);
  VarTable_52 = ((MR_Word) ((MR_hl_field(0, ProcInfo_32, 2))));
  mercury__map__init_1_p_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), (MR_Word) (&hlds__hlds_pred_scalar_common_2[0]), &TVarNameMap_53);
  HeadVars_54 = ((MR_Word) ((MR_hl_field(0, ProcInfo_32, 0))));
  HeadVarVec_55 = hlds__hlds_args__proc_arg_vector_init_2_f_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[1]), PredOrFunc_18, HeadVars_54);
  ClausesRep_56 = hlds__hlds_clauses__init_clauses_rep_0_f_0();
  ItemNumbers_57 = hlds__hlds_clauses__init_clause_item_numbers_user_0_f_0();
  RttiVarMaps_58 = ((MR_Word) ((MR_hl_field(0, ProcInfo_32, 3))));
  {
    ClausesInfo_59 = (MR_Word) MR_new_object(MR_Word, (9 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, ClausesInfo_59, 0) = ((MR_Box) (VarSet_50));
    MR_hl_field(0, ClausesInfo_59, 1) = ((MR_Box) (ExplicitVarTypes_51));
    MR_hl_field(0, ClausesInfo_59, 2) = ((MR_Box) (VarTable_52));
    MR_hl_field(0, ClausesInfo_59, 3) = ((MR_Box) (RttiVarMaps_58));
    MR_hl_field(0, ClausesInfo_59, 4) = ((MR_Box) (TVarNameMap_53));
    MR_hl_field(0, ClausesInfo_59, 5) = ((MR_Box) (HeadVarVec_55));
    MR_hl_field(0, ClausesInfo_59, 6) = ((MR_Box) (ClausesRep_56));
    MR_hl_field(0, ClausesInfo_59, 7) = ((MR_Box) (ItemNumbers_57));
    MR_hl_field(0, ClausesInfo_59, 8) = (MR_Box) (((((MR_Unsigned) ((MR_Integer) 0) << 1)) | (MR_Unsigned) ((MR_Integer) 0)));
  }
  mercury__list__length_2_p_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_type_0), ArgTypes_25, &NumArgs_60);
  PredFormArity_61 = (MR_Word) (NumArgs_60);
  mercury__map__init_1_p_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_int_0), (MR_Word) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_info_0), &ProcTable0_62);
  mercury__map__to_assoc_list_2_p_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_int_0), (MR_Word) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_info_0), ProcTable0_62, &ProcIdsInfos_111);
  mercury__list__length_2_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_1[0]), ProcIdsInfos_111, ProcId_33);
  mercury__map__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_100_101_116_95_105_110_115_101_114_116_95_95_91_75_32_61_32_105_110_116_93_95_48_95_49_4_p_0((MR_Word) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_info_0), *ProcId_33, ((MR_Box) (ProcInfo_32)), ProcTable0_62, &ProcTable_63);
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
    *PredInfo_34 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (PredModuleName_19));
    MR_hl_field(0, base, 1) = (MR_Box) ((MR_Unsigned) (PredOrFunc_18));
    MR_hl_field(0, base, 2) = ((MR_Box) (PredName_20));
    MR_hl_field(0, base, 3) = ((MR_Box) (PredFormArity_61));
    MR_hl_field(0, base, 4) = ((MR_Box) (Origin_22));
    MR_hl_field(0, base, 5) = ((MR_Box) (Status_23));
    MR_hl_field(0, base, 6) = ((MR_Box) (Markers_24));
    MR_hl_field(0, base, 7) = ((MR_Box) (ArgTypes_25));
    MR_hl_field(0, base, 8) = ((MR_Box) (TypeVarSet_26));
    MR_hl_field(0, base, 9) = ((MR_Box) (TypeVarSet_26));
    MR_hl_field(0, base, 10) = ((MR_Box) (ExistQVars_27));
    MR_hl_field(0, base, 11) = ((MR_Box) (ClassContext_28));
    MR_hl_field(0, base, 12) = ((MR_Box) (ClausesInfo_59));
    MR_hl_field(0, base, 13) = ((MR_Box) (ProcTable_63));
    MR_hl_field(0, base, 14) = ((MR_Box) (PredSubInfo_49));
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_init_19_p_0(
  MR_Word PredOrFunc_20,
  MR_Word PredModuleName_21,
  MR_String PredName_22,
  MR_Word PredFormArity_23,
  MR_Word Context_24,
  MR_Word Origin_25,
  MR_Word Status_26,
  MR_Word CurUserDecl_27,
  MR_Word GoalType_28,
  MR_Word Markers_29,
  MR_Word ArgTypes_30,
  MR_Word TypeVarSet_31,
  MR_Word ExistQVars_32,
  MR_Word ClassContext_33,
  MR_Word ClassProofs_34,
  MR_Word ClassConstraintMap_35,
  MR_Word ClausesInfo_36,
  MR_Word VarNameRemap_37,
  MR_Word * PredInfo_38)
{
  MR_Word Kinds_39;
  MR_Word ExistQVarBindings_40;
  MR_Word TVars_42;
  MR_Word HeadTypeParams_43;
  MR_Word InstGraphInfo_45;
  MR_Word Assertions_47;
  MR_Word PredSubInfo_51;
  MR_Word ProcTable_52;

  mercury__map__init_1_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[0]), (MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_kind_0), &Kinds_39);
  mercury__map__init_1_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[0]), (MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_type_0), &ExistQVarBindings_40);
  parse_tree__prog_type_scan__type_vars_in_types_2_p_0(ArgTypes_30, &TVars_42);
  mercury__list__delete_elems_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[0]), TVars_42, ExistQVars_32, &HeadTypeParams_43);
  InstGraphInfo_45 = hlds__inst_graph__inst_graph_info_init_0_f_0();
  mercury__set__init_1_p_0((MR_Word) (&hlds__hlds_promise__hlds__hlds_promise__type_ctor_info_assert_id_0), &Assertions_47);
  {
    PredSubInfo_51 = (MR_Word) MR_new_object(MR_Word, (17 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, PredSubInfo_51, 0) = ((MR_Box) (Context_24));
    MR_hl_field(0, PredSubInfo_51, 1) = ((MR_Box) (CurUserDecl_27));
    MR_hl_field(0, PredSubInfo_51, 2) = ((MR_Box) (GoalType_28));
    MR_hl_field(0, PredSubInfo_51, 3) = ((MR_Box) (Kinds_39));
    MR_hl_field(0, PredSubInfo_51, 4) = ((MR_Box) (ExistQVarBindings_40));
    MR_hl_field(0, PredSubInfo_51, 5) = ((MR_Box) ((MR_Integer) 0));
    MR_hl_field(0, PredSubInfo_51, 6) = ((MR_Box) (HeadTypeParams_43));
    MR_hl_field(0, PredSubInfo_51, 7) = ((MR_Box) (ClassProofs_34));
    MR_hl_field(0, PredSubInfo_51, 8) = ((MR_Box) (ClassConstraintMap_35));
    MR_hl_field(0, PredSubInfo_51, 9) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, PredSubInfo_51, 10) = ((MR_Box) (InstGraphInfo_45));
    MR_hl_field(0, PredSubInfo_51, 11) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, PredSubInfo_51, 12) = ((MR_Box) (VarNameRemap_37));
    MR_hl_field(0, PredSubInfo_51, 13) = ((MR_Box) (Assertions_47));
    MR_hl_field(0, PredSubInfo_51, 14) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, PredSubInfo_51, 15) = ((MR_Box) ((MR_Unsigned) 0U));
    MR_hl_field(0, PredSubInfo_51, 16) = ((MR_Box) ((MR_Unsigned) 0U));
  }
  mercury__map__init_1_p_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_int_0), (MR_Word) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_info_0), &ProcTable_52);
  {
    MR_Word base;
    base = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
    *PredInfo_38 = base;
    MR_hl_field(0, base, 0) = ((MR_Box) (PredModuleName_21));
    MR_hl_field(0, base, 1) = (MR_Box) ((MR_Unsigned) (PredOrFunc_20));
    MR_hl_field(0, base, 2) = ((MR_Box) (PredName_22));
    MR_hl_field(0, base, 3) = ((MR_Box) (PredFormArity_23));
    MR_hl_field(0, base, 4) = ((MR_Box) (Origin_25));
    MR_hl_field(0, base, 5) = ((MR_Box) (Status_26));
    MR_hl_field(0, base, 6) = ((MR_Box) (Markers_29));
    MR_hl_field(0, base, 7) = ((MR_Box) (ArgTypes_30));
    MR_hl_field(0, base, 8) = ((MR_Box) (TypeVarSet_31));
    MR_hl_field(0, base, 9) = ((MR_Box) (TypeVarSet_31));
    MR_hl_field(0, base, 10) = ((MR_Box) (ExistQVars_32));
    MR_hl_field(0, base, 11) = ((MR_Box) (ClassContext_33));
    MR_hl_field(0, base, 12) = ((MR_Box) (ClausesInfo_36));
    MR_hl_field(0, base, 13) = ((MR_Box) (ProcTable_52));
    MR_hl_field(0, base, 14) = ((MR_Box) (PredSubInfo_51));
  }
}

MR_Word MR_CALL 
hlds__hlds_pred__calls_are_fully_qualified_1_f_0(
  MR_Word Markers_3)
{
  MR_bool succeeded;
  MR_Word HeadVar__2_2;

  succeeded = hlds__hlds_markers__marker_is_present_2_p_0(Markers_3, (MR_Integer) 23);
  if (succeeded)
    HeadVar__2_2 = (MR_Integer) 0;
  else
    HeadVar__2_2 = (MR_Integer) 1;
  return HeadVar__2_2;
}

void MR_CALL 
hlds__hlds_pred__next_proc_id_2_p_0(
  MR_Word ProcTable_3,
  MR_Integer * ProcId_4)
{
  MR_Word ProcIdsInfos_5;

  mercury__map__to_assoc_list_2_p_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_int_0), (MR_Word) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_info_0), ProcTable_3, &ProcIdsInfos_5);
  mercury__list__length_2_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_1[0]), ProcIdsInfos_5, ProcId_4);
}

void MR_CALL 
hlds__hlds_pred__in_in_unification_proc_id_1_p_0(
  MR_Integer * HeadVar__1_1)
{
  *HeadVar__1_1 = (MR_Integer) 0;
}

void MR_CALL 
hlds__hlds_pred__next_pred_id_2_p_0(
  MR_Word HeadVar__1_1,
  MR_Word * HeadVar__2_2)
{
  MR_Integer PredId_3 = (MR_Integer) (HeadVar__1_1);
  MR_Integer NextPredId_4 = (MR_Integer) ((MR_Unsigned) PredId_3 + (MR_Unsigned) 1);

  *HeadVar__2_2 = (MR_Word) (NextPredId_4);
}

MR_Integer MR_CALL 
hlds__hlds_pred__invalid_proc_id_0_f_0(void)
{
  return (MR_Integer) -1;
}

MR_Word MR_CALL 
hlds__hlds_pred__invalid_pred_id_0_f_0(void)
{
  return (MR_Word) (((MR_Box) ((MR_Integer) -1)));
}

MR_Integer MR_CALL 
hlds__hlds_pred__initial_proc_id_0_f_0(void)
{
  return (MR_Integer) 0;
}

MR_Word MR_CALL 
hlds__hlds_pred__initial_pred_id_0_f_0(void)
{
  return (MR_Word) (((MR_Box) ((MR_Integer) 0)));
}

MR_Integer MR_CALL 
hlds__hlds_pred__proc_id_to_int_1_f_0(
  MR_Integer ProcId_3)
{
  MR_Integer ProcId_2 = ProcId_3;

  return ProcId_2;
}

void MR_CALL 
hlds__hlds_pred__proc_id_to_int_2_p_1(
  MR_Integer * ProcId_3,
  MR_Integer ProcId_2)
{
  *ProcId_3 = ProcId_2;
}

void MR_CALL 
hlds__hlds_pred__proc_id_to_int_2_p_0(
  MR_Integer ProcId_3,
  MR_Integer * ProcId_2)
{
  *ProcId_2 = ProcId_3;
}

MR_Integer MR_CALL 
hlds__hlds_pred__pred_id_to_int_1_f_0(
  MR_Word HeadVar__1_1)
{
  MR_Integer PredId_3 = (MR_Integer) (HeadVar__1_1);

  return PredId_3;
}

void MR_CALL 
hlds__hlds_pred__pred_id_to_int_2_p_1(
  MR_Word * HeadVar__1_1,
  MR_Integer PredId_3)
{
  *HeadVar__1_1 = (MR_Word) (PredId_3);
}

void MR_CALL 
hlds__hlds_pred__pred_id_to_int_2_p_0(
  MR_Word HeadVar__1_1,
  MR_Integer * PredId_3)
{
  *PredId_3 = (MR_Integer) (HeadVar__1_1);
}

MR_Word MR_CALL 
hlds__hlds_pred__unshroud_pred_proc_id_1_f_0(
  MR_Word HeadVar__1_1)
{
  MR_Word HeadVar__2_2;
  MR_Integer PredId_3 = ((MR_Integer) ((MR_hl_field(0, HeadVar__1_1, 0))));
  MR_Integer ProcId_4 = ((MR_Integer) ((MR_hl_field(0, HeadVar__1_1, 1))));
  MR_Word Var_5 = (MR_Word) (PredId_3);

  {
    HeadVar__2_2 = (MR_Word) MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, HeadVar__2_2, 0) = ((MR_Box) (Var_5));
    MR_hl_field(0, HeadVar__2_2, 1) = ((MR_Box) (ProcId_4));
  }
  return HeadVar__2_2;
}

MR_Integer MR_CALL 
hlds__hlds_pred__unshroud_proc_id_1_f_0(
  MR_Word HeadVar__1_1)
{
  MR_Integer ProcId_3 = (MR_Integer) (HeadVar__1_1);

  return ProcId_3;
}

MR_Word MR_CALL 
hlds__hlds_pred__unshroud_pred_id_1_f_0(
  MR_Word HeadVar__1_1)
{
  MR_Word HeadVar__2_2;
  MR_Integer PredId_3 = (MR_Integer) (HeadVar__1_1);

  HeadVar__2_2 = (MR_Word) (PredId_3);
  return HeadVar__2_2;
}

MR_Word MR_CALL 
hlds__hlds_pred__shroud_pred_proc_id_1_f_0(
  MR_Word HeadVar__1_1)
{
  MR_Word HeadVar__2_2;
  MR_Integer PredId_3;
  MR_Integer ProcId_4 = ((MR_Integer) ((MR_hl_field(0, HeadVar__1_1, 1))));
  MR_Word Var_5 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 0))));

  PredId_3 = (MR_Integer) (Var_5);
  {
    HeadVar__2_2 = (MR_Word) MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, HeadVar__2_2, 0) = ((MR_Box) (PredId_3));
    MR_hl_field(0, HeadVar__2_2, 1) = ((MR_Box) (ProcId_4));
  }
  return HeadVar__2_2;
}

MR_Word MR_CALL 
hlds__hlds_pred__shroud_proc_id_1_f_0(
  MR_Integer ProcId_3)
{
  MR_Word HeadVar__2_2 = (MR_Word) (ProcId_3);

  return HeadVar__2_2;
}

MR_Word MR_CALL 
hlds__hlds_pred__shroud_pred_id_1_f_0(
  MR_Word HeadVar__1_1)
{
  MR_Word HeadVar__2_2;
  MR_Integer PredId_3 = (MR_Integer) (HeadVar__1_1);

  HeadVar__2_2 = (MR_Word) (PredId_3);
  return HeadVar__2_2;
}

MR_Integer MR_CALL 
hlds__hlds_pred__pred_proc_id_project_proc_id_1_f_0(
  MR_Word HeadVar__1_1)
{
  MR_Integer ProcId_4 = ((MR_Integer) ((MR_hl_field(0, HeadVar__1_1, 1))));

  return ProcId_4;
}

MR_Word MR_CALL 
hlds__hlds_pred__pred_proc_id_project_pred_id_1_f_0(
  MR_Word HeadVar__1_1)
{
  MR_Word PredId_3 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 0))));

  return PredId_3;
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____arg_info_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____arg_info_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____arg_info_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____arg_info_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____arg_loc_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____arg_loc_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____arg_loc_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____arg_loc_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____arg_modes_map_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____arg_modes_map_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____arg_modes_map_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____arg_modes_map_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____call_id_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____call_id_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____call_id_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____call_id_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____call_site_static_data_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____call_site_static_data_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____call_site_static_data_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____call_site_static_data_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____can_process_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____can_process_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____can_process_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____can_process_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____cur_user_decl_info_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____cur_user_decl_info_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____cur_user_decl_info_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____cur_user_decl_info_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____decl_section_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____decl_section_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____decl_section_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____decl_section_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____deep_original_body_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____deep_original_body_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____deep_original_body_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____deep_original_body_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____deep_profile_proc_info_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____deep_profile_proc_info_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____deep_profile_proc_info_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____deep_profile_proc_info_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____deep_profile_role_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____deep_profile_role_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____deep_profile_role_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____deep_profile_role_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____deep_recursion_info_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____deep_recursion_info_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____deep_recursion_info_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____deep_recursion_info_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____detism_decl_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____detism_decl_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____detism_decl_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____detism_decl_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____external_type_params_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____external_type_params_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____external_type_params_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____external_type_params_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____format_call_info_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____format_call_info_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____format_call_info_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____format_call_info_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____generic_call_id_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____generic_call_id_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____generic_call_id_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____generic_call_id_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____goal_type_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____goal_type_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____goal_type_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____goal_type_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____has_mutual_tail_rec_call_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____has_mutual_tail_rec_call_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____has_mutual_tail_rec_call_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____has_mutual_tail_rec_call_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____has_parallel_conj_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____has_parallel_conj_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____has_parallel_conj_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____has_parallel_conj_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____has_self_tail_rec_call_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____has_self_tail_rec_call_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____has_self_tail_rec_call_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____has_self_tail_rec_call_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____has_tail_rec_call_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____has_tail_rec_call_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____has_tail_rec_call_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____has_tail_rec_call_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____has_user_event_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____has_user_event_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____has_user_event_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____has_user_event_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____hlds_deep_excp_vars_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____hlds_deep_excp_vars_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____hlds_deep_excp_vars_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____hlds_deep_excp_vars_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____hlds_deep_layout_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____hlds_deep_layout_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____hlds_deep_layout_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____hlds_deep_layout_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____hlds_proc_static_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____hlds_proc_static_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____hlds_proc_static_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____hlds_proc_static_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____implementation_language_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____implementation_language_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____implementation_language_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____implementation_language_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____imported_reuse_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____imported_reuse_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____imported_reuse_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____imported_reuse_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____imported_sharing_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____imported_sharing_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____imported_sharing_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____imported_sharing_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____is_address_taken_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____is_address_taken_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____is_address_taken_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____is_address_taken_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____liveness_info_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____liveness_info_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____liveness_info_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____liveness_info_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____maybe_predmode_decl_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____maybe_predmode_decl_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____maybe_predmode_decl_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____maybe_predmode_decl_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____needs_maxfr_slot_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____needs_maxfr_slot_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____needs_maxfr_slot_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____needs_maxfr_slot_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____np_goal_type_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____np_goal_type_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____np_goal_type_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____np_goal_type_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____oisu_pred_kind_for_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____oisu_pred_kind_for_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____oisu_pred_kind_for_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____oisu_pred_kind_for_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____pred_id_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____pred_id_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____pred_id_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____pred_id_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____pred_info_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____pred_info_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____pred_info_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____pred_info_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____pred_proc_id_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____pred_proc_id_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____pred_proc_id_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____pred_proc_id_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____pred_sub_info_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____pred_sub_info_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____pred_sub_info_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____pred_sub_info_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____proc_exception_info_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____proc_exception_info_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____proc_exception_info_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____proc_exception_info_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____proc_foreign_exports_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____proc_foreign_exports_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____proc_foreign_exports_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____proc_foreign_exports_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____proc_id_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____proc_id_0_0(((MR_Integer) (wrapper_arg_1)), ((MR_Integer) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____proc_id_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____proc_id_0_0(&conv0_HeadVar__1_1, ((MR_Integer) (wrapper_arg_2)), ((MR_Integer) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____proc_info_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____proc_info_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____proc_info_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____proc_info_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____proc_mm_tabling_info_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____proc_mm_tabling_info_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____proc_mm_tabling_info_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____proc_mm_tabling_info_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____proc_sub_info_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____proc_sub_info_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____proc_sub_info_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____proc_sub_info_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____proc_table_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____proc_table_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____proc_table_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____proc_table_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____proc_table_io_info_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____proc_table_io_info_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____proc_table_io_info_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____proc_table_io_info_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____proc_table_struct_info_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____proc_table_struct_info_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____proc_table_struct_info_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____proc_table_struct_info_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____proc_trailing_info_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____proc_trailing_info_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____proc_trailing_info_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____proc_trailing_info_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____scc_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____scc_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____scc_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____scc_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____special_proc_return_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____special_proc_return_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____special_proc_return_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____special_proc_return_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____structure_reuse_domain_and_status_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____structure_reuse_domain_and_status_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____structure_reuse_domain_and_status_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____structure_reuse_domain_and_status_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____structure_reuse_info_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____structure_reuse_info_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____structure_reuse_info_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____structure_reuse_info_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____structure_sharing_domain_and_status_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____structure_sharing_domain_and_status_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____structure_sharing_domain_and_status_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____structure_sharing_domain_and_status_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____structure_sharing_info_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____structure_sharing_info_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____structure_sharing_info_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____structure_sharing_info_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____table_arg_info_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____table_arg_info_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____table_arg_info_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____table_arg_info_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____table_arg_infos_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____table_arg_infos_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____table_arg_infos_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____table_arg_infos_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____table_is_poly_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____table_is_poly_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____table_is_poly_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____table_is_poly_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____table_locn_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____table_locn_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____table_locn_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____table_locn_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____table_step_desc_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____table_step_desc_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____table_step_desc_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____table_step_desc_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____table_trie_step_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____table_trie_step_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____table_trie_step_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____table_trie_step_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____table_value_or_addr_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____table_value_or_addr_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____table_value_or_addr_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____table_value_or_addr_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____top_functor_mode_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____top_functor_mode_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____top_functor_mode_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____top_functor_mode_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____untuple_proc_info_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____untuple_proc_info_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____untuple_proc_info_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____untuple_proc_info_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

static MR_bool MR_CALL 
hlds__hlds_pred____Unify____visible_scc_data_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  MR_bool succeeded;

  succeeded = hlds__hlds_pred____Unify____visible_scc_data_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
  return succeeded;
}

static void MR_CALL 
hlds__hlds_pred____Compare____visible_scc_data_0_0_10001(
  MR_Box * wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3)
{
  MR_Word conv0_HeadVar__1_1;

  hlds__hlds_pred____Compare____visible_scc_data_0_0(&conv0_HeadVar__1_1, ((MR_Word) (wrapper_arg_2)), ((MR_Word) (wrapper_arg_3)));
  *wrapper_arg_1 = ((MR_Box) (conv0_HeadVar__1_1));
}

void mercury__hlds__hlds_pred__init(void)
{
}

void mercury__hlds__hlds_pred__init_type_tables(void)
{
  static MR_bool initialised = MR_FALSE;
  if (initialised) return;
  initialised = MR_TRUE;

  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_arg_info_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_arg_loc_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_arg_modes_map_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_call_id_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_call_site_static_data_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_can_process_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_cur_user_decl_info_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_decl_section_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_deep_original_body_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_deep_profile_proc_info_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_deep_profile_role_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_deep_recursion_info_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_detism_decl_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_external_type_params_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_format_call_info_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_generic_call_id_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_goal_type_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_has_mutual_tail_rec_call_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_has_parallel_conj_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_has_self_tail_rec_call_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_has_tail_rec_call_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_has_user_event_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_hlds_deep_excp_vars_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_hlds_deep_layout_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_hlds_proc_static_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_implementation_language_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_imported_reuse_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_imported_sharing_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_is_address_taken_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_liveness_info_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_maybe_predmode_decl_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_needs_maxfr_slot_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_np_goal_type_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_oisu_pred_kind_for_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_id_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_info_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_proc_id_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_sub_info_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_exception_info_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_foreign_exports_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_id_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_info_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_mm_tabling_info_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_sub_info_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_table_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_table_io_info_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_table_struct_info_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_trailing_info_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_scc_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_special_proc_return_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_structure_reuse_domain_and_status_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_structure_reuse_info_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_structure_sharing_domain_and_status_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_structure_sharing_info_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_table_arg_info_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_table_arg_infos_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_table_is_poly_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_table_locn_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_table_step_desc_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_table_trie_step_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_table_value_or_addr_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_top_functor_mode_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_untuple_proc_info_0);
  MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_visible_scc_data_0);
}

void mercury__hlds__hlds_pred__init_debugger(void)
{
  MR_fatal_error("debugger initialization in MLDS grade");
}

// Ensure everything is compiled with the same grade.
const char *mercury__hlds__hlds_pred__grade_check(void)
{
  return &MR_GRADE_VAR;
}

// :- end_module hlds.hlds_pred.
