/*
** Automatically generated from `hlds_pred.m'
** by the Mercury compiler,
** version 22.01.9-beta-2026-08-29
** 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 "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 "time.mih"
#include "transform_hlds.mih"
#include "tree234.mih"
#include "type_desc.mih"
#include "unit.mih"
#include "univ.mih"
#include "varset.mih"
#include "backend_libs.builtin_ops.mih"
#include "check_hlds.inst_match.mih"
#include "check_hlds.mode_constraint_robdd.mih"
#include "check_hlds.mode_errors.mih"
#include "check_hlds.mode_info.mih"
#include "check_hlds.mode_test.mih"
#include "check_hlds.mode_util.mih"
#include "check_hlds.proc_requests.mih"
#include "check_hlds.type_util.mih"
#include "hlds.const_struct.mih"
#include "hlds.goal_form.mih"
#include "hlds.goal_mode.mih"
#include "hlds.goal_util.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_module.mih"
#include "hlds.hlds_promise.mih"
#include "hlds.hlds_rtti.mih"
#include "hlds.inst_graph.mih"
#include "hlds.instmap.mih"
#include "hlds.pred_table.mih"
#include "hlds.special_pred.mih"
#include "hlds.status.mih"
#include "hlds.vartypes.mih"
#include "libs.compiler_util.mih"
#include "libs.dependency_graph.mih"
#include "libs.globals.mih"
#include "libs.lp_rational.mih"
#include "libs.op_mode.mih"
#include "libs.optimization_options.mih"
#include "libs.options.mih"
#include "libs.polyhedron.mih"
#include "libs.rat.mih"
#include "libs.timestamp.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.error_util.mih"
#include "parse_tree.file_names.mih"
#include "parse_tree.module_qual.mih"
#include "parse_tree.parse_tree_out_info.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_detism.mih"
#include "parse_tree.prog_foreign.mih"
#include "parse_tree.prog_item.mih"
#include "parse_tree.prog_rename.mih"
#include "parse_tree.prog_type.mih"
#include "parse_tree.prog_util.mih"
#include "parse_tree.set_of_var.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"




static const MR_FA_PseudoTypeInfo_Struct2 hlds__hlds_pred__tree234__pti_tree234_2__plain_builtin__type_ctor_info_int_0__plain_hlds__hlds_pred__type_ctor_info_proc_info_0;

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_PseudoTypeInfo_Struct2 hlds__hlds_pred__tree234__pti_tree234_2__plain_term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0__plain_parse_tree__prog_data__type_ctor_info_mer_type_0;

static const MR_FA_PseudoTypeInfo_Struct2 hlds__hlds_pred__pair__pti_pair_2__plain_term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0__plain_parse_tree__prog_data__type_ctor_info_mer_mode_0;

static const MR_FA_PseudoTypeInfo_Struct1 hlds__hlds_pred__term__pti_var_1__plain_parse_tree__prog_data__type_ctor_info_prog_var_type_0;

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_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[1];

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_proc_succeed_0_0;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_can_proc_succeed_0_1;

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_can_proc_succeed_0[2];

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_can_proc_succeed_0[2];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_can_proc_succeed_0[2];

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_FA_TypeInfo_Struct2 hlds__hlds_pred__tree234__ti_tree234_2term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0parse_tree__prog_data__type_ctor_info_mer_type_0;

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__varset__ti_varset_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[6];

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_deep_original_body_0_0[6];

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_deep_original_body_0_0[6];

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_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_need_to_requantify_0_0;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_need_to_requantify_0_1;

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_need_to_requantify_0[2];

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_need_to_requantify_0[2];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_need_to_requantify_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_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_creation_0_0;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_creation_0_1;

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_pred_creation_0[2];

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_pred_creation_0[2];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_pred_creation_0[2];

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_pred__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_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_0;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_1;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_2;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_3;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_4;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_5;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_6;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_7;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_8;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_9;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_10;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_11;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_12;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_13;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_14;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_15;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_16;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_17;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_18;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_19;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_20;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_21;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_22;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_23;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_24;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_25;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_26;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_27;

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_28;

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_pred_marker_0[29];

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_pred_marker_0[29];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_pred_marker_0[29];

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_pred_origin_0_0[2];

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_pred_origin_0_0[2];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_0;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_pred_origin_0_1[2];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_1;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_pred_origin_0_2[2];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_2;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_pred_origin_0_3[3];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_3;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_pred_origin_0_4[1];

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_pred_origin_0_4[1];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_4;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_pred_origin_0_5[2];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_5;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_pred_origin_0_6[3];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_6;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_pred_origin_0_7[3];

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_pred_origin_0_7[3];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_7;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_pred_origin_0_8[2];

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_pred_origin_0_8[2];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_8;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_pred_origin_0_9[3];

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_pred_origin_0_9[3];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_9;

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_10;

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_11;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_pred_origin_0_12[1];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_12;

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_pred_origin_0_0[2];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_pred_origin_0_1[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_pred_origin_0_2[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_pred_origin_0_3[9];

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_pred_origin_0[4];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_pred_origin_0[13];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_pred_origin_0[13];

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__list__ti_list_1hlds__hlds_pred__type_ctor_info_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;

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_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_pred_sub_info_0_0[15];

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_pred_sub_info_0_0[15];

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_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_pred_transformation_0_0[1];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_0;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_pred_transformation_0_1[1];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_1;

static const MR_FA_TypeInfo_Struct2 hlds__hlds_pred__pair__ti_pair_2builtin__type_ctor_info_int_0parse_tree__prog_data__type_ctor_info_mer_type_0;

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__list__ti_list_1pair__ti_pair_2builtin__type_ctor_info_int_0parse_tree__prog_data__type_ctor_info_mer_type_0;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_pred_transformation_0_2[1];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_2;

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_pred_transformation_0_3[1];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_3;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_pred_transformation_0_4[1];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_4;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_pred_transformation_0_5[1];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_5;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_pred_transformation_0_6[1];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_6;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_pred_transformation_0_7[1];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_7;

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_8;

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_9;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_pred_transformation_0_10[2];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_10;

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_11;

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_12;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_pred_transformation_0_13[1];

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_13;

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_14;

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_15;

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_16;

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_pred_transformation_0_0[7];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_pred_transformation_0_1[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_pred_transformation_0_2[1];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_pred_transformation_0_3[8];

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_pred_transformation_0[4];

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_pred_transformation_0[17];

static const MR_Integer hlds__hlds_pred__hlds__hlds_pred__functor_number_map_pred_transformation_0[17];

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1analysis__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_FA_TypeInfo_Struct1 hlds__hlds_pred__list__ti_list_1check_hlds__mode_errors__type_ctor_info_mode_error_info_0;

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_proc_info_0_0[14];

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_proc_info_0_0[14];

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_proc_info_0_0[14];

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__type_ctor_info_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_util__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_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 MR_bool MR_CALL 
hlds__hlds_pred__IntroducedFrom__pred__proc_info_uninstantiated_head_vars__3912__1_4_p_0(
  MR_Word ModuleInfo_4,
  MR_Word VarTypes_9,
  MR_Word LambdaHeadVar__1_18,
  MR_Word * LambdaHeadVar__2_19);

static MR_bool MR_CALL 
hlds__hlds_pred__IntroducedFrom__pred__proc_info_instantiated_head_vars__3898__1_4_p_0(
  MR_Word ModuleInfo_4,
  MR_Word VarTypes_9,
  MR_Word LambdaHeadVar__1_18,
  MR_Word * LambdaHeadVar__2_19);

static MR_bool MR_CALL 
hlds__hlds_pred__IntroducedFrom__pred__pred_info_valid_procids__1675__1_2_p_0(
  MR_Word ProcTable_6,
  MR_Integer LambdaHeadVar__1_10);

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 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____pred_sub_info_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3);

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_4_p_0(
  MR_Word ModuleName_5,
  MR_String PredName_6,
  MR_Integer ProcId_7,
  MR_Integer Arity_8);

static void MR_CALL 
hlds__hlds_pred__ensure_all_headvars_are_named_2_4_p_0(
  MR_Word HeadVar__1_1,
  MR_Integer SeqNum_2,
  MR_Word STATE_VARIABLE_VarSet_0_3,
  MR_Word * STATE_VARIABLE_VarSet_4);

static void MR_CALL 
hlds__hlds_pred__find_lowest_unused_proc_id_2_3_p_0(
  MR_Integer TrialProcId_4,
  MR_Word ProcTable_5,
  MR_Integer * CloneProcId_6);

static MR_bool MR_CALL 
hlds__hlds_pred__proc_info_has_io_state_pair_2_8_p_0(
  MR_Word HeadVar__1_1,
  MR_Word ModuleInfo_2,
  MR_Word VarTypes_3,
  MR_Integer ArgNum_4,
  MR_Word STATE_VARIABLE_MaybeIn_0_5,
  MR_Word * STATE_VARIABLE_MaybeIn_6,
  MR_Word STATE_VARIABLE_MaybeOut_0_7,
  MR_Word * STATE_VARIABLE_MaybeOut_8);

static MR_bool MR_CALL 
hlds__hlds_pred__proc_info_uninstantiated_head_vars_3_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box * wrapper_arg_2);

static MR_bool MR_CALL 
hlds__hlds_pred__proc_info_instantiated_head_vars_3_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box * wrapper_arg_2);

static MR_bool MR_CALL 
hlds__hlds_pred__pred_info_valid_procids_1_f_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1);

static void MR_CALL 
hlds__hlds_pred__non_special_interface_should_use_typeinfo_liveness_4_p_0(
  MR_Word PredStatus_5,
  MR_Word IsAddressTaken_6,
  MR_Word Globals_7,
  MR_Word * InterfaceTypeInfoLiveness_8);

static void MR_CALL 
hlds__hlds_pred__proc_info_create_with_declared_detism_16_p_0(
  MR_Word MainContext_17,
  MR_Word ItemNumber_18,
  MR_Word VarSet_19,
  MR_Word VarTypes_20,
  MR_Word HeadVars_21,
  MR_Word InstVarSet_22,
  MR_Word Modes_23,
  MR_Word DetismDecl_24,
  MR_Word MaybeDeclaredDetism_25,
  MR_Word Detism_26,
  MR_Word Goal_27,
  MR_Word RttiVarMaps_28,
  MR_Word IsAddressTaken_29,
  MR_Word HasParallelConj_30,
  MR_Word VarNameRemap_31,
  MR_Word * ProcInfo_32);

static void MR_CALL 
hlds__hlds_pred__compute_arg_types_modes_6_p_0(
  MR_Word HeadVar__1_1,
  MR_Word VarTypes_2,
  MR_Word InstMapInit_3,
  MR_Word InstMapFinal_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_proc_succeed_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____can_proc_succeed_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____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____need_to_requantify_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____need_to_requantify_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_creation_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____pred_creation_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_marker_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____pred_marker_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_markers_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____pred_markers_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_origin_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____pred_origin_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_proc_list_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____pred_proc_list_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____pred_transformation_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2);

static void MR_CALL 
hlds__hlds_pred____Compare____pred_transformation_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[16][3];

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

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

static /* final */ const MR_Box hlds__hlds_pred_scalar_common_5[1][5];

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


/* sealed */ struct hlds__hlds_pred__vector_common_type_4_0_s {
  const MR_String hlds__hlds_pred__vector_common_type_4_0__vct_4_f_0;
};

static /* final */ const struct hlds__hlds_pred__vector_common_type_4_0_s hlds__hlds_pred_vector_common_4[29];

/* sealed */ struct hlds__hlds_pred__vector_common_type_6_0_s {
  const MR_Word hlds__hlds_pred__vector_common_type_6_0__vct_6_f_0;
};

static /* final */ const struct hlds__hlds_pred__vector_common_type_6_0_s hlds__hlds_pred_vector_common_6[4];

/* sealed */ struct hlds__hlds_pred__vector_common_type_8_0_s {
  const MR_Word hlds__hlds_pred__vector_common_type_8_0__vct_8_f_0;
};

static /* final */ const struct hlds__hlds_pred__vector_common_type_8_0_s hlds__hlds_pred_vector_common_8[12];



static /* final */ const MR_Box hlds__hlds_pred_scalar_common_1[16][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__pair__pair__type_ctor_info_pair_2)),
    ((MR_Box) (&hlds__hlds_pred_scalar_common_2[1])),
    ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_mode_0))
  },
  /* row 6 */
  {
    ((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 7 */
  {
    ((MR_Box) (&mercury__pair__pair__type_ctor_info_pair_2)),
    ((MR_Box) (&hlds__hlds_pred_scalar_common_1[6])),
    ((MR_Box) (&hlds__hlds_pred_scalar_common_1[6]))
  },
  /* row 8 */
  {
    ((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 9 */
  {
    ((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 10 */
  {
    ((MR_Box) (&mercury__pair__pair__type_ctor_info_pair_2)),
    ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_int_0)),
    ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_type_0))
  },
  /* row 11 */
  {
    ((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 12 */
  {
    ((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[47]))
  },
  /* row 13 */
  {
    ((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 14 */
  {
    ((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 15 */
  {
    ((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[67][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__list__list__type_ctor_info_list_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__varset__varset__type_ctor_info_varset_1)),
    ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_var_type_0))
  },
  /* row 8 */
  {
    ((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 9 */
  {
    ((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 10 */
  {
    ((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 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_pred__hlds__hlds_pred__type_ctor_info_pred_marker_0))
  },
  /* row 17 */
  {
    ((MR_Box) (&mercury__list__list__type_ctor_info_list_1)),
    ((MR_Box) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_proc_id_0))
  },
  /* row 18 */
  {
    ((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 19 */
  {
    ((MR_Box) (&mercury__list__list__type_ctor_info_list_1)),
    ((MR_Box) (&hlds__hlds_pred_scalar_common_1[7]))
  },
  /* row 20 */
  {
    ((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 21 */
  {
    ((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 22 */
  {
    ((MR_Box) (&mercury__maybe__maybe__type_ctor_info_maybe_1)),
    ((MR_Box) (&hlds__hlds_pred_scalar_common_2[21]))
  },
  /* row 23 */
  {
    ((MR_Box) (&mercury__list__list__type_ctor_info_list_1)),
    ((MR_Box) (&hlds__hlds_pred_scalar_common_1[10]))
  },
  /* row 24 */
  {
    ((MR_Box) (&mercury__list__list__type_ctor_info_list_1)),
    ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_int_0))
  },
  /* row 25 */
  {
    ((MR_Box) (&mercury__maybe__maybe__type_ctor_info_maybe_1)),
    ((MR_Box) (&analysis__analysis__type_ctor_info_analysis_status_0))
  },
  /* row 26 */
  {
    ((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 27 */
  {
    ((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 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__list__list__type_ctor_info_list_1)),
    ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_is_live_0))
  },
  /* row 30 */
  {
    ((MR_Box) (&mercury__maybe__maybe__type_ctor_info_maybe_1)),
    ((MR_Box) (&hlds__hlds_pred_scalar_common_2[29]))
  },
  /* row 31 */
  {
    ((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 32 */
  {
    ((MR_Box) (&mercury__list__list__type_ctor_info_list_1)),
    ((MR_Box) (&check_hlds__mode_errors__check_hlds__mode_errors__type_ctor_info_mode_error_info_0))
  },
  /* row 33 */
  {
    ((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 34 */
  {
    ((MR_Box) (&mercury__maybe__maybe__type_ctor_info_maybe_1)),
    ((MR_Box) (&hlds__hlds_pred_scalar_common_2[33]))
  },
  /* row 35 */
  {
    ((MR_Box) (&mercury__list__list__type_ctor_info_list_1)),
    ((MR_Box) (&mercury__term__term__type_ctor_info_context_0))
  },
  /* row 36 */
  {
    ((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 37 */
  {
    ((MR_Box) (&mercury__list__list__type_ctor_info_list_1)),
    ((MR_Box) (&parse_tree__error_util__parse_tree__error_util__type_ctor_info_error_spec_0))
  },
  /* row 38 */
  {
    ((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 39 */
  {
    ((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 40 */
  {
    ((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 41 */
  {
    ((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 42 */
  {
    ((MR_Box) (&mercury__maybe__maybe__type_ctor_info_maybe_1)),
    ((MR_Box) (&hlds__hlds_pred_scalar_common_2[41]))
  },
  /* row 43 */
  {
    ((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 44 */
  {
    ((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 45 */
  {
    ((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 46 */
  {
    ((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 47 */
  {
    ((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 48 */
  {
    ((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[47]))
  },
  /* row 49 */
  {
    ((MR_Box) (&mercury__maybe__maybe__type_ctor_info_maybe_1)),
    ((MR_Box) (&hlds__hlds_pred_scalar_common_2[48]))
  },
  /* row 50 */
  {
    ((MR_Box) (&mercury__maybe__maybe__type_ctor_info_maybe_1)),
    ((MR_Box) (&hlds__hlds_pred_scalar_common_1[12]))
  },
  /* row 51 */
  {
    ((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 52 */
  {
    ((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 53 */
  {
    ((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 54 */
  {
    ((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 55 */
  {
    ((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 56 */
  {
    ((MR_Box) (&mercury__maybe__maybe__type_ctor_info_maybe_1)),
    ((MR_Box) (&hlds__hlds_pred_scalar_common_2[55]))
  },
  /* row 57 */
  {
    ((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 58 */
  {
    ((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 59 */
  {
    ((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 60 */
  {
    ((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 61 */
  {
    ((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 62 */
  {
    ((MR_Box) ((MR_Integer) 0)),
    ((MR_Box) ((MR_Unsigned) 0U))
  },
  /* row 63 */
  {
    ((MR_Box) ((MR_Integer) 13)),
    ((MR_Box) ((MR_Unsigned) 0U))
  },
  /* row 64 */
  {
    ((MR_Box) ((MR_Integer) 14)),
    ((MR_Box) ((MR_Unsigned) 0U))
  },
  /* row 65 */
  {
    ((MR_Box) ((MR_Unsigned) 0U)),
    ((MR_Box) ((MR_Unsigned) 0U))
  },
  /* row 66 */
  {
    ((MR_Box) ((MR_Unsigned) 0U)),
    ((MR_Box) ((MR_Unsigned) 0U))
  },
};

static /* final */ const MR_Box hlds__hlds_pred_scalar_common_3[6][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))
  },
};

static /* final */ const MR_Box hlds__hlds_pred_scalar_common_5[1][5] = {
  /* row 0 */
  {
    NULL,
    ((MR_Box) (NULL)),
    ((MR_Box) ((MR_Integer) 2)),
    ((MR_Box) (&hlds__hlds_pred__tree234__pti_tree234_2__plain_builtin__type_ctor_info_int_0__plain_hlds__hlds_pred__type_ctor_info_proc_info_0)),
    ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_int_0))
  },
};

static /* final */ const MR_Box hlds__hlds_pred_scalar_common_7[1][7] = {
  /* row 0 */
  {
    NULL,
    ((MR_Box) (NULL)),
    ((MR_Box) ((MR_Integer) 4)),
    ((MR_Box) (&hlds__hlds_module__hlds__hlds_module__type_ctor_info_module_info_0)),
    ((MR_Box) (&hlds__hlds_pred__tree234__pti_tree234_2__plain_term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0__plain_parse_tree__prog_data__type_ctor_info_mer_type_0)),
    ((MR_Box) (&hlds__hlds_pred__pair__pti_pair_2__plain_term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0__plain_parse_tree__prog_data__type_ctor_info_mer_mode_0)),
    ((MR_Box) (&hlds__hlds_pred__term__pti_var_1__plain_parse_tree__prog_data__type_ctor_info_prog_var_type_0))
  },
};


static /* final */ const struct hlds__hlds_pred__vector_common_type_4_0_s hlds__hlds_pred_vector_common_4[29] = {
  /* row 0 */   {     (MR_String) "stub" },
  /* row 1 */   {     (MR_String) "builtin_stub" },
  /* row 2 */   {     (MR_String) "infer_type" },
  /* row 3 */   {     (MR_String) "infer_modes" },
  /* row 4 */   {     (MR_String) "no_pred_decl" },
  /* row 5 */   {     (MR_String) "no_determinism_warning" },
  /* row 6 */   {     (MR_String) "inline" },
  /* row 7 */   {     (MR_String) "no_inline" },
  /* row 8 */   {     (MR_String) "heuristic_inline" },
  /* row 9 */   {     (MR_String) "consider_used" },
  /* row 10 */   {     (MR_String) "class_method" },
  /* row 11 */   {     (MR_String) "class_instance_method" },
  /* row 12 */   {     (MR_String) "named_class_instance_method" },
  /* row 13 */   {     (MR_String) "impure" },
  /* row 14 */   {     (MR_String) "semipure" },
  /* row 15 */   {     (MR_String) "promise_pure" },
  /* row 16 */   {     (MR_String) "promise_semipure" },
  /* row 17 */   {     (MR_String) "promise_equivalent_clauses" },
  /* row 18 */   {     (MR_String) "terminates" },
  /* row 19 */   {     (MR_String) "does_not_terminate" },
  /* row 20 */   {     (MR_String) "check_termination" },
  /* row 21 */   {     (MR_String) "calls_are_fully_qualified" },
  /* row 22 */   {     (MR_String) "mode_check_clauses" },
  /* row 23 */   {     (MR_String) "mutable_access_pred" },
  /* row 24 */   {     (MR_String) "has_require_scope" },
  /* row 25 */   {     (MR_String) "has_incomplete_switch" },
  /* row 26 */   {     (MR_String) "has_format_call" },
  /* row 27 */   {     (MR_String) "has_rhs_lambda" },
  /* row 28 */   {     (MR_String) "fact_table_semantic_errors" },
};

static /* final */ const struct hlds__hlds_pred__vector_common_type_6_0_s hlds__hlds_pred_vector_common_6[4] = {
  /* row 0 */   {     (MR_Integer) 1 },
  /* row 1 */   {     (MR_Integer) 0 },
  /* row 2 */   {     (MR_Integer) 0 },
  /* row 3 */   {     (MR_Integer) 0 },
};

static /* final */ const struct hlds__hlds_pred__vector_common_type_8_0_s hlds__hlds_pred_vector_common_8[12] = {
  /* row 0 */   {     (MR_Integer) 0 },
  /* row 1 */   {     (MR_Integer) 1 },
  /* row 2 */   {     (MR_Integer) 1 },
  /* row 3 */   {     (MR_Integer) 1 },
  /* row 4 */   {     (MR_Integer) 0 },
  /* row 5 */   {     (MR_Integer) 0 },
  /* row 6 */   {     (MR_Integer) 1 },
  /* row 7 */   {     (MR_Integer) 1 },
  /* row 8 */   {     (MR_Integer) 0 },
  /* row 9 */   {     (MR_Integer) 0 },
  /* row 10 */   {     (MR_Integer) 0 },
  /* row 11 */   {     (MR_Integer) 0 },
};


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



static const MR_FA_PseudoTypeInfo_Struct2 hlds__hlds_pred__tree234__pti_tree234_2__plain_builtin__type_ctor_info_int_0__plain_hlds__hlds_pred__type_ctor_info_proc_info_0 = {
  &mercury__tree234__tree234__type_ctor_info_tree234_2,
  {
    (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_int_0),
    (MR_PseudoTypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_info_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_PseudoTypeInfo_Struct2 hlds__hlds_pred__tree234__pti_tree234_2__plain_term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0__plain_parse_tree__prog_data__type_ctor_info_mer_type_0 = {
  &mercury__tree234__tree234__type_ctor_info_tree234_2,
  {
    (MR_PseudoTypeInfo) (&hlds__hlds_pred__term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0),
    (MR_PseudoTypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_type_0)
  }
};

static const MR_FA_PseudoTypeInfo_Struct2 hlds__hlds_pred__pair__pti_pair_2__plain_term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0__plain_parse_tree__prog_data__type_ctor_info_mer_mode_0 = {
  &mercury__pair__pair__type_ctor_info_pair_2,
  {
    (MR_PseudoTypeInfo) (&hlds__hlds_pred__term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0),
    (MR_PseudoTypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_mode_0)
  }
};

static const MR_FA_PseudoTypeInfo_Struct1 hlds__hlds_pred__term__pti_var_1__plain_parse_tree__prog_data__type_ctor_info_prog_var_type_0 = {
  &mercury__term__term__type_ctor_info_var_1,
  {
    (MR_PseudoTypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_var_type_0)
  }
};

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_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[1] = {
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_generic_call_id_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(1),
  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_proc_succeed_0_0 = {
  (MR_String) "proc_can_maybe_succeed",
  INT32_C(0)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_can_proc_succeed_0_1 = {
  (MR_String) "proc_cannot_succeed",
  INT32_C(1)
};

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_can_proc_succeed_0[2] = {
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_can_proc_succeed_0_0,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_can_proc_succeed_0_1
};

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_can_proc_succeed_0[2] = {
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_can_proc_succeed_0_0,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_can_proc_succeed_0_1
};

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

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_can_proc_succeed_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_ENUM,
  ((MR_Box) (hlds__hlds_pred____Unify____can_proc_succeed_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____can_proc_succeed_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "can_proc_succeed",
  {     hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_can_proc_succeed_0 },
  {     hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_can_proc_succeed_0 },
  (MR_Integer) 2,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_can_proc_succeed_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_FA_TypeInfo_Struct2 hlds__hlds_pred__tree234__ti_tree234_2term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_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_prog_var_type_0),
    (MR_TypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_type_0)
  }
};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__varset__ti_varset_1parse_tree__prog_data__type_ctor_info_prog_var_type_0 = {
  &mercury__varset__varset__type_ctor_info_varset_1,
  {
    (MR_TypeInfo) (&parse_tree__prog_data__parse_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[6] = {
  (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) (&hlds__hlds_pred__tree234__ti_tree234_2term__ti_var_1parse_tree__prog_data__type_ctor_info_prog_var_type_0parse_tree__prog_data__type_ctor_info_mer_type_0),
  (MR_PseudoTypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_determinism_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__varset__ti_varset_1parse_tree__prog_data__type_ctor_info_prog_var_type_0)
};

static const MR_ConstString hlds__hlds_pred__hlds__hlds_pred__field_names_deep_original_body_0_0[6] = {
  (MR_String) "dob_body",
  (MR_String) "dob_head_vars",
  (MR_String) "dob_instmap",
  (MR_String) "dob_vartypes",
  (MR_String) "dob_detism",
  (MR_String) "dob_varset"
};

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_deep_original_body_0_0[6] = {
  {
    (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
  },
  {
    (MR_Integer) 5,
    (MR_Integer) 0,
    (MR_Integer) 0
  }
};

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(6),
  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_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) (&mercury__builtin__builtin__type_ctor_info_int_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_need_to_requantify_0_0 = {
  (MR_String) "need_to_requantify",
  INT32_C(0)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_need_to_requantify_0_1 = {
  (MR_String) "do_not_need_to_requantify",
  INT32_C(1)
};

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_need_to_requantify_0[2] = {
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_need_to_requantify_0_0,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_need_to_requantify_0_1
};

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_need_to_requantify_0[2] = {
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_need_to_requantify_0_1,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_need_to_requantify_0_0
};

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

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_need_to_requantify_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_ENUM,
  ((MR_Box) (hlds__hlds_pred____Unify____need_to_requantify_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____need_to_requantify_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "need_to_requantify",
  {     hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_need_to_requantify_0 },
  {     hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_need_to_requantify_0 },
  (MR_Integer) 2,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_need_to_requantify_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_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_creation_0_0 = {
  (MR_String) "created_by_deforestation",
  INT32_C(0)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_creation_0_1 = {
  (MR_String) "created_by_io_tabling",
  INT32_C(1)
};

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_pred_creation_0[2] = {
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_creation_0_0,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_creation_0_1
};

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_pred_creation_0[2] = {
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_creation_0_0,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_creation_0_1
};

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

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_creation_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_ENUM,
  ((MR_Box) (hlds__hlds_pred____Unify____pred_creation_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____pred_creation_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "pred_creation",
  {     hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_pred_creation_0 },
  {     hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_pred_creation_0 },
  (MR_Integer) 2,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_pred_creation_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_pred__type_ctor_info_pred_marker_0 = {
  &mercury__set_ordlist__set_ordlist__type_ctor_info_set_ordlist_1,
  {
    (MR_TypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__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) (&mercury__builtin__builtin__type_ctor_info_string_0),
  (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_int_0),
  (MR_PseudoTypeInfo) (&mdbcomp__prim_data__mdbcomp__prim_data__type_ctor_info_pred_or_func_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__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_pred__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_prog_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_name",
  (MR_String) "pi_orig_arity",
  (MR_String) "pi_is_pred_or_func",
  (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) 0
  },
  {
    (MR_Integer) 2,
    (MR_Integer) 0,
    (MR_Integer) 0
  },
  {
    (MR_Integer) 3,
    (MR_Integer) 0,
    (MR_Integer) 1
  },
  {
    (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_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_0 = {
  (MR_String) "marker_stub",
  INT32_C(0)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_1 = {
  (MR_String) "marker_builtin_stub",
  INT32_C(1)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_2 = {
  (MR_String) "marker_infer_type",
  INT32_C(2)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_3 = {
  (MR_String) "marker_infer_modes",
  INT32_C(3)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_4 = {
  (MR_String) "marker_no_pred_decl",
  INT32_C(4)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_5 = {
  (MR_String) "marker_no_detism_warning",
  INT32_C(5)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_6 = {
  (MR_String) "marker_user_marked_inline",
  INT32_C(6)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_7 = {
  (MR_String) "marker_user_marked_no_inline",
  INT32_C(7)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_8 = {
  (MR_String) "marker_heuristic_inline",
  INT32_C(8)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_9 = {
  (MR_String) "marker_consider_used",
  INT32_C(9)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_10 = {
  (MR_String) "marker_class_method",
  INT32_C(10)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_11 = {
  (MR_String) "marker_class_instance_method",
  INT32_C(11)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_12 = {
  (MR_String) "marker_named_class_instance_method",
  INT32_C(12)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_13 = {
  (MR_String) "marker_is_impure",
  INT32_C(13)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_14 = {
  (MR_String) "marker_is_semipure",
  INT32_C(14)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_15 = {
  (MR_String) "marker_promised_pure",
  INT32_C(15)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_16 = {
  (MR_String) "marker_promised_semipure",
  INT32_C(16)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_17 = {
  (MR_String) "marker_promised_equivalent_clauses",
  INT32_C(17)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_18 = {
  (MR_String) "marker_terminates",
  INT32_C(18)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_19 = {
  (MR_String) "marker_does_not_terminate",
  INT32_C(19)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_20 = {
  (MR_String) "marker_check_termination",
  INT32_C(20)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_21 = {
  (MR_String) "marker_calls_are_fully_qualified",
  INT32_C(21)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_22 = {
  (MR_String) "marker_mode_check_clauses",
  INT32_C(22)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_23 = {
  (MR_String) "marker_mutable_access_pred",
  INT32_C(23)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_24 = {
  (MR_String) "marker_has_require_scope",
  INT32_C(24)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_25 = {
  (MR_String) "marker_has_incomplete_switch",
  INT32_C(25)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_26 = {
  (MR_String) "marker_has_format_call",
  INT32_C(26)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_27 = {
  (MR_String) "marker_has_rhs_lambda",
  INT32_C(27)
};

static const MR_EnumFunctorDesc hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_28 = {
  (MR_String) "marker_fact_table_semantic_errors",
  INT32_C(28)
};

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_pred_marker_0[29] = {
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_0,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_1,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_2,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_3,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_4,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_5,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_6,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_7,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_8,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_9,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_10,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_11,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_12,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_13,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_14,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_15,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_16,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_17,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_18,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_19,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_20,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_21,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_22,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_23,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_24,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_25,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_26,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_27,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_28
};

static const MR_EnumFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_pred_marker_0[29] = {
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_1,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_21,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_20,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_11,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_10,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_9,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_19,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_28,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_26,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_25,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_24,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_27,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_8,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_3,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_2,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_13,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_14,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_22,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_23,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_12,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_5,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_4,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_17,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_15,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_16,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_0,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_18,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_6,
  &hlds__hlds_pred__hlds__hlds_pred__enum_functor_desc_pred_marker_0_7
};

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

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_marker_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_ENUM,
  ((MR_Box) (hlds__hlds_pred____Unify____pred_marker_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____pred_marker_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "pred_marker",
  {     hlds__hlds_pred__hlds__hlds_pred__enum_name_ordered_pred_marker_0 },
  {     hlds__hlds_pred__hlds__hlds_pred__enum_ordinal_ordered_pred_marker_0 },
  (MR_Integer) 29,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_pred_marker_0,

};

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_markers_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_EQUIV_GROUND,
  ((MR_Box) (hlds__hlds_pred____Unify____pred_markers_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____pred_markers_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "pred_markers",
  {     NULL },
  {     (MR_PseudoTypeInfo) (&hlds__hlds_pred__set_ordlist__ti_set_ordlist_1hlds__hlds_pred__type_ctor_info_pred_marker_0) },
  (MR_Integer) -1,
  UINT16_C(0),
  NULL,

};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_pred_origin_0_0[2] = {
  (MR_PseudoTypeInfo) (&mdbcomp__prim_data__mdbcomp__prim_data__type_ctor_info_special_pred_id_0),
  (MR_PseudoTypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_type_ctor_0)
};

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_pred_origin_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_pred_origin_0_0 = {
  (MR_String) "origin_special_pred",
  INT16_C(2),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(1),
  (MR_Integer) -1,
  INT32_C(0),
  hlds__hlds_pred__hlds__hlds_pred__field_types_pred_origin_0_0,
  NULL,
  hlds__hlds_pred__hlds__hlds_pred__field_locns_pred_origin_0_0,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_pred_origin_0_1[2] = {
  (MR_PseudoTypeInfo) (&mdbcomp__sym_name__mdbcomp__sym_name__type_ctor_info_sym_name_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_rtti__hlds__hlds_rtti__type_ctor_info_instance_method_constraints_0)
};

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

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_pred_origin_0_2[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_pred_origin_0_2 = {
  (MR_String) "origin_class_method",
  INT16_C(2),
  UINT16_C(0),
  MR_SECTAG_REMOTE_FULL_WORD,
  UINT8_C(3),
  (MR_Integer) 0,
  INT32_C(2),
  hlds__hlds_pred__hlds__hlds_pred__field_types_pred_origin_0_2,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_pred_origin_0_3[3] = {
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_transformation_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_origin_0),
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_id_0)
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_3 = {
  (MR_String) "origin_transformed",
  INT16_C(3),
  UINT16_C(0),
  MR_SECTAG_REMOTE_FULL_WORD,
  UINT8_C(3),
  (MR_Integer) 1,
  INT32_C(3),
  hlds__hlds_pred__hlds__hlds_pred__field_types_pred_origin_0_3,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_pred_origin_0_4[1] = {
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_creation_0)
};

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

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_4 = {
  (MR_String) "origin_created",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_REMOTE_FULL_WORD,
  UINT8_C(3),
  (MR_Integer) 2,
  INT32_C(4),
  hlds__hlds_pred__hlds__hlds_pred__field_types_pred_origin_0_4,
  NULL,
  hlds__hlds_pred__hlds__hlds_pred__field_locns_pred_origin_0_4,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_pred_origin_0_5[2] = {
  (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_string_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_origin_0_5 = {
  (MR_String) "origin_assertion",
  INT16_C(2),
  UINT16_C(0),
  MR_SECTAG_REMOTE_FULL_WORD,
  UINT8_C(3),
  (MR_Integer) 3,
  INT32_C(5),
  hlds__hlds_pred__hlds__hlds_pred__field_types_pred_origin_0_5,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_pred_origin_0_6[3] = {
  (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_string_0),
  (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_pred_origin_0_6 = {
  (MR_String) "origin_lambda",
  INT16_C(3),
  UINT16_C(0),
  MR_SECTAG_REMOTE_FULL_WORD,
  UINT8_C(3),
  (MR_Integer) 4,
  INT32_C(6),
  hlds__hlds_pred__hlds__hlds_pred__field_types_pred_origin_0_6,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_pred_origin_0_7[3] = {
  (MR_PseudoTypeInfo) (&mdbcomp__sym_name__mdbcomp__sym_name__type_ctor_info_sym_name_0),
  (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_int_0),
  (MR_PseudoTypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_solver_type_pred_kind_0)
};

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_pred_origin_0_7[3] = {
  {
    (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) 2
  }
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_7 = {
  (MR_String) "origin_solver_type",
  INT16_C(3),
  UINT16_C(0),
  MR_SECTAG_REMOTE_FULL_WORD,
  UINT8_C(3),
  (MR_Integer) 5,
  INT32_C(7),
  hlds__hlds_pred__hlds__hlds_pred__field_types_pred_origin_0_7,
  NULL,
  hlds__hlds_pred__hlds__hlds_pred__field_locns_pred_origin_0_7,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_pred_origin_0_8[2] = {
  (MR_PseudoTypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_pf_sym_name_arity_0),
  (MR_PseudoTypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_tabling_aux_pred_kind_0)
};

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

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_8 = {
  (MR_String) "origin_tabling",
  INT16_C(2),
  UINT16_C(0),
  MR_SECTAG_REMOTE_FULL_WORD,
  UINT8_C(3),
  (MR_Integer) 6,
  INT32_C(8),
  hlds__hlds_pred__hlds__hlds_pred__field_types_pred_origin_0_8,
  NULL,
  hlds__hlds_pred__hlds__hlds_pred__field_locns_pred_origin_0_8,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_pred_origin_0_9[3] = {
  (MR_PseudoTypeInfo) (&mdbcomp__sym_name__mdbcomp__sym_name__type_ctor_info_sym_name_0),
  (MR_PseudoTypeInfo) (&mercury__builtin__builtin__type_ctor_info_string_0),
  (MR_PseudoTypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mutable_pred_kind_0)
};

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_pred_origin_0_9[3] = {
  {
    (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) 4
  }
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_9 = {
  (MR_String) "origin_mutable",
  INT16_C(3),
  UINT16_C(0),
  MR_SECTAG_REMOTE_FULL_WORD,
  UINT8_C(3),
  (MR_Integer) 7,
  INT32_C(9),
  hlds__hlds_pred__hlds__hlds_pred__field_types_pred_origin_0_9,
  NULL,
  hlds__hlds_pred__hlds__hlds_pred__field_locns_pred_origin_0_9,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

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

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_11 = {
  (MR_String) "origin_finalise",
  INT16_C(0),
  UINT16_C(0),
  MR_SECTAG_LOCAL_REST_OF_WORD,
  UINT8_C(0),
  (MR_Integer) 1,
  INT32_C(11),
  NULL,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_pred_origin_0_12[1] = {
  (MR_PseudoTypeInfo) (&mdbcomp__sym_name__mdbcomp__sym_name__type_ctor_info_sym_name_0)
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_12 = {
  (MR_String) "origin_user",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_REMOTE_FULL_WORD,
  UINT8_C(3),
  (MR_Integer) 8,
  INT32_C(12),
  hlds__hlds_pred__hlds__hlds_pred__field_types_pred_origin_0_12,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_pred_origin_0_0[2] = {
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_10,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_11
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_pred_origin_0_1[1] = {
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_0
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_pred_origin_0_2[1] = {
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_1
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_pred_origin_0_3[9] = {
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_2,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_3,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_4,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_5,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_6,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_7,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_8,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_9,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_12
};

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_pred_origin_0[4] = {
  {
    UINT32_C(2),
    MR_SECTAG_LOCAL_REST_OF_WORD,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_pred_origin_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_pred_origin_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_pred_origin_0_2,
    INT8_C(-1),
    UINT8_C(2),
    UINT8_C(1)
  },
  {
    UINT32_C(9),
    MR_SECTAG_REMOTE_FULL_WORD,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_pred_origin_0_3,
    INT8_C(-1),
    UINT8_C(3),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_pred_origin_0[13] = {
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_5,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_2,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_4,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_11,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_10,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_1,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_6,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_9,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_7,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_0,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_8,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_3,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_origin_0_12
};

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

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_origin_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(4),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (hlds__hlds_pred____Unify____pred_origin_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____pred_origin_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "pred_origin",
  {     hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_pred_origin_0 },
  {     hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_pred_origin_0 },
  (MR_Integer) 13,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_pred_origin_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__list__ti_list_1hlds__hlds_pred__type_ctor_info_pred_proc_id_0 = {
  &mercury__list__list__type_ctor_info_list_1,
  {
    (MR_TypeInfo) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_proc_id_0)
  }
};

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_proc_list_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(-1),
  MR_TYPECTOR_REP_EQUIV_GROUND,
  ((MR_Box) (hlds__hlds_pred____Unify____pred_proc_list_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____pred_proc_list_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "pred_proc_list",
  {     NULL },
  {     (MR_PseudoTypeInfo) (&hlds__hlds_pred__list__ti_list_1hlds__hlds_pred__type_ctor_info_pred_proc_id_0) },
  (MR_Integer) -1,
  UINT16_C(0),
  NULL,

};

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_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_pred_sub_info_0_0[15] = {
  (MR_PseudoTypeInfo) (&mercury__term__term__type_ctor_info_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) (&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__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[15] = {
  (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_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_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(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_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_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_pred_transformation_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_pred_transformation_0_0 = {
  (MR_String) "transform_higher_order_specialization",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_NONE,
  UINT8_C(1),
  (MR_Integer) -1,
  INT32_C(0),
  hlds__hlds_pred__hlds__hlds_pred__field_types_pred_transformation_0_0,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

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

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

static const MR_FA_TypeInfo_Struct2 hlds__hlds_pred__pair__ti_pair_2builtin__type_ctor_info_int_0parse_tree__prog_data__type_ctor_info_mer_type_0 = {
  &mercury__pair__pair__type_ctor_info_pair_2,
  {
    (MR_TypeInfo) (&mercury__builtin__builtin__type_ctor_info_int_0),
    (MR_TypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_type_0)
  }
};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__list__ti_list_1pair__ti_pair_2builtin__type_ctor_info_int_0parse_tree__prog_data__type_ctor_info_mer_type_0 = {
  &mercury__list__list__type_ctor_info_list_1,
  {
    (MR_TypeInfo) (&hlds__hlds_pred__pair__ti_pair_2builtin__type_ctor_info_int_0parse_tree__prog_data__type_ctor_info_mer_type_0)
  }
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_pred_transformation_0_2[1] = {
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__list__ti_list_1pair__ti_pair_2builtin__type_ctor_info_int_0parse_tree__prog_data__type_ctor_info_mer_type_0)
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_2 = {
  (MR_String) "transform_type_specialization",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_REMOTE_FULL_WORD,
  UINT8_C(3),
  (MR_Integer) 0,
  INT32_C(2),
  hlds__hlds_pred__hlds__hlds_pred__field_types_pred_transformation_0_2,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(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_pred_transformation_0_3[1] = {
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__list__ti_list_1builtin__type_ctor_info_int_0)
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_3 = {
  (MR_String) "transform_unused_argument_elimination",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_REMOTE_FULL_WORD,
  UINT8_C(3),
  (MR_Integer) 1,
  INT32_C(3),
  hlds__hlds_pred__hlds__hlds_pred__field_types_pred_transformation_0_3,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_pred_transformation_0_4[1] = {
  (MR_PseudoTypeInfo) (&hlds__hlds_pred__list__ti_list_1builtin__type_ctor_info_int_0)
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_4 = {
  (MR_String) "transform_accumulator",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_REMOTE_FULL_WORD,
  UINT8_C(3),
  (MR_Integer) 2,
  INT32_C(4),
  hlds__hlds_pred__hlds__hlds_pred__field_types_pred_transformation_0_4,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_pred_transformation_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_pred_transformation_0_5 = {
  (MR_String) "transform_loop_invariant",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_REMOTE_FULL_WORD,
  UINT8_C(3),
  (MR_Integer) 3,
  INT32_C(5),
  hlds__hlds_pred__hlds__hlds_pred__field_types_pred_transformation_0_5,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

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

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_6 = {
  (MR_String) "transform_tuple",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_REMOTE_FULL_WORD,
  UINT8_C(3),
  (MR_Integer) 4,
  INT32_C(6),
  hlds__hlds_pred__hlds__hlds_pred__field_types_pred_transformation_0_6,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

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

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_7 = {
  (MR_String) "transform_untuple",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_REMOTE_FULL_WORD,
  UINT8_C(3),
  (MR_Integer) 5,
  INT32_C(7),
  hlds__hlds_pred__hlds__hlds_pred__field_types_pred_transformation_0_7,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_8 = {
  (MR_String) "transform_dependent_parallel_conjunction",
  INT16_C(0),
  UINT16_C(0),
  MR_SECTAG_LOCAL_REST_OF_WORD,
  UINT8_C(0),
  (MR_Integer) 0,
  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_pred_transformation_0_9 = {
  (MR_String) "transform_parallel_loop_control",
  INT16_C(0),
  UINT16_C(0),
  MR_SECTAG_LOCAL_REST_OF_WORD,
  UINT8_C(0),
  (MR_Integer) 1,
  INT32_C(9),
  NULL,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

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

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_10 = {
  (MR_String) "transform_return_via_ptr",
  INT16_C(2),
  UINT16_C(0),
  MR_SECTAG_REMOTE_FULL_WORD,
  UINT8_C(3),
  (MR_Integer) 6,
  INT32_C(10),
  hlds__hlds_pred__hlds__hlds_pred__field_types_pred_transformation_0_10,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_11 = {
  (MR_String) "transform_table_generator",
  INT16_C(0),
  UINT16_C(0),
  MR_SECTAG_LOCAL_REST_OF_WORD,
  UINT8_C(0),
  (MR_Integer) 2,
  INT32_C(11),
  NULL,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_12 = {
  (MR_String) "transform_stm_expansion",
  INT16_C(0),
  UINT16_C(0),
  MR_SECTAG_LOCAL_REST_OF_WORD,
  UINT8_C(0),
  (MR_Integer) 3,
  INT32_C(12),
  NULL,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

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

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_13 = {
  (MR_String) "transform_dnf",
  INT16_C(1),
  UINT16_C(0),
  MR_SECTAG_REMOTE_FULL_WORD,
  UINT8_C(3),
  (MR_Integer) 7,
  INT32_C(13),
  hlds__hlds_pred__hlds__hlds_pred__field_types_pred_transformation_0_13,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_14 = {
  (MR_String) "transform_structure_reuse",
  INT16_C(0),
  UINT16_C(0),
  MR_SECTAG_LOCAL_REST_OF_WORD,
  UINT8_C(0),
  (MR_Integer) 4,
  INT32_C(14),
  NULL,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_15 = {
  (MR_String) "transform_source_to_source_debug",
  INT16_C(0),
  UINT16_C(0),
  MR_SECTAG_LOCAL_REST_OF_WORD,
  UINT8_C(0),
  (MR_Integer) 5,
  INT32_C(15),
  NULL,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_16 = {
  (MR_String) "transform_direct_arg_in_out",
  INT16_C(0),
  UINT16_C(0),
  MR_SECTAG_LOCAL_REST_OF_WORD,
  UINT8_C(0),
  (MR_Integer) 6,
  INT32_C(16),
  NULL,
  NULL,
  NULL,
  NULL,
  MR_FUNCTOR_SUBTYPE_NONE,
  UINT8_C(0)
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_pred_transformation_0_0[7] = {
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_8,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_9,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_11,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_12,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_14,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_15,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_16
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_pred_transformation_0_1[1] = {
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_0
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_pred_transformation_0_2[1] = {
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_1
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_pred_transformation_0_3[8] = {
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_2,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_3,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_4,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_5,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_6,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_7,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_10,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_13
};

static const MR_DuPtagLayout hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_pred_transformation_0[4] = {
  {
    UINT32_C(7),
    MR_SECTAG_LOCAL_REST_OF_WORD,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_pred_transformation_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_pred_transformation_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_pred_transformation_0_2,
    INT8_C(-1),
    UINT8_C(2),
    UINT8_C(1)
  },
  {
    UINT32_C(8),
    MR_SECTAG_REMOTE_FULL_WORD,
    hlds__hlds_pred__hlds__hlds_pred__du_stag_ordered_pred_transformation_0_3,
    INT8_C(-1),
    UINT8_C(3),
    UINT8_C(1)
  }
};

static const MR_DuFunctorDescPtr hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_pred_transformation_0[17] = {
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_4,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_8,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_16,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_13,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_0,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_1,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_5,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_9,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_10,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_15,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_12,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_14,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_11,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_6,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_2,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_7,
  &hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_pred_transformation_0_3
};

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

const MR_TypeCtorInfo_Struct hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_transformation_0 = {
  (MR_Integer) 0,
  UINT8_C(18),
  INT8_C(4),
  MR_TYPECTOR_REP_DU,
  ((MR_Box) (hlds__hlds_pred____Unify____pred_transformation_0_0_10001)),
  ((MR_Box) (hlds__hlds_pred____Compare____pred_transformation_0_0_10001)),
  (MR_String) "hlds.hlds_pred",
  (MR_String) "pred_transformation",
  {     hlds__hlds_pred__hlds__hlds_pred__du_name_ordered_pred_transformation_0 },
  {     hlds__hlds_pred__hlds__hlds_pred__du_ptag_ordered_pred_transformation_0 },
  (MR_Integer) 17,
  UINT16_C(12),
  hlds__hlds_pred__hlds__hlds_pred__functor_number_map_pred_transformation_0,

};

static const MR_FA_TypeInfo_Struct1 hlds__hlds_pred__maybe__ti_maybe_1analysis__type_ctor_info_analysis_status_0 = {
  &mercury__maybe__maybe__type_ctor_info_maybe_1,
  {
    (MR_TypeInfo) (&analysis__analysis__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__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_FA_TypeInfo_Struct1 hlds__hlds_pred__list__ti_list_1check_hlds__mode_errors__type_ctor_info_mode_error_info_0 = {
  &mercury__list__list__type_ctor_info_list_1,
  {
    (MR_TypeInfo) (&check_hlds__mode_errors__check_hlds__mode_errors__type_ctor_info_mode_error_info_0)
  }
};

static const MR_PseudoTypeInfo hlds__hlds_pred__hlds__hlds_pred__field_types_proc_info_0_0[14] = {
  (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) (&hlds__hlds_pred__varset__ti_varset_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_0parse_tree__prog_data__type_ctor_info_mer_type_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__list__ti_list_1check_hlds__mode_errors__type_ctor_info_mode_error_info_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[14] = {
  (MR_String) "proc_head_vars",
  (MR_String) "proc_body",
  (MR_String) "proc_prog_varset",
  (MR_String) "proc_var_types",
  (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_mode_errors",
  (MR_String) "proc_sub_info"
};

static const MR_DuArgLocn hlds__hlds_pred__hlds__hlds_pred__field_locns_proc_info_0_0[14] = {
  {
    (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) 0
  },
  {
    (MR_Integer) 10,
    (MR_Integer) 0,
    (MR_Integer) 3
  },
  {
    (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
  }
};

static const MR_DuFunctorDesc hlds__hlds_pred__hlds__hlds_pred__du_functor_desc_proc_info_0_0 = {
  (MR_String) "proc_info",
  INT16_C(14),
  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__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__type_ctor_info_context_0 = {
  &mercury__list__list__type_ctor_info_list_1,
  {
    (MR_TypeInfo) (&mercury__term__term__type_ctor_info_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_util__type_ctor_info_error_spec_0 = {
  &mercury__list__list__type_ctor_info_list_1,
  {
    (MR_TypeInfo) (&parse_tree__error_util__parse_tree__error_util__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__term__type_ctor_info_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__type_ctor_info_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_util__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__term__type_ctor_info_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__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__analysis__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__analysis__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_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,

};

static MR_bool MR_CALL 
hlds__hlds_pred__IntroducedFrom__pred__proc_info_uninstantiated_head_vars__3912__1_4_p_0(
  MR_Word ModuleInfo_4,
  MR_Word VarTypes_9,
  MR_Word LambdaHeadVar__1_18,
  MR_Word * LambdaHeadVar__2_19)
{
  {
    MR_bool succeeded;
    MR_Word Mode_14;
    MR_Word Type_15;
    MR_Word Inst1_16;
    MR_Word Inst2_17;

    *LambdaHeadVar__2_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), LambdaHeadVar__1_18, (MR_Integer) 0))));
    Mode_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), LambdaHeadVar__1_18, (MR_Integer) 1))));
    hlds__vartypes__lookup_var_type_3_p_0(VarTypes_9, *LambdaHeadVar__2_19, &Type_15);
    check_hlds__mode_util__mode_get_insts_4_p_0(ModuleInfo_4, Mode_14, &Inst1_16, &Inst2_17);
    succeeded = check_hlds__inst_match__inst_matches_binding_4_p_0(ModuleInfo_4, Type_15, Inst1_16, Inst2_17);
    return succeeded;
  }
}

static MR_bool MR_CALL 
hlds__hlds_pred__IntroducedFrom__pred__proc_info_instantiated_head_vars__3898__1_4_p_0(
  MR_Word ModuleInfo_4,
  MR_Word VarTypes_9,
  MR_Word LambdaHeadVar__1_18,
  MR_Word * LambdaHeadVar__2_19)
{
  {
    MR_bool succeeded;
    MR_Word Mode_14;
    MR_Word Type_15;
    MR_Word Inst1_16;
    MR_Word Inst2_17;

    *LambdaHeadVar__2_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), LambdaHeadVar__1_18, (MR_Integer) 0))));
    Mode_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), LambdaHeadVar__1_18, (MR_Integer) 1))));
    hlds__vartypes__lookup_var_type_3_p_0(VarTypes_9, *LambdaHeadVar__2_19, &Type_15);
    check_hlds__mode_util__mode_get_insts_4_p_0(ModuleInfo_4, Mode_14, &Inst1_16, &Inst2_17);
    succeeded = check_hlds__inst_match__inst_matches_binding_4_p_0(ModuleInfo_4, Type_15, Inst1_16, Inst2_17);
    succeeded = !(succeeded);
    return succeeded;
  }
}

static MR_bool MR_CALL 
hlds__hlds_pred__IntroducedFrom__pred__pred_info_valid_procids__1675__1_2_p_0(
  MR_Word ProcTable_6,
  MR_Integer LambdaHeadVar__1_10)
{
  {
    MR_bool succeeded;
    MR_Word ProcInfo_9;
    MR_Word ModeErrors_16;
    MR_Box conv0_ProcInfo_9;

    conv0_ProcInfo_9 = mercury__map__f_84_121_112_101_83_112_101_99_79_102_95_95_102_117_110_99_95_95_108_111_111_107_117_112_95_95_91_75_32_61_32_105_110_116_93_95_48_95_49_2_f_0((MR_Word) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_proc_info_0), ProcTable_6, LambdaHeadVar__1_10);
    ProcInfo_9 = ((MR_Word) (conv0_ProcInfo_9));
    ModeErrors_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcInfo_9, (MR_Integer) 12))));
    succeeded = (ModeErrors_16 == (MR_Word) ((MR_Unsigned) 0U));
    return succeeded;
  }
}

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(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 0))));
      MR_Word ArgX2_7 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));
      MR_Word ArgY2_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 1))));
      MR_Word ArgX3_10 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 2))));
      MR_Word ArgY3_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 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[24]), 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(MR_mktag(0), HeadVar__1_1, (MR_Integer) 0))));
      MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_Word ArgX2_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 1))));
      MR_Word ArgY2_6 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));
      MR_Word ArgX3_7 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 2))));
      MR_Word ArgY3_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 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[24]);
          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[14]), 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[14]), ((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__2_1,
  MR_Word HeadVar__2_2)
{
  {
    MR_bool succeeded = (HeadVar__2_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__2_1,
  MR_Word HeadVar__2_2)
{
  {
    MR_bool succeeded = (HeadVar__2_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(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_String ArgY1_5 = ((MR_String) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 0))));
      MR_Word ArgX2_7 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));
      MR_Word ArgY2_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 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_116 = (MR_Integer) (HeadVar__2_2);
    MR_Integer CastY_117 = (MR_Integer) (HeadVar__3_3);

    succeeded = (CastX_116 == CastY_117);
    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:
                      *HeadVar__1_1 = (MR_Integer) 1;
                      break;
                    case (MR_Integer) 2:
                      *HeadVar__1_1 = (MR_Integer) 1;
                      break;
                    case (MR_Integer) 3:
                      *HeadVar__1_1 = (MR_Integer) 1;
                      break;
                    case (MR_Integer) 4:
                      *HeadVar__1_1 = (MR_Integer) 1;
                      break;
                    case (MR_Integer) 5:
                      *HeadVar__1_1 = (MR_Integer) 1;
                      break;
                    case (MR_Integer) 6:
                      *HeadVar__1_1 = (MR_Integer) 1;
                      break;
                    case (MR_Integer) 7:
                      *HeadVar__1_1 = (MR_Integer) 1;
                      break;
                  }
                  break;
                case (MR_Integer) 1:
                  *HeadVar__1_1 = (MR_Integer) 1;
                  break;
                case (MR_Integer) 2:
                  *HeadVar__1_1 = (MR_Integer) 1;
                  break;
                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:
                      *HeadVar__1_1 = (MR_Integer) 1;
                      break;
                    case (MR_Integer) 3:
                      *HeadVar__1_1 = (MR_Integer) 1;
                      break;
                    case (MR_Integer) 4:
                      *HeadVar__1_1 = (MR_Integer) 1;
                      break;
                    case (MR_Integer) 5:
                      *HeadVar__1_1 = (MR_Integer) 1;
                      break;
                    case (MR_Integer) 6:
                      *HeadVar__1_1 = (MR_Integer) 1;
                      break;
                    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:
                  *HeadVar__1_1 = (MR_Integer) 1;
                  break;
                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:
                      *HeadVar__1_1 = (MR_Integer) 2;
                      break;
                    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:
                      *HeadVar__1_1 = (MR_Integer) 1;
                      break;
                    case (MR_Integer) 4:
                      *HeadVar__1_1 = (MR_Integer) 1;
                      break;
                    case (MR_Integer) 5:
                      *HeadVar__1_1 = (MR_Integer) 1;
                      break;
                    case (MR_Integer) 6:
                      *HeadVar__1_1 = (MR_Integer) 1;
                      break;
                    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:
                  *HeadVar__1_1 = (MR_Integer) 1;
                  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:
                      *HeadVar__1_1 = (MR_Integer) 2;
                      break;
                    case (MR_Integer) 1:
                      *HeadVar__1_1 = (MR_Integer) 2;
                      break;
                    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:
                      *HeadVar__1_1 = (MR_Integer) 1;
                      break;
                    case (MR_Integer) 5:
                      *HeadVar__1_1 = (MR_Integer) 1;
                      break;
                    case (MR_Integer) 6:
                      *HeadVar__1_1 = (MR_Integer) 1;
                      break;
                    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:
                  *HeadVar__1_1 = (MR_Integer) 1;
                  break;
                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:
                      *HeadVar__1_1 = (MR_Integer) 2;
                      break;
                    case (MR_Integer) 1:
                      *HeadVar__1_1 = (MR_Integer) 2;
                      break;
                    case (MR_Integer) 2:
                      *HeadVar__1_1 = (MR_Integer) 2;
                      break;
                    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:
                      *HeadVar__1_1 = (MR_Integer) 1;
                      break;
                    case (MR_Integer) 6:
                      *HeadVar__1_1 = (MR_Integer) 1;
                      break;
                    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:
                  *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:
                      *HeadVar__1_1 = (MR_Integer) 2;
                      break;
                    case (MR_Integer) 1:
                      *HeadVar__1_1 = (MR_Integer) 2;
                      break;
                    case (MR_Integer) 2:
                      *HeadVar__1_1 = (MR_Integer) 2;
                      break;
                    case (MR_Integer) 3:
                      *HeadVar__1_1 = (MR_Integer) 2;
                      break;
                    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:
                      *HeadVar__1_1 = (MR_Integer) 1;
                      break;
                    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:
                  *HeadVar__1_1 = (MR_Integer) 2;
                  break;
                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:
                      *HeadVar__1_1 = (MR_Integer) 2;
                      break;
                    case (MR_Integer) 1:
                      *HeadVar__1_1 = (MR_Integer) 2;
                      break;
                    case (MR_Integer) 2:
                      *HeadVar__1_1 = (MR_Integer) 2;
                      break;
                    case (MR_Integer) 3:
                      *HeadVar__1_1 = (MR_Integer) 2;
                      break;
                    case (MR_Integer) 4:
                      *HeadVar__1_1 = (MR_Integer) 2;
                      break;
                    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:
                  *HeadVar__1_1 = (MR_Integer) 2;
                  break;
                case (MR_Integer) 2:
                  *HeadVar__1_1 = (MR_Integer) 2;
                  break;
                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:
                      *HeadVar__1_1 = (MR_Integer) 2;
                      break;
                    case (MR_Integer) 1:
                      *HeadVar__1_1 = (MR_Integer) 2;
                      break;
                    case (MR_Integer) 2:
                      *HeadVar__1_1 = (MR_Integer) 2;
                      break;
                    case (MR_Integer) 3:
                      *HeadVar__1_1 = (MR_Integer) 2;
                      break;
                    case (MR_Integer) 4:
                      *HeadVar__1_1 = (MR_Integer) 2;
                      break;
                    case (MR_Integer) 5:
                      *HeadVar__1_1 = (MR_Integer) 2;
                      break;
                    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:
                  *HeadVar__1_1 = (MR_Integer) 2;
                  break;
                case (MR_Integer) 2:
                  *HeadVar__1_1 = (MR_Integer) 2;
                  break;
                case (MR_Integer) 3:
                  *HeadVar__1_1 = (MR_Integer) 2;
                  break;
              }
              break;
          }
          break;
        case (MR_Integer) 1:
          {
            MR_Word Var_127 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(1), HeadVar__2_2, (MR_Integer) 0))) & (MR_Integer) 15);

            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) 1;
                    break;
                  case (MR_Integer) 2:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                  case (MR_Integer) 3:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                  case (MR_Integer) 4:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                  case (MR_Integer) 5:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                  case (MR_Integer) 6:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                  case (MR_Integer) 7:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                }
                break;
              case (MR_Integer) 1:
                {
                  MR_Word ArgY1_11 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(1), HeadVar__3_3, (MR_Integer) 0))) & (MR_Integer) 15);
                  MR_Integer Var_132 = (MR_Integer) (Var_127);
                  MR_Integer Var_133 = (MR_Integer) (ArgY1_11);

                  succeeded = (Var_132 < Var_133);
                  if (succeeded)
                    *HeadVar__1_1 = (MR_Integer) 1;
                  else
                  {
                    succeeded = (Var_132 > Var_133);
                    if (succeeded)
                      *HeadVar__1_1 = (MR_Integer) 2;
                    else
                      *HeadVar__1_1 = (MR_Integer) 0;
                  }
                }
                break;
              case (MR_Integer) 2:
                *HeadVar__1_1 = (MR_Integer) 1;
                break;
              case (MR_Integer) 3:
                *HeadVar__1_1 = (MR_Integer) 1;
                break;
            }
          }
          break;
        case (MR_Integer) 2:
          {
            MR_Integer Var_123 = ((MR_Integer) ((MR_hl_field(MR_mktag(2), HeadVar__2_2, (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) 2;
                    break;
                  case (MR_Integer) 1:
                    *HeadVar__1_1 = (MR_Integer) 2;
                    break;
                  case (MR_Integer) 2:
                    *HeadVar__1_1 = (MR_Integer) 2;
                    break;
                  case (MR_Integer) 3:
                    *HeadVar__1_1 = (MR_Integer) 2;
                    break;
                  case (MR_Integer) 4:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                  case (MR_Integer) 5:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                  case (MR_Integer) 6:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                  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 ArgY1_47 = ((MR_Integer) ((MR_hl_field(MR_mktag(2), HeadVar__3_3, (MR_Integer) 0))));

                  succeeded = (Var_123 < ArgY1_47);
                  if (succeeded)
                    *HeadVar__1_1 = (MR_Integer) 1;
                  else
                  {
                    succeeded = (Var_123 > ArgY1_47);
                    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:
          {
            MR_Word Var_124 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 1))) & (MR_Integer) 1);
            MR_Word Var_125 = ((((MR_Unsigned) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 1))) >> 1)) & (MR_Integer) 1);
            MR_Word Var_126 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (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) 2;
                    break;
                  case (MR_Integer) 1:
                    *HeadVar__1_1 = (MR_Integer) 2;
                    break;
                  case (MR_Integer) 2:
                    *HeadVar__1_1 = (MR_Integer) 2;
                    break;
                  case (MR_Integer) 3:
                    *HeadVar__1_1 = (MR_Integer) 2;
                    break;
                  case (MR_Integer) 4:
                    *HeadVar__1_1 = (MR_Integer) 2;
                    break;
                  case (MR_Integer) 5:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                  case (MR_Integer) 6:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                  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:
                *HeadVar__1_1 = (MR_Integer) 2;
                break;
              case (MR_Integer) 3:
                {
                  MR_Word ArgY1_85 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 0))));
                  MR_Word ArgY2_88 = ((((MR_Unsigned) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 1))) >> 1)) & (MR_Integer) 1);
                  MR_Word ArgY3_91 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 1))) & (MR_Integer) 1);
                  MR_Word SubResult1_86;

                  parse_tree__prog_data____Compare____mer_type_0_0(&SubResult1_86, Var_126, ArgY1_85);
                  succeeded = (SubResult1_86 != (MR_Integer) 0);
                  if (succeeded)
                    *HeadVar__1_1 = SubResult1_86;
                  else
                  {
                    MR_Word SubResult2_89;
                    MR_Integer Var_128 = (MR_Integer) (Var_125);
                    MR_Integer Var_129 = (MR_Integer) (ArgY2_88);

                    succeeded = (Var_128 < Var_129);
                    if (succeeded)
                    {
                      SubResult2_89 = (MR_Integer) 1;
                      succeeded = MR_TRUE;
                    }
                    else
                    {
                      succeeded = (Var_128 > Var_129);
                      if (succeeded)
                      {
                        SubResult2_89 = (MR_Integer) 2;
                        succeeded = MR_TRUE;
                      }
                      else
                      {
                        succeeded = MR_TRUE;
                        succeeded = !(succeeded);
                        if (succeeded)
                        {
                          SubResult2_89 = (MR_Integer) 0;
                          succeeded = MR_TRUE;
                        }
                      }
                    }
                    if (succeeded)
                      *HeadVar__1_1 = SubResult2_89;
                    else
                    {
                      MR_Integer Var_130 = (MR_Integer) (Var_124);
                      MR_Integer Var_131 = (MR_Integer) (ArgY3_91);

                      succeeded = (Var_130 < Var_131);
                      if (succeeded)
                        *HeadVar__1_1 = (MR_Integer) 1;
                      else
                      {
                        succeeded = (Var_130 > Var_131);
                        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(MR_mktag(0), HeadVar__1_1, (MR_Integer) 0))));
      MR_String ArgY1_4 = ((MR_String) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_Word ArgX2_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 1))));
      MR_Word ArgY2_6 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 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_29 = (MR_Integer) (HeadVar__1_1);
    MR_Integer CastY_30 = (MR_Integer) (HeadVar__2_2);

    succeeded = (CastX_29 == CastY_30);
    if (succeeded)
      succeeded = MR_TRUE;
    else
      switch (MR_tag((MR_Word) HeadVar__1_1)) {
        default: /*NOTREACHED*/ MR_assert(0);
        case (MR_Integer) 0:
          switch (MR_unmkbody(HeadVar__1_1)) {
            default: /*NOTREACHED*/ MR_assert(0);
            case (MR_Integer) 0:
              {
                MR_Integer CastX_3 = (MR_Integer) (HeadVar__1_1);
                MR_Integer CastY_4 = (MR_Integer) (HeadVar__2_2);

                succeeded = (CastY_4 == CastX_3);
              }
              break;
            case (MR_Integer) 1:
              {
                MR_Integer CastX_7 = (MR_Integer) (HeadVar__1_1);
                MR_Integer CastY_8 = (MR_Integer) (HeadVar__2_2);

                succeeded = (CastY_8 == CastX_7);
              }
              break;
            case (MR_Integer) 2:
              {
                MR_Integer CastX_9 = (MR_Integer) (HeadVar__1_1);
                MR_Integer CastY_10 = (MR_Integer) (HeadVar__2_2);

                succeeded = (CastY_10 == CastX_9);
              }
              break;
            case (MR_Integer) 3:
              {
                MR_Integer CastX_11 = (MR_Integer) (HeadVar__1_1);
                MR_Integer CastY_12 = (MR_Integer) (HeadVar__2_2);

                succeeded = (CastY_12 == CastX_11);
              }
              break;
            case (MR_Integer) 4:
              {
                MR_Integer CastX_15 = (MR_Integer) (HeadVar__1_1);
                MR_Integer CastY_16 = (MR_Integer) (HeadVar__2_2);

                succeeded = (CastY_16 == CastX_15);
              }
              break;
            case (MR_Integer) 5:
              {
                MR_Integer CastX_23 = (MR_Integer) (HeadVar__1_1);
                MR_Integer CastY_24 = (MR_Integer) (HeadVar__2_2);

                succeeded = (CastY_24 == CastX_23);
              }
              break;
            case (MR_Integer) 6:
              {
                MR_Integer CastX_25 = (MR_Integer) (HeadVar__1_1);
                MR_Integer CastY_26 = (MR_Integer) (HeadVar__2_2);

                succeeded = (CastY_26 == CastX_25);
              }
              break;
            case (MR_Integer) 7:
              {
                MR_Integer CastX_27 = (MR_Integer) (HeadVar__1_1);
                MR_Integer CastY_28 = (MR_Integer) (HeadVar__2_2);

                succeeded = (CastY_28 == CastX_27);
              }
              break;
          }
          break;
        case (MR_Integer) 1:
          {
            MR_Word ArgX1_5 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(1), HeadVar__1_1, (MR_Integer) 0))) & (MR_Integer) 15);
            MR_Word ArgY1_6;

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

            succeeded = ((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 2);
            if (succeeded)
            {
              ArgY1_14 = ((MR_Integer) ((MR_hl_field(MR_mktag(2), HeadVar__2_2, (MR_Integer) 0))));
              succeeded = (ArgX1_13 == ArgY1_14);
            }
          }
          break;
        case (MR_Integer) 3:
          {
            MR_Word ArgX1_17 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__1_1, (MR_Integer) 0))));
            MR_Word ArgY1_18;
            MR_Word ArgX2_19 = ((((MR_Unsigned) ((MR_hl_field(MR_mktag(3), HeadVar__1_1, (MR_Integer) 1))) >> 1)) & (MR_Integer) 1);
            MR_Word ArgY2_20;
            MR_Word ArgX3_21 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(3), HeadVar__1_1, (MR_Integer) 1))) & (MR_Integer) 1);
            MR_Word ArgY3_22;

            succeeded = ((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3);
            if (succeeded)
            {
              ArgY1_18 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 0))));
              ArgY2_20 = ((((MR_Unsigned) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 1))) >> 1)) & (MR_Integer) 1);
              ArgY3_22 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 1))) & (MR_Integer) 1);
              succeeded = parse_tree__prog_data____Unify____mer_type_0_0(ArgX1_17, ArgY1_18);
              if (succeeded)
              {
                succeeded = (ArgX2_19 == ArgY2_20);
                if (succeeded)
                  succeeded = (ArgX3_21 == ArgY3_22);
              }
            }
          }
          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_17 = (MR_Integer) (HeadVar__2_2);
    MR_Integer CastY_18 = (MR_Integer) (HeadVar__3_3);

    succeeded = (CastX_17 == CastY_18);
    if (succeeded)
      *HeadVar__1_1 = (MR_Integer) 0;
    else
    if (((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 0))
    {
      MR_Integer Var_22 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));

      if (((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 0))
      {
        MR_Integer ArgY1_5 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 0))));

        succeeded = (Var_22 < ArgY1_5);
        if (succeeded)
          *HeadVar__1_1 = (MR_Integer) 1;
        else
        {
          succeeded = (Var_22 > 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
    {
      MR_Integer Var_23 = ((MR_Integer) ((MR_hl_field(MR_mktag(1), HeadVar__2_2, (MR_Integer) 1))));
      MR_Integer Var_24 = ((MR_Integer) ((MR_hl_field(MR_mktag(1), HeadVar__2_2, (MR_Integer) 0))));

      if (((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 0))
        *HeadVar__1_1 = (MR_Integer) 2;
      else
      {
        MR_Integer ArgY1_13 = ((MR_Integer) ((MR_hl_field(MR_mktag(1), HeadVar__3_3, (MR_Integer) 0))));
        MR_Integer ArgY2_16 = ((MR_Integer) ((MR_hl_field(MR_mktag(1), HeadVar__3_3, (MR_Integer) 1))));
        MR_Word SubResult1_14;

        succeeded = (Var_24 < ArgY1_13);
        if (succeeded)
        {
          SubResult1_14 = (MR_Integer) 1;
          succeeded = MR_TRUE;
        }
        else
        {
          succeeded = (Var_24 > ArgY1_13);
          if (succeeded)
          {
            SubResult1_14 = (MR_Integer) 2;
            succeeded = MR_TRUE;
          }
          else
          {
            succeeded = MR_TRUE;
            succeeded = !(succeeded);
            if (succeeded)
            {
              SubResult1_14 = (MR_Integer) 0;
              succeeded = MR_TRUE;
            }
          }
        }
        if (succeeded)
          *HeadVar__1_1 = SubResult1_14;
        else
        {
          succeeded = (Var_23 < ArgY2_16);
          if (succeeded)
            *HeadVar__1_1 = (MR_Integer) 1;
          else
          {
            succeeded = (Var_23 > ArgY2_16);
            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(MR_mktag(0), HeadVar__1_1, (MR_Integer) 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(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
        succeeded = (ArgX1_3 == ArgY1_4);
      }
    }
    else
    {
      MR_Integer ArgX1_5 = ((MR_Integer) ((MR_hl_field(MR_mktag(1), HeadVar__1_1, (MR_Integer) 0))));
      MR_Integer ArgY1_6;
      MR_Integer ArgX2_7 = ((MR_Integer) ((MR_hl_field(MR_mktag(1), HeadVar__1_1, (MR_Integer) 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(MR_mktag(1), HeadVar__2_2, (MR_Integer) 0))));
        ArgY2_8 = ((MR_Integer) ((MR_hl_field(MR_mktag(1), HeadVar__2_2, (MR_Integer) 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__2_1,
  MR_Word HeadVar__2_2)
{
  {
    MR_bool succeeded = (HeadVar__2_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(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_Integer ArgY1_5 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 0))));
      MR_String ArgX2_7 = ((MR_String) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));
      MR_String ArgY2_8 = ((MR_String) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 1))));
      MR_Integer ArgX3_10 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 2))));
      MR_Integer ArgY3_11 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 2))));
      MR_Word ArgX4_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 3))));
      MR_Word ArgY4_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 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;
        }
        else
        {
          succeeded = MR_TRUE;
          succeeded = !(succeeded);
          if (succeeded)
          {
            SubResult1_6 = (MR_Integer) 0;
            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;
            }
            else
            {
              succeeded = MR_TRUE;
              succeeded = !(succeeded);
              if (succeeded)
              {
                SubResult3_12 = (MR_Integer) 0;
                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(MR_mktag(0), HeadVar__1_1, (MR_Integer) 0))));
      MR_Integer ArgY1_4 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_String ArgX2_5 = ((MR_String) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 1))));
      MR_String ArgY2_6 = ((MR_String) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));
      MR_Integer ArgX3_7 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 2))));
      MR_Integer ArgY3_8 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 2))));
      MR_Word ArgX4_9 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 3))));
      MR_Word ArgY4_10 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 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(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 0))));
      MR_Word ArgX2_7 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))) & (MR_Integer) 3);
      MR_Word ArgY2_8 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 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(MR_mktag(0), HeadVar__1_1, (MR_Integer) 0))));
      MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_Word ArgX2_5 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 1))) & (MR_Integer) 3);
      MR_Word ArgY2_6 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 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(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 0))));
      MR_Word ArgX2_7 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))) & (MR_Integer) 3);
      MR_Word ArgY2_8 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 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(MR_mktag(0), HeadVar__1_1, (MR_Integer) 0))));
      MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_Word ArgX2_5 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 1))) & (MR_Integer) 3);
      MR_Word ArgY2_6 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 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(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_String ArgY1_5 = ((MR_String) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 0))));
      MR_String ArgX2_7 = ((MR_String) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));
      MR_String ArgY2_8 = ((MR_String) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 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(MR_mktag(0), HeadVar__1_1, (MR_Integer) 0))));
      MR_String ArgY1_4 = ((MR_String) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_String ArgX2_5 = ((MR_String) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 1))));
      MR_String ArgY2_6 = ((MR_String) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 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[38]), 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[38]), ((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(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))) & (MR_Integer) 3);
      MR_Word ArgY1_5 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 0))) & (MR_Integer) 3);
      MR_Word ArgX2_7 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));
      MR_Word ArgY2_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (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;
        }
        else
        {
          succeeded = MR_TRUE;
          succeeded = !(succeeded);
          if (succeeded)
          {
            SubResult1_6 = (MR_Integer) 0;
            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[25]), 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(MR_mktag(0), HeadVar__1_1, (MR_Integer) 0))) & (MR_Integer) 3);
      MR_Word ArgY1_4 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))) & (MR_Integer) 3);
      MR_Word ArgX2_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 1))));
      MR_Word ArgY2_6 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));

      succeeded = (ArgX1_3 == ArgY1_4);
      if (succeeded)
      {
        TypeInfo_9_9 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[25]);
        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(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 0))));
      MR_Word ArgX2_7 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));
      MR_Word ArgY2_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 1))));
      MR_Word ArgX3_10 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 2))));
      MR_Word ArgY3_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 2))));
      MR_Integer ArgX4_13 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 3))));
      MR_Integer ArgY4_14 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 3))));
      MR_Integer ArgX5_16 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 4))));
      MR_Integer ArgY5_17 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 4))));
      MR_Word ArgX6_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 5))));
      MR_Word ArgY6_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 5))));
      MR_Word ArgX7_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 6))));
      MR_Word ArgY7_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 6))));
      MR_Word ArgX8_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 7))));
      MR_Word ArgY8_26 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 7))));
      MR_Word ArgX9_28 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 8))));
      MR_Word ArgY9_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 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____Compare____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;
              }
              else
              {
                succeeded = MR_TRUE;
                succeeded = !(succeeded);
                if (succeeded)
                {
                  SubResult4_15 = (MR_Integer) 0;
                  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;
                }
                else
                {
                  succeeded = MR_TRUE;
                  succeeded = !(succeeded);
                  if (succeeded)
                  {
                    SubResult5_18 = (MR_Integer) 0;
                    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[55]), &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[56]), &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(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 0))));
      MR_Word ArgX2_7 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));
      MR_Word ArgY2_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 1))));
      MR_Word SubResult1_6;

      mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[61]), &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[13]), 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(MR_mktag(0), HeadVar__1_1, (MR_Integer) 0))));
      MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_Word ArgX2_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 1))));
      MR_Word ArgY2_6 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));
      MR_Word ArgX3_7 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 2))));
      MR_Word ArgY3_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 2))));
      MR_Integer ArgX4_9 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 3))));
      MR_Integer ArgY4_10 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 3))));
      MR_Integer ArgX5_11 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 4))));
      MR_Integer ArgY5_12 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 4))));
      MR_Word ArgX6_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 5))));
      MR_Word ArgY6_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 5))));
      MR_Word ArgX7_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 6))));
      MR_Word ArgY7_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 6))));
      MR_Word ArgX8_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 7))));
      MR_Word ArgY8_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 7))));
      MR_Word ArgX9_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 8))));
      MR_Word ArgY9_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 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____Unify____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[55]);
                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[56]);
                  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(MR_mktag(0), HeadVar__1_1, (MR_Integer) 0))));
      MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_Word ArgX2_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 1))));
      MR_Word ArgY2_6 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));

      succeeded = mercury__builtin__unify_2_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[61]), ((MR_Box) (ArgX1_3)), ((MR_Box) (ArgY1_4)));
      if (succeeded)
      {
        TypeInfo_10_10 = (MR_Word) (&hlds__hlds_pred_scalar_common_1[13]);
        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[54]), 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[54]), ((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[8]), 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[8]), ((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(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))) & (MR_Integer) 3);
      MR_Word ArgY1_5 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 0))) & (MR_Integer) 3);
      MR_Word ArgX2_7 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));
      MR_Word ArgY2_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (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;
        }
        else
        {
          succeeded = MR_TRUE;
          succeeded = !(succeeded);
          if (succeeded)
          {
            SubResult1_6 = (MR_Integer) 0;
            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[25]), 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(MR_mktag(0), HeadVar__1_1, (MR_Integer) 0))) & (MR_Integer) 3);
      MR_Word ArgY1_4 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))) & (MR_Integer) 3);
      MR_Word ArgX2_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 1))));
      MR_Word ArgY2_6 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));

      succeeded = (ArgX1_3 == ArgY1_4);
      if (succeeded)
      {
        TypeInfo_9_9 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[25]);
        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_45 = (MR_Integer) (HeadVar__2_2);
    MR_Integer CastY_46 = (MR_Integer) (HeadVar__3_3);

    succeeded = (CastX_45 == CastY_46);
    if (succeeded)
      *HeadVar__1_1 = (MR_Integer) 0;
    else
    {
      MR_Word ArgX1_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 0))));
      MR_Word ArgX2_7 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));
      MR_Word ArgY2_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 1))));
      MR_Word ArgX3_10 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 2))));
      MR_Word ArgY3_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 2))));
      MR_Word ArgX4_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 3))));
      MR_Word ArgY4_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 3))));
      MR_Word ArgX5_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 4))));
      MR_Word ArgY5_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 4))));
      MR_Word ArgX6_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 5))));
      MR_Word ArgY6_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 5))));
      MR_Word ArgX7_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 6))));
      MR_Word ArgY7_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 6))));
      MR_Word ArgX8_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 7))));
      MR_Word ArgY8_26 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 7))));
      MR_Word ArgX9_28 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 8))));
      MR_Word ArgY9_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 8))));
      MR_Word ArgX10_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 9))));
      MR_Word ArgY10_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 9))));
      MR_Word ArgX11_34 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 10))) & (MR_Integer) 7);
      MR_Word ArgY11_35 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 10))) & (MR_Integer) 7);
      MR_Word ArgX12_37 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 11))));
      MR_Word ArgY12_38 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 11))));
      MR_Word ArgX13_40 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 12))));
      MR_Word ArgY13_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 12))));
      MR_Word ArgX14_43 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 13))));
      MR_Word ArgY14_44 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 13))));
      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;

          mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[7]), &SubResult3_12, ((MR_Box) (ArgX3_10)), ((MR_Box) (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__vartypes__hlds__vartypes__type_ctor_info_vartypes_0), &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;

              hlds__hlds_rtti____Compare____rtti_varmaps_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;

                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[28]), &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[27]), &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[30]), &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[31]), &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_61 = (MR_Integer) (ArgX11_34);
                          MR_Integer Var_62 = (MR_Integer) (ArgY11_35);

                          succeeded = (Var_61 < Var_62);
                          if (succeeded)
                          {
                            SubResult11_36 = (MR_Integer) 1;
                            succeeded = MR_TRUE;
                          }
                          else
                          {
                            succeeded = (Var_61 > Var_62);
                            if (succeeded)
                            {
                              SubResult11_36 = (MR_Integer) 2;
                              succeeded = MR_TRUE;
                            }
                            else
                            {
                              succeeded = MR_TRUE;
                              succeeded = !(succeeded);
                              if (succeeded)
                              {
                                SubResult11_36 = (MR_Integer) 0;
                                succeeded = MR_TRUE;
                              }
                            }
                          }
                          if (succeeded)
                            *HeadVar__1_1 = SubResult11_36;
                          else
                          {
                            MR_Word SubResult12_39;

                            parse_tree__prog_data_pragma____Compare____eval_method_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;

                              mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[32]), &SubResult13_42, ((MR_Box) (ArgX13_40)), ((MR_Box) (ArgY13_41)));
                              succeeded = (SubResult13_42 != (MR_Integer) 0);
                              if (succeeded)
                                *HeadVar__1_1 = SubResult13_42;
                              else
                                hlds__hlds_pred____Compare____proc_sub_info_0_0(HeadVar__1_1, ArgX14_43, ArgY14_44);
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

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(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 0))));
      MR_Word ArgX2_7 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));
      MR_Word ArgY2_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 1))));
      MR_Word ArgX3_10 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 2))) & (MR_Integer) 1);
      MR_Word ArgY3_11 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 2))) & (MR_Integer) 1);
      MR_Word ArgX4_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 3))));
      MR_Word ArgY4_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 3))));
      MR_Word ArgX5_16 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 4))) & (MR_Integer) 3);
      MR_Word ArgY5_17 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 4))) & (MR_Integer) 3);
      MR_Word ArgX6_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 5))));
      MR_Word ArgY6_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 5))));
      MR_Word ArgX7_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 6))));
      MR_Word ArgY7_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 6))));
      MR_Word ArgX8_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 7))));
      MR_Word ArgY8_26 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 7))));
      MR_Word ArgX9_28 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 8))));
      MR_Word ArgY9_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 8))));
      MR_Word ArgX10_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 9))));
      MR_Word ArgY10_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 9))));
      MR_Word ArgX11_34 = ((((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 10))) >> 3)) & (MR_Integer) 1);
      MR_Word ArgY11_35 = ((((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 10))) >> 3)) & (MR_Integer) 1);
      MR_Word ArgX12_37 = ((((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 10))) >> 2)) & (MR_Integer) 1);
      MR_Word ArgY12_38 = ((((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 10))) >> 2)) & (MR_Integer) 1);
      MR_Word ArgX13_40 = ((((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 10))) >> 1)) & (MR_Integer) 1);
      MR_Word ArgY13_41 = ((((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 10))) >> 1)) & (MR_Integer) 1);
      MR_Word ArgX14_43 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 10))) & (MR_Integer) 1);
      MR_Word ArgY14_44 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 10))) & (MR_Integer) 1);
      MR_Word ArgX15_46 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 11))));
      MR_Word ArgY15_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 11))));
      MR_Word ArgX16_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 12))));
      MR_Word ArgY16_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 12))));
      MR_Word ArgX17_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 13))));
      MR_Word ArgY17_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 13))));
      MR_Word ArgX18_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 14))));
      MR_Word ArgY18_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 14))));
      MR_Word ArgX19_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 15))));
      MR_Word ArgY19_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 15))));
      MR_Word ArgX20_61 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 16))));
      MR_Word ArgY20_62 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 16))));
      MR_Word ArgX21_64 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 17))));
      MR_Word ArgY21_65 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 17))));
      MR_Word ArgX22_67 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 18))));
      MR_Word ArgY22_68 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 18))));
      MR_Word ArgX23_70 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 19))) & (MR_Integer) 1);
      MR_Word ArgY23_71 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 19))) & (MR_Integer) 1);
      MR_Word ArgX24_73 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 20))));
      MR_Word ArgY24_74 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 20))));
      MR_Word ArgX25_76 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 21))));
      MR_Word ArgY25_77 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 21))));
      MR_Word ArgX26_79 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 22))));
      MR_Word ArgY26_80 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 22))));
      MR_Word ArgX27_82 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 23))));
      MR_Word ArgY27_83 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 23))));
      MR_Word ArgX28_85 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 24))));
      MR_Word ArgY28_86 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 24))));
      MR_Word ArgX29_88 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 25))));
      MR_Word ArgY29_89 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 25))));
      MR_Word ArgX30_91 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 26))));
      MR_Word ArgY30_92 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 26))));
      MR_Word ArgX31_94 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 27))));
      MR_Word ArgY31_95 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 27))));
      MR_Word ArgX32_97 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 28))));
      MR_Word ArgY32_98 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 28))));
      MR_Word ArgX33_100 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 29))));
      MR_Word ArgY33_101 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 29))));
      MR_Word ArgX34_103 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 30))));
      MR_Word ArgY34_104 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 30))));
      MR_Word ArgX35_106 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 31))));
      MR_Word ArgY35_107 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 31))));
      MR_Word ArgX36_109 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 32))));
      MR_Word ArgY36_110 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 32))));
      MR_Word SubResult1_6;

      mercury__term____Compare____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;
            }
            else
            {
              succeeded = MR_TRUE;
              succeeded = !(succeeded);
              if (succeeded)
              {
                SubResult3_12 = (MR_Integer) 0;
                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[34]), &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;
                }
                else
                {
                  succeeded = MR_TRUE;
                  succeeded = !(succeeded);
                  if (succeeded)
                  {
                    SubResult5_18 = (MR_Integer) 0;
                    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[35]), &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[36]), &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[37]), &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[38]), &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;
                            }
                            else
                            {
                              succeeded = MR_TRUE;
                              succeeded = !(succeeded);
                              if (succeeded)
                              {
                                SubResult11_36 = (MR_Integer) 0;
                                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;
                              }
                              else
                              {
                                succeeded = MR_TRUE;
                                succeeded = !(succeeded);
                                if (succeeded)
                                {
                                  SubResult12_39 = (MR_Integer) 0;
                                  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;
                                }
                                else
                                {
                                  succeeded = MR_TRUE;
                                  succeeded = !(succeeded);
                                  if (succeeded)
                                  {
                                    SubResult13_42 = (MR_Integer) 0;
                                    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;
                                  }
                                  else
                                  {
                                    succeeded = MR_TRUE;
                                    succeeded = !(succeeded);
                                    if (succeeded)
                                    {
                                      SubResult14_45 = (MR_Integer) 0;
                                      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[39]), &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[40]), &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[42]), &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[43]), &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[11]), &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;
                                                    }
                                                    else
                                                    {
                                                      succeeded = MR_TRUE;
                                                      succeeded = !(succeeded);
                                                      if (succeeded)
                                                      {
                                                        SubResult23_72 = (MR_Integer) 0;
                                                        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[44]), &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[45]), &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[22]), &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[46]), &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[49]), &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[50]), &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[51]), &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[52]), &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[53]), &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(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 0))));
      MR_Word ArgX2_7 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));
      MR_Word ArgY2_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 1))));
      MR_Word SubResult1_6;

      mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[59]), &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[60]), 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(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 0))));
      MR_Word ArgX2_7 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));
      MR_Word ArgY2_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 1))));
      MR_Word SubResult1_6;

      mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[57]), &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[58]), 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_31 = (MR_Integer) (HeadVar__1_1);
    MR_Integer CastY_32 = (MR_Integer) (HeadVar__2_2);

    succeeded = (CastX_31 == CastY_32);
    if (succeeded)
      succeeded = MR_TRUE;
    else
    {
      MR_Word TypeInfo_35_35;
      MR_Word TypeCtorInfo_36_36;
      MR_Word TypeInfo_38_38;
      MR_Word TypeInfo_39_39;
      MR_Word TypeInfo_40_40;
      MR_Word TypeInfo_41_41;
      MR_Word TypeInfo_42_42;
      MR_Word TypeInfo_44_44;
      MR_Word ArgX1_3 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 0))));
      MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_Word ArgX2_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 1))));
      MR_Word ArgY2_6 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));
      MR_Word ArgX3_7 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 2))));
      MR_Word ArgY3_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 2))));
      MR_Word ArgX4_9 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 3))));
      MR_Word ArgY4_10 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 3))));
      MR_Word ArgX5_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 4))));
      MR_Word ArgY5_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 4))));
      MR_Word ArgX6_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 5))));
      MR_Word ArgY6_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 5))));
      MR_Word ArgX7_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 6))));
      MR_Word ArgY7_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 6))));
      MR_Word ArgX8_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 7))));
      MR_Word ArgY8_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 7))));
      MR_Word ArgX9_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 8))));
      MR_Word ArgY9_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 8))));
      MR_Word ArgX10_21 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 9))));
      MR_Word ArgY10_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 9))));
      MR_Word ArgX11_23 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 10))) & (MR_Integer) 7);
      MR_Word ArgY11_24 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 10))) & (MR_Integer) 7);
      MR_Word ArgX12_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 11))));
      MR_Word ArgY12_26 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 11))));
      MR_Word ArgX13_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 12))));
      MR_Word ArgY13_28 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 12))));
      MR_Word ArgX14_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 13))));
      MR_Word ArgY14_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 13))));

      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)
        {
          TypeInfo_35_35 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[7]);
          succeeded = mercury__builtin__unify_2_p_0(TypeInfo_35_35, ((MR_Box) (ArgX3_7)), ((MR_Box) (ArgY3_8)));
          if (succeeded)
          {
            TypeCtorInfo_36_36 = (MR_Word) (&hlds__vartypes__hlds__vartypes__type_ctor_info_vartypes_0);
            succeeded = mercury__builtin__unify_2_p_0(TypeCtorInfo_36_36, ((MR_Box) (ArgX4_9)), ((MR_Box) (ArgY4_10)));
            if (succeeded)
            {
              succeeded = hlds__hlds_rtti____Unify____rtti_varmaps_0_0(ArgX5_11, ArgY5_12);
              if (succeeded)
              {
                TypeInfo_38_38 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[26]);
                succeeded = mercury__builtin__unify_2_p_0(TypeInfo_38_38, ((MR_Box) (ArgX6_13)), ((MR_Box) (ArgY6_14)));
                if (succeeded)
                {
                  TypeInfo_39_39 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[28]);
                  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[27]);
                    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[30]);
                      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[31]);
                        succeeded = mercury__builtin__unify_2_p_0(TypeInfo_42_42, ((MR_Box) (ArgX10_21)), ((MR_Box) (ArgY10_22)));
                        if (succeeded)
                        {
                          succeeded = (ArgX11_23 == ArgY11_24);
                          if (succeeded)
                          {
                            succeeded = parse_tree__prog_data_pragma____Unify____eval_method_0_0(ArgX12_25, ArgY12_26);
                            if (succeeded)
                            {
                              TypeInfo_44_44 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[32]);
                              succeeded = mercury__builtin__unify_2_p_0(TypeInfo_44_44, ((MR_Box) (ArgX13_27)), ((MR_Box) (ArgY13_28)));
                              if (succeeded)
                                succeeded = hlds__hlds_pred____Unify____proc_sub_info_0_0(ArgX14_29, ArgY14_30);
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
    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(MR_mktag(0), HeadVar__1_1, (MR_Integer) 0))));
      MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_Word ArgX2_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 1))));
      MR_Word ArgY2_6 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));
      MR_Word ArgX3_7 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 2))) & (MR_Integer) 1);
      MR_Word ArgY3_8 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 2))) & (MR_Integer) 1);
      MR_Word ArgX4_9 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 3))));
      MR_Word ArgY4_10 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 3))));
      MR_Word ArgX5_11 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 4))) & (MR_Integer) 3);
      MR_Word ArgY5_12 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 4))) & (MR_Integer) 3);
      MR_Word ArgX6_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 5))));
      MR_Word ArgY6_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 5))));
      MR_Word ArgX7_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 6))));
      MR_Word ArgY7_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 6))));
      MR_Word ArgX8_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 7))));
      MR_Word ArgY8_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 7))));
      MR_Word ArgX9_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 8))));
      MR_Word ArgY9_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 8))));
      MR_Word ArgX10_21 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 9))));
      MR_Word ArgY10_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 9))));
      MR_Word ArgX11_23 = ((((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 10))) >> 3)) & (MR_Integer) 1);
      MR_Word ArgY11_24 = ((((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 10))) >> 3)) & (MR_Integer) 1);
      MR_Word ArgX12_25 = ((((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 10))) >> 2)) & (MR_Integer) 1);
      MR_Word ArgY12_26 = ((((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 10))) >> 2)) & (MR_Integer) 1);
      MR_Word ArgX13_27 = ((((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 10))) >> 1)) & (MR_Integer) 1);
      MR_Word ArgY13_28 = ((((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 10))) >> 1)) & (MR_Integer) 1);
      MR_Word ArgX14_29 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 10))) & (MR_Integer) 1);
      MR_Word ArgY14_30 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 10))) & (MR_Integer) 1);
      MR_Word ArgX15_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 11))));
      MR_Word ArgY15_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 11))));
      MR_Word ArgX16_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 12))));
      MR_Word ArgY16_34 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 12))));
      MR_Word ArgX17_35 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 13))));
      MR_Word ArgY17_36 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 13))));
      MR_Word ArgX18_37 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 14))));
      MR_Word ArgY18_38 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 14))));
      MR_Word ArgX19_39 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 15))));
      MR_Word ArgY19_40 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 15))));
      MR_Word ArgX20_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 16))));
      MR_Word ArgY20_42 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 16))));
      MR_Word ArgX21_43 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 17))));
      MR_Word ArgY21_44 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 17))));
      MR_Word ArgX22_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 18))));
      MR_Word ArgY22_46 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 18))));
      MR_Word ArgX23_47 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 19))) & (MR_Integer) 1);
      MR_Word ArgY23_48 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 19))) & (MR_Integer) 1);
      MR_Word ArgX24_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 20))));
      MR_Word ArgY24_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 20))));
      MR_Word ArgX25_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 21))));
      MR_Word ArgY25_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 21))));
      MR_Word ArgX26_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 22))));
      MR_Word ArgY26_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 22))));
      MR_Word ArgX27_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 23))));
      MR_Word ArgY27_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 23))));
      MR_Word ArgX28_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 24))));
      MR_Word ArgY28_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 24))));
      MR_Word ArgX29_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 25))));
      MR_Word ArgY29_60 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 25))));
      MR_Word ArgX30_61 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 26))));
      MR_Word ArgY30_62 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 26))));
      MR_Word ArgX31_63 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 27))));
      MR_Word ArgY31_64 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 27))));
      MR_Word ArgX32_65 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 28))));
      MR_Word ArgY32_66 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 28))));
      MR_Word ArgX33_67 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 29))));
      MR_Word ArgY33_68 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 29))));
      MR_Word ArgX34_69 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 30))));
      MR_Word ArgY34_70 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 30))));
      MR_Word ArgX35_71 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 31))));
      MR_Word ArgY35_72 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 31))));
      MR_Word ArgX36_73 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 32))));
      MR_Word ArgY36_74 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 32))));

      succeeded = mercury__term____Unify____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[34]);
            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[35]);
                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[36]);
                  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[37]);
                      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[38]);
                        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[39]);
                                    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[40]);
                                      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[42]);
                                          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[43]);
                                            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[11]);
                                                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[44]);
                                                      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[45]);
                                                        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[22]);
                                                          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[46]);
                                                            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[49]);
                                                              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[50]);
                                                                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[51]);
                                                                    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[52]);
                                                                      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[53]);
                                                                        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(MR_mktag(0), HeadVar__1_1, (MR_Integer) 0))));
      MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_Word ArgX2_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 1))));
      MR_Word ArgY2_6 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));

      succeeded = mercury__builtin__unify_2_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[59]), ((MR_Box) (ArgX1_3)), ((MR_Box) (ArgY1_4)));
      if (succeeded)
      {
        TypeInfo_10_10 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[60]);
        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(MR_mktag(0), HeadVar__1_1, (MR_Integer) 0))));
      MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_Word ArgX2_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 1))));
      MR_Word ArgY2_6 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));

      succeeded = mercury__builtin__unify_2_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[57]), ((MR_Box) (ArgX1_3)), ((MR_Box) (ArgY1_4)));
      if (succeeded)
      {
        TypeInfo_10_10 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[58]);
        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__2_1,
  MR_Word HeadVar__2_2)
{
  {
    MR_bool succeeded = (HeadVar__2_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(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 0))));
      MR_Word ArgX2_7 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));
      MR_Word ArgY2_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 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[25]), 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(MR_mktag(0), HeadVar__1_1, (MR_Integer) 0))));
      MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_Word ArgX2_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 1))));
      MR_Word ArgY2_6 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 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[25]);
        succeeded = mercury__builtin__unify_2_p_0(TypeInfo_10_10, ((MR_Box) (ArgX2_5)), ((MR_Box) (ArgY2_6)));
      }
    }
    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_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_36_36;
      MR_Word TypeInfo_37_37;
      MR_Word TypeInfo_38_38;
      MR_Word TypeInfo_39_39;
      MR_Word TypeInfo_40_40;
      MR_Word TypeInfo_41_41;
      MR_Word TypeInfo_42_42;
      MR_Word TypeInfo_44_44;
      MR_Word TypeInfo_45_45;
      MR_Word TypeInfo_46_46;
      MR_Word TypeInfo_47_47;
      MR_Word TypeInfo_48_48;
      MR_Word ArgX1_3 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 0))));
      MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_Word ArgX2_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 1))));
      MR_Word ArgY2_6 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));
      MR_Word ArgX3_7 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 2))));
      MR_Word ArgY3_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 2))));
      MR_Word ArgX4_9 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 3))));
      MR_Word ArgY4_10 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 3))));
      MR_Word ArgX5_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 4))));
      MR_Word ArgY5_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 4))));
      MR_Word ArgX6_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 5))));
      MR_Word ArgY6_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 5))));
      MR_Word ArgX7_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 6))));
      MR_Word ArgY7_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 6))));
      MR_Word ArgX8_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 7))));
      MR_Word ArgY8_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 7))));
      MR_Word ArgX9_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 8))));
      MR_Word ArgY9_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 8))));
      MR_Word ArgX10_21 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 9))));
      MR_Word ArgY10_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 9))));
      MR_Word ArgX11_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 10))));
      MR_Word ArgY11_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 10))));
      MR_Word ArgX12_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 11))));
      MR_Word ArgY12_26 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 11))));
      MR_Word ArgX13_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 12))));
      MR_Word ArgY13_28 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 12))));
      MR_Word ArgX14_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 13))));
      MR_Word ArgY14_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 13))));
      MR_Word ArgX15_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 14))));
      MR_Word ArgY15_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 14))));

      succeeded = mercury__term____Unify____context_0_0(ArgX1_3, ArgY1_4);
      if (succeeded)
      {
        TypeInfo_36_36 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[18]);
        succeeded = mercury__builtin__unify_2_p_0(TypeInfo_36_36, ((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_37_37 = (MR_Word) (&hlds__hlds_pred_scalar_common_1[1]);
            succeeded = mercury__builtin__unify_2_p_0(TypeInfo_37_37, ((MR_Box) (ArgX4_9)), ((MR_Box) (ArgY4_10)));
            if (succeeded)
            {
              TypeInfo_38_38 = (MR_Word) (&hlds__hlds_pred_scalar_common_1[9]);
              succeeded = mercury__builtin__unify_2_p_0(TypeInfo_38_38, ((MR_Box) (ArgX5_11)), ((MR_Box) (ArgY5_12)));
              if (succeeded)
              {
                TypeInfo_39_39 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[3]);
                succeeded = mercury__builtin__unify_2_p_0(TypeInfo_39_39, ((MR_Box) (ArgX6_13)), ((MR_Box) (ArgY6_14)));
                if (succeeded)
                {
                  TypeInfo_40_40 = (MR_Word) (&hlds__hlds_pred_scalar_common_1[2]);
                  succeeded = mercury__builtin__unify_2_p_0(TypeInfo_40_40, ((MR_Box) (ArgX7_15)), ((MR_Box) (ArgY7_16)));
                  if (succeeded)
                  {
                    TypeInfo_41_41 = (MR_Word) (&hlds__hlds_pred_scalar_common_1[3]);
                    succeeded = mercury__builtin__unify_2_p_0(TypeInfo_41_41, ((MR_Box) (ArgX8_17)), ((MR_Box) (ArgY8_18)));
                    if (succeeded)
                    {
                      TypeInfo_42_42 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[4]);
                      succeeded = mercury__builtin__unify_2_p_0(TypeInfo_42_42, ((MR_Box) (ArgX9_19)), ((MR_Box) (ArgY9_20)));
                      if (succeeded)
                      {
                        succeeded = hlds__inst_graph____Unify____inst_graph_info_0_0(ArgX10_21, ArgY10_22);
                        if (succeeded)
                        {
                          TypeInfo_44_44 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[19]);
                          succeeded = mercury__builtin__unify_2_p_0(TypeInfo_44_44, ((MR_Box) (ArgX11_23)), ((MR_Box) (ArgY11_24)));
                          if (succeeded)
                          {
                            TypeInfo_45_45 = (MR_Word) (&hlds__hlds_pred_scalar_common_1[4]);
                            succeeded = mercury__builtin__unify_2_p_0(TypeInfo_45_45, ((MR_Box) (ArgX12_25)), ((MR_Box) (ArgY12_26)));
                            if (succeeded)
                            {
                              TypeInfo_46_46 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[20]);
                              succeeded = mercury__builtin__unify_2_p_0(TypeInfo_46_46, ((MR_Box) (ArgX13_27)), ((MR_Box) (ArgY13_28)));
                              if (succeeded)
                              {
                                TypeInfo_47_47 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[22]);
                                succeeded = mercury__builtin__unify_2_p_0(TypeInfo_47_47, ((MR_Box) (ArgX14_29)), ((MR_Box) (ArgY14_30)));
                                if (succeeded)
                                {
                                  TypeInfo_48_48 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[14]);
                                  succeeded = mercury__builtin__unify_2_p_0(TypeInfo_48_48, ((MR_Box) (ArgX15_31)), ((MR_Box) (ArgY15_32)));
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
    return succeeded;
  }
}

void MR_CALL 
hlds__hlds_pred____Compare____pred_proc_list_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[17]), HeadVar__1_1, ((MR_Box) (Cast_HeadVar1_4)), ((MR_Box) (Cast_HeadVar2_5)));
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____pred_proc_list_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[17]), ((MR_Box) (Cast_HeadVar1_3)), ((MR_Box) (Cast_HeadVar2_4)));
    return succeeded;
  }
}

void MR_CALL 
hlds__hlds_pred____Compare____pred_markers_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[16]), HeadVar__1_1, ((MR_Box) (Cast_HeadVar1_4)), ((MR_Box) (Cast_HeadVar2_5)));
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____pred_markers_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[16]), ((MR_Box) (Cast_HeadVar1_3)), ((MR_Box) (Cast_HeadVar2_4)));
    return succeeded;
  }
}

void MR_CALL 
hlds__hlds_pred____Compare____pred_marker_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____pred_marker_0_0(
  MR_Word HeadVar__2_1,
  MR_Word HeadVar__2_2)
{
  {
    MR_bool succeeded = (HeadVar__2_1 == HeadVar__2_2);

    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(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 0))));
      MR_String ArgX2_7 = ((MR_String) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));
      MR_String ArgY2_8 = ((MR_String) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 1))));
      MR_Integer ArgX3_10 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 2))));
      MR_Integer ArgY3_11 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 2))));
      MR_Word ArgX4_13 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 3))) & (MR_Integer) 1);
      MR_Word ArgY4_14 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 3))) & (MR_Integer) 1);
      MR_Word ArgX5_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 4))));
      MR_Word ArgY5_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 4))));
      MR_Word ArgX6_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 5))));
      MR_Word ArgY6_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 5))));
      MR_Word ArgX7_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 6))));
      MR_Word ArgY7_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 6))));
      MR_Word ArgX8_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 7))));
      MR_Word ArgY8_26 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 7))));
      MR_Word ArgX9_28 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 8))));
      MR_Word ArgY9_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 8))));
      MR_Word ArgX10_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 9))));
      MR_Word ArgY10_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 9))));
      MR_Word ArgX11_34 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 10))));
      MR_Word ArgY11_35 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 10))));
      MR_Word ArgX12_37 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 11))));
      MR_Word ArgY12_38 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 11))));
      MR_Word ArgX13_40 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 12))));
      MR_Word ArgY13_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 12))));
      MR_Word ArgX14_43 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 13))));
      MR_Word ArgY14_44 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 13))));
      MR_Word ArgX15_46 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 14))));
      MR_Word ArgY15_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 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;

        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;
            }
            else
            {
              succeeded = MR_TRUE;
              succeeded = !(succeeded);
              if (succeeded)
              {
                SubResult3_12 = (MR_Integer) 0;
                succeeded = MR_TRUE;
              }
            }
          }
          if (succeeded)
            *HeadVar__1_1 = SubResult3_12;
          else
          {
            MR_Word SubResult4_15;
            MR_Integer Var_65 = (MR_Integer) (ArgX4_13);
            MR_Integer Var_66 = (MR_Integer) (ArgY4_14);

            succeeded = (Var_65 < Var_66);
            if (succeeded)
            {
              SubResult4_15 = (MR_Integer) 1;
              succeeded = MR_TRUE;
            }
            else
            {
              succeeded = (Var_65 > Var_66);
              if (succeeded)
              {
                SubResult4_15 = (MR_Integer) 2;
                succeeded = MR_TRUE;
              }
              else
              {
                succeeded = MR_TRUE;
                succeeded = !(succeeded);
                if (succeeded)
                {
                  SubResult4_15 = (MR_Integer) 0;
                  succeeded = MR_TRUE;
                }
              }
            }
            if (succeeded)
              *HeadVar__1_1 = SubResult4_15;
            else
            {
              MR_Word SubResult5_18;

              hlds__hlds_pred____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____prog_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[8]), &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_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(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 0))));
      MR_Word ArgX2_7 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));
      MR_Word ArgY2_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 1))));
      MR_Word ArgX3_10 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 2))));
      MR_Word ArgY3_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 2))));
      MR_Word ArgX4_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 3))));
      MR_Word ArgY4_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 3))));
      MR_Word ArgX5_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 4))));
      MR_Word ArgY5_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 4))));
      MR_Word ArgX6_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 5))));
      MR_Word ArgY6_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 5))));
      MR_Word ArgX7_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 6))));
      MR_Word ArgY7_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 6))));
      MR_Word ArgX8_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 7))));
      MR_Word ArgY8_26 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 7))));
      MR_Word ArgX9_28 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 8))));
      MR_Word ArgY9_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 8))));
      MR_Word ArgX10_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 9))));
      MR_Word ArgY10_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 9))));
      MR_Word ArgX11_34 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 10))));
      MR_Word ArgY11_35 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 10))));
      MR_Word ArgX12_37 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 11))));
      MR_Word ArgY12_38 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 11))));
      MR_Word ArgX13_40 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 12))));
      MR_Word ArgY13_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 12))));
      MR_Word ArgX14_43 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 13))));
      MR_Word ArgY14_44 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 13))));
      MR_Word ArgX15_46 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 14))));
      MR_Word ArgY15_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 14))));
      MR_Word SubResult1_6;

      mercury__term____Compare____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[18]), &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[9]), &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[3]), &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_1[2]), &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[3]), &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[4]), &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;

                        hlds__inst_graph____Compare____inst_graph_info_0_0(&SubResult10_33, ArgX10_31, 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[19]), &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;

                            mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_1[4]), &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_2[20]), &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[22]), &SubResult14_45, ((MR_Box) (ArgX14_43)), ((MR_Box) (ArgY14_44)));
                                succeeded = (SubResult14_45 != (MR_Integer) 0);
                                if (succeeded)
                                  *HeadVar__1_1 = SubResult14_45;
                                else
                                  mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[14]), HeadVar__1_1, ((MR_Box) (ArgX15_46)), ((MR_Box) (ArgY15_47)));
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

void MR_CALL 
hlds__hlds_pred____Compare____pred_origin_0_0(
  MR_Word * HeadVar__1_1,
  MR_Word HeadVar__2_2,
  MR_Word HeadVar__3_3)
{
  {
    MR_bool succeeded;
    MR_Integer CastX_641 = (MR_Integer) (HeadVar__2_2);
    MR_Integer CastY_642 = (MR_Integer) (HeadVar__3_3);

    succeeded = (CastX_641 == CastY_642);
    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:
                      *HeadVar__1_1 = (MR_Integer) 1;
                      break;
                  }
                  break;
                case (MR_Integer) 1:
                  *HeadVar__1_1 = (MR_Integer) 2;
                  break;
                case (MR_Integer) 2:
                  *HeadVar__1_1 = (MR_Integer) 2;
                  break;
                case (MR_Integer) 3:
                  switch (((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 0))))) {
                    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) 2;
                      break;
                    case (MR_Integer) 2:
                      *HeadVar__1_1 = (MR_Integer) 2;
                      break;
                    case (MR_Integer) 3:
                      *HeadVar__1_1 = (MR_Integer) 2;
                      break;
                    case (MR_Integer) 4:
                      *HeadVar__1_1 = (MR_Integer) 2;
                      break;
                    case (MR_Integer) 5:
                      *HeadVar__1_1 = (MR_Integer) 2;
                      break;
                    case (MR_Integer) 6:
                      *HeadVar__1_1 = (MR_Integer) 2;
                      break;
                    case (MR_Integer) 7:
                      *HeadVar__1_1 = (MR_Integer) 2;
                      break;
                    case (MR_Integer) 8:
                      *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:
                  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;
                  }
                  break;
                case (MR_Integer) 1:
                  *HeadVar__1_1 = (MR_Integer) 2;
                  break;
                case (MR_Integer) 2:
                  *HeadVar__1_1 = (MR_Integer) 2;
                  break;
                case (MR_Integer) 3:
                  switch (((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 0))))) {
                    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) 2;
                      break;
                    case (MR_Integer) 2:
                      *HeadVar__1_1 = (MR_Integer) 2;
                      break;
                    case (MR_Integer) 3:
                      *HeadVar__1_1 = (MR_Integer) 2;
                      break;
                    case (MR_Integer) 4:
                      *HeadVar__1_1 = (MR_Integer) 2;
                      break;
                    case (MR_Integer) 5:
                      *HeadVar__1_1 = (MR_Integer) 2;
                      break;
                    case (MR_Integer) 6:
                      *HeadVar__1_1 = (MR_Integer) 2;
                      break;
                    case (MR_Integer) 7:
                      *HeadVar__1_1 = (MR_Integer) 2;
                      break;
                    case (MR_Integer) 8:
                      *HeadVar__1_1 = (MR_Integer) 1;
                      break;
                  }
                  break;
              }
              break;
          }
          break;
        case (MR_Integer) 1:
          {
            MR_Word Var_683 = ((MR_Word) ((MR_hl_field(MR_mktag(1), HeadVar__2_2, (MR_Integer) 1))));
            MR_Word Var_684 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(1), HeadVar__2_2, (MR_Integer) 0))) & (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:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                  case (MR_Integer) 1:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                }
                break;
              case (MR_Integer) 1:
                {
                  MR_Word ArgY1_5 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(1), HeadVar__3_3, (MR_Integer) 0))) & (MR_Integer) 3);
                  MR_Word ArgY2_8 = ((MR_Word) ((MR_hl_field(MR_mktag(1), HeadVar__3_3, (MR_Integer) 1))));
                  MR_Word SubResult1_6;
                  MR_Integer Var_697 = (MR_Integer) (Var_684);
                  MR_Integer Var_698 = (MR_Integer) (ArgY1_5);

                  succeeded = (Var_697 < Var_698);
                  if (succeeded)
                  {
                    SubResult1_6 = (MR_Integer) 1;
                    succeeded = MR_TRUE;
                  }
                  else
                  {
                    succeeded = (Var_697 > Var_698);
                    if (succeeded)
                    {
                      SubResult1_6 = (MR_Integer) 2;
                      succeeded = MR_TRUE;
                    }
                    else
                    {
                      succeeded = MR_TRUE;
                      succeeded = !(succeeded);
                      if (succeeded)
                      {
                        SubResult1_6 = (MR_Integer) 0;
                        succeeded = MR_TRUE;
                      }
                    }
                  }
                  if (succeeded)
                    *HeadVar__1_1 = SubResult1_6;
                  else
                    parse_tree__prog_data____Compare____type_ctor_0_0(HeadVar__1_1, Var_683, ArgY2_8);
                }
                break;
              case (MR_Integer) 2:
                *HeadVar__1_1 = (MR_Integer) 1;
                break;
              case (MR_Integer) 3:
                switch (((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 0))))) {
                  default: /*NOTREACHED*/ MR_assert(0);
                  case (MR_Integer) 0:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                  case (MR_Integer) 1:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                  case (MR_Integer) 2:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                  case (MR_Integer) 3:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                  case (MR_Integer) 4:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                  case (MR_Integer) 5:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                  case (MR_Integer) 6:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                  case (MR_Integer) 7:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                  case (MR_Integer) 8:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                }
                break;
            }
          }
          break;
        case (MR_Integer) 2:
          {
            MR_Word Var_672 = ((MR_Word) ((MR_hl_field(MR_mktag(2), HeadVar__2_2, (MR_Integer) 1))));
            MR_Word Var_673 = ((MR_Word) ((MR_hl_field(MR_mktag(2), HeadVar__2_2, (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) 1;
                    break;
                  case (MR_Integer) 1:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                }
                break;
              case (MR_Integer) 1:
                *HeadVar__1_1 = (MR_Integer) 2;
                break;
              case (MR_Integer) 2:
                {
                  MR_Word ArgY1_60 = ((MR_Word) ((MR_hl_field(MR_mktag(2), HeadVar__3_3, (MR_Integer) 0))));
                  MR_Word ArgY2_63 = ((MR_Word) ((MR_hl_field(MR_mktag(2), HeadVar__3_3, (MR_Integer) 1))));
                  MR_Word SubResult1_61;

                  mdbcomp__sym_name____Compare____sym_name_0_0(&SubResult1_61, Var_673, ArgY1_60);
                  succeeded = (SubResult1_61 != (MR_Integer) 0);
                  if (succeeded)
                    *HeadVar__1_1 = SubResult1_61;
                  else
                    hlds__hlds_rtti____Compare____instance_method_constraints_0_0(HeadVar__1_1, Var_672, ArgY2_63);
                }
                break;
              case (MR_Integer) 3:
                switch (((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 0))))) {
                  default: /*NOTREACHED*/ MR_assert(0);
                  case (MR_Integer) 0:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                  case (MR_Integer) 1:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                  case (MR_Integer) 2:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                  case (MR_Integer) 3:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                  case (MR_Integer) 4:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                  case (MR_Integer) 5:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                  case (MR_Integer) 6:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                  case (MR_Integer) 7:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                  case (MR_Integer) 8:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                }
                break;
            }
          }
          break;
        case (MR_Integer) 3:
          switch (((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 0))))) {
            default: /*NOTREACHED*/ MR_assert(0);
            case (MR_Integer) 0:
              {
                MR_Word Var_669 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 2))));
                MR_Word Var_670 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (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) 1;
                        break;
                      case (MR_Integer) 1:
                        *HeadVar__1_1 = (MR_Integer) 1;
                        break;
                    }
                    break;
                  case (MR_Integer) 1:
                    *HeadVar__1_1 = (MR_Integer) 2;
                    break;
                  case (MR_Integer) 2:
                    *HeadVar__1_1 = (MR_Integer) 2;
                    break;
                  case (MR_Integer) 3:
                    switch (((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 0))))) {
                      default: /*NOTREACHED*/ MR_assert(0);
                      case (MR_Integer) 0:
                        {
                          MR_Word ArgY1_115 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 1))));
                          MR_Word ArgY2_118 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 2))));
                          MR_Word SubResult1_116;

                          parse_tree__prog_data____Compare____class_id_0_0(&SubResult1_116, Var_670, ArgY1_115);
                          succeeded = (SubResult1_116 != (MR_Integer) 0);
                          if (succeeded)
                            *HeadVar__1_1 = SubResult1_116;
                          else
                            parse_tree__prog_data____Compare____pf_sym_name_arity_0_0(HeadVar__1_1, Var_669, ArgY2_118);
                        }
                        break;
                      case (MR_Integer) 1:
                        *HeadVar__1_1 = (MR_Integer) 1;
                        break;
                      case (MR_Integer) 2:
                        *HeadVar__1_1 = (MR_Integer) 1;
                        break;
                      case (MR_Integer) 3:
                        *HeadVar__1_1 = (MR_Integer) 1;
                        break;
                      case (MR_Integer) 4:
                        *HeadVar__1_1 = (MR_Integer) 1;
                        break;
                      case (MR_Integer) 5:
                        *HeadVar__1_1 = (MR_Integer) 1;
                        break;
                      case (MR_Integer) 6:
                        *HeadVar__1_1 = (MR_Integer) 1;
                        break;
                      case (MR_Integer) 7:
                        *HeadVar__1_1 = (MR_Integer) 1;
                        break;
                      case (MR_Integer) 8:
                        *HeadVar__1_1 = (MR_Integer) 1;
                        break;
                    }
                    break;
                }
              }
              break;
            case (MR_Integer) 1:
              {
                MR_Word Var_687 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 3))));
                MR_Word Var_688 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 2))));
                MR_Word Var_689 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (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) 1;
                        break;
                      case (MR_Integer) 1:
                        *HeadVar__1_1 = (MR_Integer) 1;
                        break;
                    }
                    break;
                  case (MR_Integer) 1:
                    *HeadVar__1_1 = (MR_Integer) 2;
                    break;
                  case (MR_Integer) 2:
                    *HeadVar__1_1 = (MR_Integer) 2;
                    break;
                  case (MR_Integer) 3:
                    switch (((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 0))))) {
                      default: /*NOTREACHED*/ MR_assert(0);
                      case (MR_Integer) 0:
                        *HeadVar__1_1 = (MR_Integer) 2;
                        break;
                      case (MR_Integer) 1:
                        {
                          MR_Word ArgY1_173 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 1))));
                          MR_Word ArgY2_176 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 2))));
                          MR_Word ArgY3_179 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 3))));
                          MR_Word SubResult1_174;

                          hlds__hlds_pred____Compare____pred_transformation_0_0(&SubResult1_174, Var_689, ArgY1_173);
                          succeeded = (SubResult1_174 != (MR_Integer) 0);
                          if (succeeded)
                            *HeadVar__1_1 = SubResult1_174;
                          else
                          {
                            MR_Word SubResult2_177;

                            hlds__hlds_pred____Compare____pred_origin_0_0(&SubResult2_177, Var_688, ArgY2_176);
                            succeeded = (SubResult2_177 != (MR_Integer) 0);
                            if (succeeded)
                              *HeadVar__1_1 = SubResult2_177;
                            else
                            {
                              MR_Integer Var_701 = (MR_Integer) (Var_687);
                              MR_Integer Var_702 = (MR_Integer) (ArgY3_179);

                              succeeded = (Var_701 < Var_702);
                              if (succeeded)
                                *HeadVar__1_1 = (MR_Integer) 1;
                              else
                              {
                                succeeded = (Var_701 > Var_702);
                                if (succeeded)
                                  *HeadVar__1_1 = (MR_Integer) 2;
                                else
                                  *HeadVar__1_1 = (MR_Integer) 0;
                              }
                            }
                          }
                        }
                        break;
                      case (MR_Integer) 2:
                        *HeadVar__1_1 = (MR_Integer) 1;
                        break;
                      case (MR_Integer) 3:
                        *HeadVar__1_1 = (MR_Integer) 1;
                        break;
                      case (MR_Integer) 4:
                        *HeadVar__1_1 = (MR_Integer) 1;
                        break;
                      case (MR_Integer) 5:
                        *HeadVar__1_1 = (MR_Integer) 1;
                        break;
                      case (MR_Integer) 6:
                        *HeadVar__1_1 = (MR_Integer) 1;
                        break;
                      case (MR_Integer) 7:
                        *HeadVar__1_1 = (MR_Integer) 1;
                        break;
                      case (MR_Integer) 8:
                        *HeadVar__1_1 = (MR_Integer) 1;
                        break;
                    }
                    break;
                }
              }
              break;
            case (MR_Integer) 2:
              {
                MR_Word Var_671 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 1))) & (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) 1;
                        break;
                      case (MR_Integer) 1:
                        *HeadVar__1_1 = (MR_Integer) 1;
                        break;
                    }
                    break;
                  case (MR_Integer) 1:
                    *HeadVar__1_1 = (MR_Integer) 2;
                    break;
                  case (MR_Integer) 2:
                    *HeadVar__1_1 = (MR_Integer) 2;
                    break;
                  case (MR_Integer) 3:
                    switch (((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 0))))) {
                      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) 2;
                        break;
                      case (MR_Integer) 2:
                        {
                          MR_Word ArgY1_236 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 1))) & (MR_Integer) 1);
                          MR_Integer Var_691 = (MR_Integer) (Var_671);
                          MR_Integer Var_692 = (MR_Integer) (ArgY1_236);

                          succeeded = (Var_691 < Var_692);
                          if (succeeded)
                            *HeadVar__1_1 = (MR_Integer) 1;
                          else
                          {
                            succeeded = (Var_691 > Var_692);
                            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;
                      case (MR_Integer) 4:
                        *HeadVar__1_1 = (MR_Integer) 1;
                        break;
                      case (MR_Integer) 5:
                        *HeadVar__1_1 = (MR_Integer) 1;
                        break;
                      case (MR_Integer) 6:
                        *HeadVar__1_1 = (MR_Integer) 1;
                        break;
                      case (MR_Integer) 7:
                        *HeadVar__1_1 = (MR_Integer) 1;
                        break;
                      case (MR_Integer) 8:
                        *HeadVar__1_1 = (MR_Integer) 1;
                        break;
                    }
                    break;
                }
              }
              break;
            case (MR_Integer) 3:
              {
                MR_Integer Var_667 = ((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 2))));
                MR_String Var_668 = ((MR_String) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (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) 1;
                        break;
                      case (MR_Integer) 1:
                        *HeadVar__1_1 = (MR_Integer) 1;
                        break;
                    }
                    break;
                  case (MR_Integer) 1:
                    *HeadVar__1_1 = (MR_Integer) 2;
                    break;
                  case (MR_Integer) 2:
                    *HeadVar__1_1 = (MR_Integer) 2;
                    break;
                  case (MR_Integer) 3:
                    switch (((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 0))))) {
                      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) 2;
                        break;
                      case (MR_Integer) 2:
                        *HeadVar__1_1 = (MR_Integer) 2;
                        break;
                      case (MR_Integer) 3:
                        {
                          MR_String ArgY1_280 = ((MR_String) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 1))));
                          MR_Integer ArgY2_283 = ((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 2))));
                          MR_Word SubResult1_281;

                          mercury__private_builtin__builtin_compare_string_3_p_0(&SubResult1_281, Var_668, ArgY1_280);
                          succeeded = (SubResult1_281 != (MR_Integer) 0);
                          if (succeeded)
                            *HeadVar__1_1 = SubResult1_281;
                          else
                          {
                            succeeded = (Var_667 < ArgY2_283);
                            if (succeeded)
                              *HeadVar__1_1 = (MR_Integer) 1;
                            else
                            {
                              succeeded = (Var_667 > ArgY2_283);
                              if (succeeded)
                                *HeadVar__1_1 = (MR_Integer) 2;
                              else
                                *HeadVar__1_1 = (MR_Integer) 0;
                            }
                          }
                        }
                        break;
                      case (MR_Integer) 4:
                        *HeadVar__1_1 = (MR_Integer) 1;
                        break;
                      case (MR_Integer) 5:
                        *HeadVar__1_1 = (MR_Integer) 1;
                        break;
                      case (MR_Integer) 6:
                        *HeadVar__1_1 = (MR_Integer) 1;
                        break;
                      case (MR_Integer) 7:
                        *HeadVar__1_1 = (MR_Integer) 1;
                        break;
                      case (MR_Integer) 8:
                        *HeadVar__1_1 = (MR_Integer) 1;
                        break;
                    }
                    break;
                }
              }
              break;
            case (MR_Integer) 4:
              {
                MR_Integer Var_674 = ((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 3))));
                MR_Integer Var_675 = ((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 2))));
                MR_String Var_676 = ((MR_String) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (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) 1;
                        break;
                      case (MR_Integer) 1:
                        *HeadVar__1_1 = (MR_Integer) 1;
                        break;
                    }
                    break;
                  case (MR_Integer) 1:
                    *HeadVar__1_1 = (MR_Integer) 2;
                    break;
                  case (MR_Integer) 2:
                    *HeadVar__1_1 = (MR_Integer) 2;
                    break;
                  case (MR_Integer) 3:
                    switch (((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 0))))) {
                      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) 2;
                        break;
                      case (MR_Integer) 2:
                        *HeadVar__1_1 = (MR_Integer) 2;
                        break;
                      case (MR_Integer) 3:
                        *HeadVar__1_1 = (MR_Integer) 2;
                        break;
                      case (MR_Integer) 4:
                        {
                          MR_String ArgY1_341 = ((MR_String) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 1))));
                          MR_Integer ArgY2_344 = ((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 2))));
                          MR_Integer ArgY3_347 = ((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 3))));
                          MR_Word SubResult1_342;

                          mercury__private_builtin__builtin_compare_string_3_p_0(&SubResult1_342, Var_676, ArgY1_341);
                          succeeded = (SubResult1_342 != (MR_Integer) 0);
                          if (succeeded)
                            *HeadVar__1_1 = SubResult1_342;
                          else
                          {
                            MR_Word SubResult2_345;

                            succeeded = (Var_675 < ArgY2_344);
                            if (succeeded)
                            {
                              SubResult2_345 = (MR_Integer) 1;
                              succeeded = MR_TRUE;
                            }
                            else
                            {
                              succeeded = (Var_675 > ArgY2_344);
                              if (succeeded)
                              {
                                SubResult2_345 = (MR_Integer) 2;
                                succeeded = MR_TRUE;
                              }
                              else
                              {
                                succeeded = MR_TRUE;
                                succeeded = !(succeeded);
                                if (succeeded)
                                {
                                  SubResult2_345 = (MR_Integer) 0;
                                  succeeded = MR_TRUE;
                                }
                              }
                            }
                            if (succeeded)
                              *HeadVar__1_1 = SubResult2_345;
                            else
                            {
                              succeeded = (Var_674 < ArgY3_347);
                              if (succeeded)
                                *HeadVar__1_1 = (MR_Integer) 1;
                              else
                              {
                                succeeded = (Var_674 > ArgY3_347);
                                if (succeeded)
                                  *HeadVar__1_1 = (MR_Integer) 2;
                                else
                                  *HeadVar__1_1 = (MR_Integer) 0;
                              }
                            }
                          }
                        }
                        break;
                      case (MR_Integer) 5:
                        *HeadVar__1_1 = (MR_Integer) 1;
                        break;
                      case (MR_Integer) 6:
                        *HeadVar__1_1 = (MR_Integer) 1;
                        break;
                      case (MR_Integer) 7:
                        *HeadVar__1_1 = (MR_Integer) 1;
                        break;
                      case (MR_Integer) 8:
                        *HeadVar__1_1 = (MR_Integer) 1;
                        break;
                    }
                    break;
                }
              }
              break;
            case (MR_Integer) 5:
              {
                MR_Word Var_680 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 3))) & (MR_Integer) 3);
                MR_Integer Var_681 = ((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 2))));
                MR_Word Var_682 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (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) 1;
                        break;
                      case (MR_Integer) 1:
                        *HeadVar__1_1 = (MR_Integer) 1;
                        break;
                    }
                    break;
                  case (MR_Integer) 1:
                    *HeadVar__1_1 = (MR_Integer) 2;
                    break;
                  case (MR_Integer) 2:
                    *HeadVar__1_1 = (MR_Integer) 2;
                    break;
                  case (MR_Integer) 3:
                    switch (((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 0))))) {
                      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) 2;
                        break;
                      case (MR_Integer) 2:
                        *HeadVar__1_1 = (MR_Integer) 2;
                        break;
                      case (MR_Integer) 3:
                        *HeadVar__1_1 = (MR_Integer) 2;
                        break;
                      case (MR_Integer) 4:
                        *HeadVar__1_1 = (MR_Integer) 2;
                        break;
                      case (MR_Integer) 5:
                        {
                          MR_Word ArgY1_412 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 1))));
                          MR_Integer ArgY2_415 = ((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 2))));
                          MR_Word ArgY3_418 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 3))) & (MR_Integer) 3);
                          MR_Word SubResult1_413;

                          mdbcomp__sym_name____Compare____sym_name_0_0(&SubResult1_413, Var_682, ArgY1_412);
                          succeeded = (SubResult1_413 != (MR_Integer) 0);
                          if (succeeded)
                            *HeadVar__1_1 = SubResult1_413;
                          else
                          {
                            MR_Word SubResult2_416;

                            succeeded = (Var_681 < ArgY2_415);
                            if (succeeded)
                            {
                              SubResult2_416 = (MR_Integer) 1;
                              succeeded = MR_TRUE;
                            }
                            else
                            {
                              succeeded = (Var_681 > ArgY2_415);
                              if (succeeded)
                              {
                                SubResult2_416 = (MR_Integer) 2;
                                succeeded = MR_TRUE;
                              }
                              else
                              {
                                succeeded = MR_TRUE;
                                succeeded = !(succeeded);
                                if (succeeded)
                                {
                                  SubResult2_416 = (MR_Integer) 0;
                                  succeeded = MR_TRUE;
                                }
                              }
                            }
                            if (succeeded)
                              *HeadVar__1_1 = SubResult2_416;
                            else
                            {
                              MR_Integer Var_695 = (MR_Integer) (Var_680);
                              MR_Integer Var_696 = (MR_Integer) (ArgY3_418);

                              succeeded = (Var_695 < Var_696);
                              if (succeeded)
                                *HeadVar__1_1 = (MR_Integer) 1;
                              else
                              {
                                succeeded = (Var_695 > Var_696);
                                if (succeeded)
                                  *HeadVar__1_1 = (MR_Integer) 2;
                                else
                                  *HeadVar__1_1 = (MR_Integer) 0;
                              }
                            }
                          }
                        }
                        break;
                      case (MR_Integer) 6:
                        *HeadVar__1_1 = (MR_Integer) 1;
                        break;
                      case (MR_Integer) 7:
                        *HeadVar__1_1 = (MR_Integer) 1;
                        break;
                      case (MR_Integer) 8:
                        *HeadVar__1_1 = (MR_Integer) 1;
                        break;
                    }
                    break;
                }
              }
              break;
            case (MR_Integer) 6:
              {
                MR_Word Var_685 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 2))) & (MR_Integer) 1);
                MR_Word Var_686 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (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) 1;
                        break;
                      case (MR_Integer) 1:
                        *HeadVar__1_1 = (MR_Integer) 1;
                        break;
                    }
                    break;
                  case (MR_Integer) 1:
                    *HeadVar__1_1 = (MR_Integer) 2;
                    break;
                  case (MR_Integer) 2:
                    *HeadVar__1_1 = (MR_Integer) 2;
                    break;
                  case (MR_Integer) 3:
                    switch (((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 0))))) {
                      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) 2;
                        break;
                      case (MR_Integer) 2:
                        *HeadVar__1_1 = (MR_Integer) 2;
                        break;
                      case (MR_Integer) 3:
                        *HeadVar__1_1 = (MR_Integer) 2;
                        break;
                      case (MR_Integer) 4:
                        *HeadVar__1_1 = (MR_Integer) 2;
                        break;
                      case (MR_Integer) 5:
                        *HeadVar__1_1 = (MR_Integer) 2;
                        break;
                      case (MR_Integer) 6:
                        {
                          MR_Word ArgY1_475 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 1))));
                          MR_Word ArgY2_478 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 2))) & (MR_Integer) 1);
                          MR_Word SubResult1_476;

                          parse_tree__prog_data____Compare____pf_sym_name_arity_0_0(&SubResult1_476, Var_686, ArgY1_475);
                          succeeded = (SubResult1_476 != (MR_Integer) 0);
                          if (succeeded)
                            *HeadVar__1_1 = SubResult1_476;
                          else
                          {
                            MR_Integer Var_699 = (MR_Integer) (Var_685);
                            MR_Integer Var_700 = (MR_Integer) (ArgY2_478);

                            succeeded = (Var_699 < Var_700);
                            if (succeeded)
                              *HeadVar__1_1 = (MR_Integer) 1;
                            else
                            {
                              succeeded = (Var_699 > Var_700);
                              if (succeeded)
                                *HeadVar__1_1 = (MR_Integer) 2;
                              else
                                *HeadVar__1_1 = (MR_Integer) 0;
                            }
                          }
                        }
                        break;
                      case (MR_Integer) 7:
                        *HeadVar__1_1 = (MR_Integer) 1;
                        break;
                      case (MR_Integer) 8:
                        *HeadVar__1_1 = (MR_Integer) 1;
                        break;
                    }
                    break;
                }
              }
              break;
            case (MR_Integer) 7:
              {
                MR_Word Var_677 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 3))) & (MR_Integer) 15);
                MR_String Var_678 = ((MR_String) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 2))));
                MR_Word Var_679 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (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) 1;
                        break;
                      case (MR_Integer) 1:
                        *HeadVar__1_1 = (MR_Integer) 1;
                        break;
                    }
                    break;
                  case (MR_Integer) 1:
                    *HeadVar__1_1 = (MR_Integer) 2;
                    break;
                  case (MR_Integer) 2:
                    *HeadVar__1_1 = (MR_Integer) 2;
                    break;
                  case (MR_Integer) 3:
                    switch (((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 0))))) {
                      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) 2;
                        break;
                      case (MR_Integer) 2:
                        *HeadVar__1_1 = (MR_Integer) 2;
                        break;
                      case (MR_Integer) 3:
                        *HeadVar__1_1 = (MR_Integer) 2;
                        break;
                      case (MR_Integer) 4:
                        *HeadVar__1_1 = (MR_Integer) 2;
                        break;
                      case (MR_Integer) 5:
                        *HeadVar__1_1 = (MR_Integer) 2;
                        break;
                      case (MR_Integer) 6:
                        *HeadVar__1_1 = (MR_Integer) 2;
                        break;
                      case (MR_Integer) 7:
                        {
                          MR_Word ArgY1_539 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 1))));
                          MR_String ArgY2_542 = ((MR_String) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 2))));
                          MR_Word ArgY3_545 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 3))) & (MR_Integer) 15);
                          MR_Word SubResult1_540;

                          mdbcomp__sym_name____Compare____sym_name_0_0(&SubResult1_540, Var_679, ArgY1_539);
                          succeeded = (SubResult1_540 != (MR_Integer) 0);
                          if (succeeded)
                            *HeadVar__1_1 = SubResult1_540;
                          else
                          {
                            MR_Word SubResult2_543;

                            mercury__private_builtin__builtin_compare_string_3_p_0(&SubResult2_543, Var_678, ArgY2_542);
                            succeeded = (SubResult2_543 != (MR_Integer) 0);
                            if (succeeded)
                              *HeadVar__1_1 = SubResult2_543;
                            else
                            {
                              MR_Integer Var_693 = (MR_Integer) (Var_677);
                              MR_Integer Var_694 = (MR_Integer) (ArgY3_545);

                              succeeded = (Var_693 < Var_694);
                              if (succeeded)
                                *HeadVar__1_1 = (MR_Integer) 1;
                              else
                              {
                                succeeded = (Var_693 > Var_694);
                                if (succeeded)
                                  *HeadVar__1_1 = (MR_Integer) 2;
                                else
                                  *HeadVar__1_1 = (MR_Integer) 0;
                              }
                            }
                          }
                        }
                        break;
                      case (MR_Integer) 8:
                        *HeadVar__1_1 = (MR_Integer) 1;
                        break;
                    }
                    break;
                }
              }
              break;
            case (MR_Integer) 8:
              {
                MR_Word Var_690 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (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) 2;
                        break;
                    }
                    break;
                  case (MR_Integer) 1:
                    *HeadVar__1_1 = (MR_Integer) 2;
                    break;
                  case (MR_Integer) 2:
                    *HeadVar__1_1 = (MR_Integer) 2;
                    break;
                  case (MR_Integer) 3:
                    switch (((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 0))))) {
                      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) 2;
                        break;
                      case (MR_Integer) 2:
                        *HeadVar__1_1 = (MR_Integer) 2;
                        break;
                      case (MR_Integer) 3:
                        *HeadVar__1_1 = (MR_Integer) 2;
                        break;
                      case (MR_Integer) 4:
                        *HeadVar__1_1 = (MR_Integer) 2;
                        break;
                      case (MR_Integer) 5:
                        *HeadVar__1_1 = (MR_Integer) 2;
                        break;
                      case (MR_Integer) 6:
                        *HeadVar__1_1 = (MR_Integer) 2;
                        break;
                      case (MR_Integer) 7:
                        *HeadVar__1_1 = (MR_Integer) 2;
                        break;
                      case (MR_Integer) 8:
                        {
                          MR_Word ArgY1_640 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 1))));

                          mdbcomp__sym_name____Compare____sym_name_0_0(HeadVar__1_1, Var_690, ArgY1_640);
                        }
                        break;
                    }
                    break;
                }
              }
              break;
          }
          break;
      }
  }
}

void MR_CALL 
hlds__hlds_pred____Compare____pred_transformation_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_Integer Var_4;
      MR_Integer Var_5;

      hlds__hlds_pred____Index____pred_transformation_0_0(HeadVar__2_2, &Var_4);
      hlds__hlds_pred____Index____pred_transformation_0_0(HeadVar__3_3, &Var_5);
      succeeded = (Var_4 < Var_5);
      if (succeeded)
        *HeadVar__1_1 = (MR_Integer) 1;
      else
      {
        succeeded = (Var_4 > Var_5);
        if (succeeded)
          *HeadVar__1_1 = (MR_Integer) 2;
        else
        {
          MR_Word Var_6;

          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:
                  {
                    Var_6 = (MR_Integer) 0;
                    succeeded = MR_TRUE;
                  }
                  break;
                case (MR_Integer) 1:
                  {
                    Var_6 = (MR_Integer) 0;
                    succeeded = MR_TRUE;
                  }
                  break;
                case (MR_Integer) 2:
                  {
                    Var_6 = (MR_Integer) 0;
                    succeeded = MR_TRUE;
                  }
                  break;
                case (MR_Integer) 3:
                  {
                    Var_6 = (MR_Integer) 0;
                    succeeded = MR_TRUE;
                  }
                  break;
                case (MR_Integer) 4:
                  {
                    Var_6 = (MR_Integer) 0;
                    succeeded = MR_TRUE;
                  }
                  break;
                case (MR_Integer) 5:
                  {
                    Var_6 = (MR_Integer) 0;
                    succeeded = MR_TRUE;
                  }
                  break;
                case (MR_Integer) 6:
                  {
                    Var_6 = (MR_Integer) 0;
                    succeeded = MR_TRUE;
                  }
                  break;
              }
              break;
            case (MR_Integer) 1:
              {
                MR_Integer ArgX1_7 = ((MR_Integer) ((MR_hl_field(MR_mktag(1), HeadVar__2_2, (MR_Integer) 0))));
                MR_Integer ArgY1_8;

                succeeded = ((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 1);
                if (succeeded)
                {
                  ArgY1_8 = ((MR_Integer) ((MR_hl_field(MR_mktag(1), HeadVar__3_3, (MR_Integer) 0))));
                  succeeded = (ArgX1_7 < ArgY1_8);
                  if (succeeded)
                    Var_6 = (MR_Integer) 1;
                  else
                  {
                    succeeded = (ArgX1_7 > ArgY1_8);
                    if (succeeded)
                      Var_6 = (MR_Integer) 2;
                    else
                      Var_6 = (MR_Integer) 0;
                  }
                  succeeded = MR_TRUE;
                }
              }
              break;
            case (MR_Integer) 2:
              {
                MR_Integer ArgX1_9 = ((MR_Integer) ((MR_hl_field(MR_mktag(2), HeadVar__2_2, (MR_Integer) 0))));
                MR_Integer ArgY1_10;

                succeeded = ((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 2);
                if (succeeded)
                {
                  ArgY1_10 = ((MR_Integer) ((MR_hl_field(MR_mktag(2), HeadVar__3_3, (MR_Integer) 0))));
                  succeeded = (ArgX1_9 < ArgY1_10);
                  if (succeeded)
                    Var_6 = (MR_Integer) 1;
                  else
                  {
                    succeeded = (ArgX1_9 > ArgY1_10);
                    if (succeeded)
                      Var_6 = (MR_Integer) 2;
                    else
                      Var_6 = (MR_Integer) 0;
                  }
                  succeeded = MR_TRUE;
                }
              }
              break;
            case (MR_Integer) 3:
              switch (((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 0))))) {
                default: /*NOTREACHED*/ MR_assert(0);
                case (MR_Integer) 0:
                  {
                    MR_Word TypeInfo_34_34;
                    MR_Word ArgX1_11 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 1))));
                    MR_Word ArgY1_12;

                    succeeded = ((((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 0)))) == (MR_Integer) 0)));
                    if (succeeded)
                    {
                      ArgY1_12 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 1))));
                      TypeInfo_34_34 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[23]);
                      mercury__builtin__compare_3_p_0(TypeInfo_34_34, &Var_6, ((MR_Box) (ArgX1_11)), ((MR_Box) (ArgY1_12)));
                      succeeded = MR_TRUE;
                    }
                  }
                  break;
                case (MR_Integer) 1:
                  {
                    MR_Word TypeInfo_35_35;
                    MR_Word ArgX1_13 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 1))));
                    MR_Word ArgY1_14;

                    succeeded = ((((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 0)))) == (MR_Integer) 1)));
                    if (succeeded)
                    {
                      ArgY1_14 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 1))));
                      TypeInfo_35_35 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[24]);
                      mercury__builtin__compare_3_p_0(TypeInfo_35_35, &Var_6, ((MR_Box) (ArgX1_13)), ((MR_Box) (ArgY1_14)));
                      succeeded = MR_TRUE;
                    }
                  }
                  break;
                case (MR_Integer) 2:
                  {
                    MR_Word TypeInfo_36_36;
                    MR_Word ArgX1_15 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 1))));
                    MR_Word ArgY1_16;

                    succeeded = ((((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 0)))) == (MR_Integer) 2)));
                    if (succeeded)
                    {
                      ArgY1_16 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 1))));
                      TypeInfo_36_36 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[24]);
                      mercury__builtin__compare_3_p_0(TypeInfo_36_36, &Var_6, ((MR_Box) (ArgX1_15)), ((MR_Box) (ArgY1_16)));
                      succeeded = MR_TRUE;
                    }
                  }
                  break;
                case (MR_Integer) 3:
                  {
                    MR_Integer ArgX1_17 = ((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 1))));
                    MR_Integer ArgY1_18;

                    succeeded = ((((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 0)))) == (MR_Integer) 3)));
                    if (succeeded)
                    {
                      ArgY1_18 = ((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 1))));
                      succeeded = (ArgX1_17 < ArgY1_18);
                      if (succeeded)
                        Var_6 = (MR_Integer) 1;
                      else
                      {
                        succeeded = (ArgX1_17 > ArgY1_18);
                        if (succeeded)
                          Var_6 = (MR_Integer) 2;
                        else
                          Var_6 = (MR_Integer) 0;
                      }
                      succeeded = MR_TRUE;
                    }
                  }
                  break;
                case (MR_Integer) 4:
                  {
                    MR_Integer ArgX1_19 = ((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 1))));
                    MR_Integer ArgY1_20;

                    succeeded = ((((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 0)))) == (MR_Integer) 4)));
                    if (succeeded)
                    {
                      ArgY1_20 = ((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 1))));
                      succeeded = (ArgX1_19 < ArgY1_20);
                      if (succeeded)
                        Var_6 = (MR_Integer) 1;
                      else
                      {
                        succeeded = (ArgX1_19 > ArgY1_20);
                        if (succeeded)
                          Var_6 = (MR_Integer) 2;
                        else
                          Var_6 = (MR_Integer) 0;
                      }
                      succeeded = MR_TRUE;
                    }
                  }
                  break;
                case (MR_Integer) 5:
                  {
                    MR_Integer ArgX1_21 = ((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 1))));
                    MR_Integer ArgY1_22;

                    succeeded = ((((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 0)))) == (MR_Integer) 5)));
                    if (succeeded)
                    {
                      ArgY1_22 = ((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 1))));
                      succeeded = (ArgX1_21 < ArgY1_22);
                      if (succeeded)
                        Var_6 = (MR_Integer) 1;
                      else
                      {
                        succeeded = (ArgX1_21 > ArgY1_22);
                        if (succeeded)
                          Var_6 = (MR_Integer) 2;
                        else
                          Var_6 = (MR_Integer) 0;
                      }
                      succeeded = MR_TRUE;
                    }
                  }
                  break;
                case (MR_Integer) 6:
                  {
                    MR_Integer ArgX1_23 = ((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 1))));
                    MR_Integer ArgY1_24;
                    MR_Word ArgX2_26 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 2))));
                    MR_Word ArgY2_27;
                    MR_Word SubResult1_25;

                    succeeded = ((((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 0)))) == (MR_Integer) 6)));
                    if (succeeded)
                    {
                      ArgY1_24 = ((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 1))));
                      ArgY2_27 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 2))));
                      succeeded = (ArgX1_23 < ArgY1_24);
                      if (succeeded)
                      {
                        SubResult1_25 = (MR_Integer) 1;
                        succeeded = MR_TRUE;
                      }
                      else
                      {
                        succeeded = (ArgX1_23 > ArgY1_24);
                        if (succeeded)
                        {
                          SubResult1_25 = (MR_Integer) 2;
                          succeeded = MR_TRUE;
                        }
                        else
                        {
                          succeeded = MR_TRUE;
                          succeeded = !(succeeded);
                          if (succeeded)
                          {
                            SubResult1_25 = (MR_Integer) 0;
                            succeeded = MR_TRUE;
                          }
                        }
                      }
                      if (succeeded)
                        Var_6 = SubResult1_25;
                      else
                        mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[24]), &Var_6, ((MR_Box) (ArgX2_26)), ((MR_Box) (ArgY2_27)));
                      succeeded = MR_TRUE;
                    }
                  }
                  break;
                case (MR_Integer) 7:
                  {
                    MR_Integer ArgX1_28 = ((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 1))));
                    MR_Integer ArgY1_29;

                    succeeded = ((((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 0)))) == (MR_Integer) 7)));
                    if (succeeded)
                    {
                      ArgY1_29 = ((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 1))));
                      succeeded = (ArgX1_28 < ArgY1_29);
                      if (succeeded)
                        Var_6 = (MR_Integer) 1;
                      else
                      {
                        succeeded = (ArgX1_28 > ArgY1_29);
                        if (succeeded)
                          Var_6 = (MR_Integer) 2;
                        else
                          Var_6 = (MR_Integer) 0;
                      }
                      succeeded = MR_TRUE;
                    }
                  }
                  break;
              }
              break;
          }
          if (succeeded)
            *HeadVar__1_1 = Var_6;
          else
            {
              mercury__private_builtin__compare_error_0_p_0();
              return;
            }
        }
      }
    }
  }
}

void MR_CALL 
hlds__hlds_pred____Index____pred_transformation_0_0(
  MR_Word HeadVar__1_1,
  MR_Integer * HeadVar__2_2)
{
  switch (MR_tag((MR_Word) HeadVar__1_1)) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 0:
      switch (MR_unmkbody(HeadVar__1_1)) {
        default: /*NOTREACHED*/ MR_assert(0);
        case (MR_Integer) 0:
          *HeadVar__2_2 = (MR_Integer) 8;
          break;
        case (MR_Integer) 1:
          *HeadVar__2_2 = (MR_Integer) 9;
          break;
        case (MR_Integer) 2:
          *HeadVar__2_2 = (MR_Integer) 11;
          break;
        case (MR_Integer) 3:
          *HeadVar__2_2 = (MR_Integer) 12;
          break;
        case (MR_Integer) 4:
          *HeadVar__2_2 = (MR_Integer) 14;
          break;
        case (MR_Integer) 5:
          *HeadVar__2_2 = (MR_Integer) 15;
          break;
        case (MR_Integer) 6:
          *HeadVar__2_2 = (MR_Integer) 16;
          break;
      }
      break;
    case (MR_Integer) 1:
      *HeadVar__2_2 = (MR_Integer) 0;
      break;
    case (MR_Integer) 2:
      *HeadVar__2_2 = (MR_Integer) 1;
      break;
    case (MR_Integer) 3:
      switch (((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__1_1, (MR_Integer) 0))))) {
        default: /*NOTREACHED*/ MR_assert(0);
        case (MR_Integer) 0:
          *HeadVar__2_2 = (MR_Integer) 2;
          break;
        case (MR_Integer) 1:
          *HeadVar__2_2 = (MR_Integer) 3;
          break;
        case (MR_Integer) 2:
          *HeadVar__2_2 = (MR_Integer) 4;
          break;
        case (MR_Integer) 3:
          *HeadVar__2_2 = (MR_Integer) 5;
          break;
        case (MR_Integer) 4:
          *HeadVar__2_2 = (MR_Integer) 6;
          break;
        case (MR_Integer) 5:
          *HeadVar__2_2 = (MR_Integer) 7;
          break;
        case (MR_Integer) 6:
          *HeadVar__2_2 = (MR_Integer) 10;
          break;
        case (MR_Integer) 7:
          *HeadVar__2_2 = (MR_Integer) 13;
          break;
      }
      break;
  }
}

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____pred_creation_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____pred_creation_0_0(
  MR_Word HeadVar__2_1,
  MR_Word HeadVar__2_2)
{
  {
    MR_bool succeeded = (HeadVar__2_1 == HeadVar__2_2);

    return succeeded;
  }
}

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_22 = (MR_Integer) (HeadVar__2_2);
    MR_Integer CastY_23 = (MR_Integer) (HeadVar__3_3);

    succeeded = (CastX_22 == CastY_23);
    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:
          {
            MR_Word Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));

            switch (MR_tag((MR_Word) HeadVar__3_3)) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 0:
                {
                  MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 0))));

                  parse_tree__prog_data____Compare____type_ctor_0_0(HeadVar__1_1, Var_27, ArgY1_5);
                }
                break;
              case (MR_Integer) 1:
                *HeadVar__1_1 = (MR_Integer) 1;
                break;
              case (MR_Integer) 2:
                *HeadVar__1_1 = (MR_Integer) 1;
                break;
            }
          }
          break;
        case (MR_Integer) 1:
          {
            MR_Word Var_29 = ((MR_Word) ((MR_hl_field(MR_mktag(1), HeadVar__2_2, (MR_Integer) 0))));

            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 ArgY1_13 = ((MR_Word) ((MR_hl_field(MR_mktag(1), HeadVar__3_3, (MR_Integer) 0))));

                  parse_tree__prog_data____Compare____type_ctor_0_0(HeadVar__1_1, Var_29, ArgY1_13);
                }
                break;
              case (MR_Integer) 2:
                *HeadVar__1_1 = (MR_Integer) 1;
                break;
            }
          }
          break;
        case (MR_Integer) 2:
          {
            MR_Word Var_28 = ((MR_Word) ((MR_hl_field(MR_mktag(2), HeadVar__2_2, (MR_Integer) 0))));

            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:
                *HeadVar__1_1 = (MR_Integer) 2;
                break;
              case (MR_Integer) 2:
                {
                  MR_Word ArgY1_21 = ((MR_Word) ((MR_hl_field(MR_mktag(2), HeadVar__3_3, (MR_Integer) 0))));

                  parse_tree__prog_data____Compare____type_ctor_0_0(HeadVar__1_1, Var_28, ArgY1_21);
                }
                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(MR_mktag(0), HeadVar__1_1, (MR_Integer) 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(MR_mktag(0), HeadVar__2_2, (MR_Integer) 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(MR_mktag(1), HeadVar__1_1, (MR_Integer) 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(MR_mktag(1), HeadVar__2_2, (MR_Integer) 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(MR_mktag(2), HeadVar__1_1, (MR_Integer) 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(MR_mktag(2), HeadVar__2_2, (MR_Integer) 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__2_1,
  MR_Word HeadVar__2_2)
{
  {
    MR_bool succeeded = (HeadVar__2_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__2_1,
  MR_Word HeadVar__2_2)
{
  {
    MR_bool succeeded = (HeadVar__2_1 == HeadVar__2_2);

    return succeeded;
  }
}

void MR_CALL 
hlds__hlds_pred____Compare____need_to_requantify_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____need_to_requantify_0_0(
  MR_Word HeadVar__2_1,
  MR_Word HeadVar__2_2)
{
  {
    MR_bool succeeded = (HeadVar__2_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__2_1,
  MR_Word HeadVar__2_2)
{
  {
    MR_bool succeeded = (HeadVar__2_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__2_1,
  MR_Word HeadVar__2_2)
{
  {
    MR_bool succeeded = (HeadVar__2_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(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 0))));
      MR_Word ArgX2_7 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));
      MR_Word ArgY2_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 1))));
      MR_Word ArgX3_10 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 2))));
      MR_Word ArgY3_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 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(MR_mktag(0), HeadVar__1_1, (MR_Integer) 0))));
      MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_Word ArgX2_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 1))));
      MR_Word ArgY2_6 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));
      MR_Word ArgX3_7 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 2))));
      MR_Word ArgY3_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 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(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 0))));
      MR_Word ArgX2_7 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));
      MR_Word ArgY2_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 1))));
      MR_Word ArgX3_10 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 2))));
      MR_Word ArgY3_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 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(MR_mktag(0), HeadVar__1_1, (MR_Integer) 0))));
      MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_Word ArgX2_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 1))));
      MR_Word ArgY2_6 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));
      MR_Word ArgX3_7 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 2))));
      MR_Word ArgY3_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 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_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 ((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
    {
      MR_Word Var_11 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(1), HeadVar__2_2, (MR_Integer) 0))) & (MR_Integer) 3);

      if ((HeadVar__3_3 == (MR_Word) ((MR_Unsigned) 0U)))
        *HeadVar__1_1 = (MR_Integer) 2;
      else
      {
        MR_Word ArgY1_7 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(1), HeadVar__3_3, (MR_Integer) 0))) & (MR_Integer) 3);
        MR_Integer Var_12 = (MR_Integer) (Var_11);
        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;
        }
      }
    }
  }
}

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_3 = (MR_Integer) (HeadVar__1_1);
      MR_Integer CastY_4 = (MR_Integer) (HeadVar__2_2);

      succeeded = (CastY_4 == CastX_3);
    }
    else
    {
      MR_Word ArgX1_5 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(1), HeadVar__1_1, (MR_Integer) 0))) & (MR_Integer) 3);
      MR_Word ArgY1_6;

      succeeded = (HeadVar__2_2 != (MR_Word) ((MR_Unsigned) 0U));
      if (succeeded)
      {
        ArgY1_6 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(1), HeadVar__2_2, (MR_Integer) 0))) & (MR_Integer) 3);
        succeeded = (ArgX1_5 == ArgY1_6);
      }
    }
    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(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 0))));
      MR_Word ArgX2_7 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));
      MR_Word ArgY2_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 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(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_String ArgY1_5 = ((MR_String) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 0))));
      MR_Integer ArgX2_7 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));
      MR_Integer ArgY2_8 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 1))));
      MR_Word ArgX3_10 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 2))) & (MR_Integer) 1);
      MR_Word ArgY3_11 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 2))) & (MR_Integer) 1);
      MR_Word ArgX4_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 3))));
      MR_Word ArgY4_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 3))));
      MR_Word ArgX5_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 4))));
      MR_Word ArgY5_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 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;
          }
          else
          {
            succeeded = MR_TRUE;
            succeeded = !(succeeded);
            if (succeeded)
            {
              SubResult2_9 = (MR_Integer) 0;
              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;
            }
            else
            {
              succeeded = MR_TRUE;
              succeeded = !(succeeded);
              if (succeeded)
              {
                SubResult3_12 = (MR_Integer) 0;
                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(MR_mktag(0), HeadVar__1_1, (MR_Integer) 0))));
      MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_Word ArgX2_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 1))));
      MR_Word ArgY2_6 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 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(MR_mktag(0), HeadVar__1_1, (MR_Integer) 0))));
      MR_String ArgY1_4 = ((MR_String) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_Integer ArgX2_5 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 1))));
      MR_Integer ArgY2_6 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));
      MR_Word ArgX3_7 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 2))) & (MR_Integer) 1);
      MR_Word ArgY3_8 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 2))) & (MR_Integer) 1);
      MR_Word ArgX4_9 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 3))));
      MR_Word ArgY4_10 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 3))));
      MR_Word ArgX5_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 4))));
      MR_Word ArgY5_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 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(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 0))));
      MR_Word ArgX2_7 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));
      MR_Word ArgY2_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 1))));
      MR_Word ArgX3_10 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 2))));
      MR_Word ArgY3_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 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(MR_mktag(0), HeadVar__1_1, (MR_Integer) 0))));
      MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_Word ArgX2_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 1))));
      MR_Word ArgY2_6 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));
      MR_Word ArgX3_7 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 2))));
      MR_Word ArgY3_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 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__2_1,
  MR_Word HeadVar__2_2)
{
  {
    MR_bool succeeded = (HeadVar__2_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(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))) >> 1)) & (MR_Integer) 1);
      MR_Word ArgY1_5 = ((((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 0))) >> 1)) & (MR_Integer) 1);
      MR_Word ArgX2_7 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))) & (MR_Integer) 1);
      MR_Word ArgY2_8 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 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;
        }
        else
        {
          succeeded = MR_TRUE;
          succeeded = !(succeeded);
          if (succeeded)
          {
            SubResult1_6 = (MR_Integer) 0;
            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(MR_mktag(0), HeadVar__1_1, (MR_Integer) 0))) >> 1)) & (MR_Integer) 1);
      MR_Word ArgY1_4 = ((((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))) >> 1)) & (MR_Integer) 1);
      MR_Word ArgX2_5 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 0))) & (MR_Integer) 1);
      MR_Word ArgY2_6 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 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__2_1,
  MR_Word HeadVar__2_2)
{
  {
    MR_bool succeeded = (HeadVar__2_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__2_1,
  MR_Word HeadVar__2_2)
{
  {
    MR_bool succeeded = (HeadVar__2_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__2_1,
  MR_Word HeadVar__2_2)
{
  {
    MR_bool succeeded = (HeadVar__2_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_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
    if (((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 1))
    {
      MR_Word Var_16 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(1), HeadVar__2_2, (MR_Integer) 0))) & (MR_Integer) 3);

      if (((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 1))
      {
        MR_Word ArgY1_11 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(1), HeadVar__3_3, (MR_Integer) 0))) & (MR_Integer) 3);
        MR_Integer Var_18 = (MR_Integer) (Var_16);
        MR_Integer Var_19 = (MR_Integer) (ArgY1_11);

        succeeded = (Var_18 < Var_19);
        if (succeeded)
          *HeadVar__1_1 = (MR_Integer) 1;
        else
        {
          succeeded = (Var_18 > Var_19);
          if (succeeded)
            *HeadVar__1_1 = (MR_Integer) 2;
          else
            *HeadVar__1_1 = (MR_Integer) 0;
        }
      }
      else
        *HeadVar__1_1 = (MR_Integer) 2;
    }
    else
    {
      MR_Word Var_17 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))) & (MR_Integer) 3);

      if (((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 1))
        *HeadVar__1_1 = (MR_Integer) 1;
      else
      {
        MR_Word ArgY1_5 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 0))) & (MR_Integer) 3);
        MR_Integer Var_20 = (MR_Integer) (Var_17);
        MR_Integer Var_21 = (MR_Integer) (ArgY1_5);

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

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__2_1,
  MR_Word HeadVar__2_2)
{
  {
    MR_bool succeeded = (HeadVar__2_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(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 0))));
      MR_Word ArgX2_7 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));
      MR_Word ArgY2_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 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[10]), 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(MR_mktag(0), HeadVar__1_1, (MR_Integer) 0))));
      MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_Word ArgX2_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 1))));
      MR_Word ArgY2_6 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 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[10]);
        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_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
    if (((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 0))
    {
      MR_Word Var_16 = (MR_Word) ((MR_Word) (HeadVar__2_2));

      if (((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 0))
      {
        MR_Word ArgY1_5 = (MR_Word) ((MR_Word) (HeadVar__3_3));

        hlds__hlds_pred____Compare____pred_proc_id_0_0(HeadVar__1_1, Var_16, ArgY1_5);
      }
      else
        *HeadVar__1_1 = (MR_Integer) 1;
    }
    else
    {
      MR_Word Var_17 = (MR_Word) (MR_body((MR_Word) (HeadVar__2_2), (MR_Integer) 1));

      if (((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 0))
        *HeadVar__1_1 = (MR_Integer) 2;
      else
      {
        MR_Word ArgY1_11 = (MR_Word) (MR_body((MR_Word) (HeadVar__3_3), (MR_Integer) 1));

        hlds__hlds_pred____Compare____pred_proc_id_0_0(HeadVar__1_1, Var_17, ArgY1_11);
      }
    }
  }
}

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(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 0))));
      MR_Integer ArgX2_7 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));
      MR_Integer ArgY2_8 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (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;
        }
        else
        {
          succeeded = MR_TRUE;
          succeeded = !(succeeded);
          if (succeeded)
          {
            SubResult1_6 = (MR_Integer) 0;
            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(MR_mktag(0), HeadVar__1_1, (MR_Integer) 0))));
      MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_Integer ArgX2_5 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 1))));
      MR_Integer ArgY2_6 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 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(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 0))));
      MR_Word ArgX2_7 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));
      MR_Word ArgY2_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 1))));
      MR_Word ArgX3_10 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 2))));
      MR_Word ArgY3_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 2))));
      MR_Word SubResult1_6;

      mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[8]), &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[9]), &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(MR_mktag(0), HeadVar__1_1, (MR_Integer) 0))));
      MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_Word ArgX2_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 1))));
      MR_Word ArgY2_6 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));
      MR_Word ArgX3_7 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 2))));
      MR_Word ArgY3_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 2))));

      succeeded = mercury__builtin__unify_2_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[8]), ((MR_Box) (ArgX1_3)), ((MR_Box) (ArgY1_4)));
      if (succeeded)
      {
        TypeInfo_12_12 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[9]);
        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_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
    {
      MR_Word ArgX1_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 0))));
      MR_Word ArgX2_7 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));
      MR_Word ArgY2_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 1))));
      MR_Word ArgX3_10 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 2))));
      MR_Word ArgY3_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 2))));
      MR_Word ArgX4_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 3))));
      MR_Word ArgY4_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 3))));
      MR_Word ArgX5_16 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 4))) & (MR_Integer) 7);
      MR_Word ArgY5_17 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 4))) & (MR_Integer) 7);
      MR_Word ArgX6_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 5))));
      MR_Word ArgY6_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 5))));
      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;

            mercury__builtin__compare_3_p_0((MR_Word) (&hlds__vartypes__hlds__vartypes__type_ctor_info_vartypes_0), &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_29 = (MR_Integer) (ArgX5_16);
              MR_Integer Var_30 = (MR_Integer) (ArgY5_17);

              succeeded = (Var_29 < Var_30);
              if (succeeded)
              {
                SubResult5_18 = (MR_Integer) 1;
                succeeded = MR_TRUE;
              }
              else
              {
                succeeded = (Var_29 > Var_30);
                if (succeeded)
                {
                  SubResult5_18 = (MR_Integer) 2;
                  succeeded = MR_TRUE;
                }
                else
                {
                  succeeded = MR_TRUE;
                  succeeded = !(succeeded);
                  if (succeeded)
                  {
                    SubResult5_18 = (MR_Integer) 0;
                    succeeded = MR_TRUE;
                  }
                }
              }
              if (succeeded)
                *HeadVar__1_1 = SubResult5_18;
              else
                mercury__builtin__compare_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[7]), HeadVar__1_1, ((MR_Box) (ArgX6_19)), ((MR_Box) (ArgY6_20)));
            }
          }
        }
      }
    }
  }
}

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_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
    {
      MR_Word TypeInfo_18_18;
      MR_Word TypeCtorInfo_20_20;
      MR_Word TypeInfo_21_21;
      MR_Word ArgX1_3 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 0))));
      MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_Word ArgX2_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 1))));
      MR_Word ArgY2_6 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));
      MR_Word ArgX3_7 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 2))));
      MR_Word ArgY3_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 2))));
      MR_Word ArgX4_9 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 3))));
      MR_Word ArgY4_10 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 3))));
      MR_Word ArgX5_11 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 4))) & (MR_Integer) 7);
      MR_Word ArgY5_12 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 4))) & (MR_Integer) 7);
      MR_Word ArgX6_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 5))));
      MR_Word ArgY6_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 5))));

      succeeded = hlds__hlds_goal____Unify____hlds_goal_0_0(ArgX1_3, ArgY1_4);
      if (succeeded)
      {
        TypeInfo_18_18 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[6]);
        succeeded = mercury__builtin__unify_2_p_0(TypeInfo_18_18, ((MR_Box) (ArgX2_5)), ((MR_Box) (ArgY2_6)));
        if (succeeded)
        {
          succeeded = hlds__instmap____Unify____instmap_0_0(ArgX3_7, ArgY3_8);
          if (succeeded)
          {
            TypeCtorInfo_20_20 = (MR_Word) (&hlds__vartypes__hlds__vartypes__type_ctor_info_vartypes_0);
            succeeded = mercury__builtin__unify_2_p_0(TypeCtorInfo_20_20, ((MR_Box) (ArgX4_9)), ((MR_Box) (ArgY4_10)));
            if (succeeded)
            {
              succeeded = (ArgX5_11 == ArgY5_12);
              if (succeeded)
              {
                TypeInfo_21_21 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[7]);
                succeeded = mercury__builtin__unify_2_p_0(TypeInfo_21_21, ((MR_Box) (ArgX6_13)), ((MR_Box) (ArgY6_14)));
              }
            }
          }
        }
      }
    }
    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__2_1,
  MR_Word HeadVar__2_2)
{
  {
    MR_bool succeeded = (HeadVar__2_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(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))) >> 1)) & (MR_Integer) 1);
      MR_Word ArgY1_5 = ((((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 0))) >> 1)) & (MR_Integer) 1);
      MR_Word ArgX2_7 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))) & (MR_Integer) 1);
      MR_Word ArgY2_8 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 0))) & (MR_Integer) 1);
      MR_Word ArgX3_10 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));
      MR_Word ArgY3_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 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;
        }
        else
        {
          succeeded = MR_TRUE;
          succeeded = !(succeeded);
          if (succeeded)
          {
            SubResult1_6 = (MR_Integer) 0;
            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;
          }
          else
          {
            succeeded = MR_TRUE;
            succeeded = !(succeeded);
            if (succeeded)
            {
              SubResult2_9 = (MR_Integer) 0;
              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(MR_mktag(0), HeadVar__1_1, (MR_Integer) 0))) >> 1)) & (MR_Integer) 1);
      MR_Word ArgY1_4 = ((((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))) >> 1)) & (MR_Integer) 1);
      MR_Word ArgX2_5 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 0))) & (MR_Integer) 1);
      MR_Word ArgY2_6 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))) & (MR_Integer) 1);
      MR_Word ArgX3_7 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 1))));
      MR_Word ArgY3_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 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__2_1,
  MR_Word HeadVar__2_2)
{
  {
    MR_bool succeeded = (HeadVar__2_1 == HeadVar__2_2);

    return succeeded;
  }
}

void MR_CALL 
hlds__hlds_pred____Compare____can_proc_succeed_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_proc_succeed_0_0(
  MR_Word HeadVar__2_1,
  MR_Word HeadVar__2_2)
{
  {
    MR_bool succeeded = (HeadVar__2_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_186 = (MR_Integer) (HeadVar__2_2);
    MR_Integer CastY_187 = (MR_Integer) (HeadVar__3_3);

    succeeded = (CastX_186 == CastY_187);
    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:
          {
            MR_Word Var_214 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 4))));
            MR_Integer Var_215 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 3))));
            MR_String Var_216 = ((MR_String) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 2))));
            MR_String Var_217 = ((MR_String) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));
            MR_Word Var_218 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));

            switch (MR_tag((MR_Word) HeadVar__3_3)) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 0:
                {
                  MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 0))));
                  MR_String ArgY2_8 = ((MR_String) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 1))));
                  MR_String ArgY3_11 = ((MR_String) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 2))));
                  MR_Integer ArgY4_14 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 3))));
                  MR_Word ArgY5_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 4))));
                  MR_Word SubResult1_6;

                  hlds__hlds_rtti____Compare____rtti_proc_label_0_0(&SubResult1_6, Var_218, 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, Var_217, 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, Var_216, ArgY3_11);
                      succeeded = (SubResult3_12 != (MR_Integer) 0);
                      if (succeeded)
                        *HeadVar__1_1 = SubResult3_12;
                      else
                      {
                        MR_Word SubResult4_15;

                        succeeded = (Var_215 < ArgY4_14);
                        if (succeeded)
                        {
                          SubResult4_15 = (MR_Integer) 1;
                          succeeded = MR_TRUE;
                        }
                        else
                        {
                          succeeded = (Var_215 > ArgY4_14);
                          if (succeeded)
                          {
                            SubResult4_15 = (MR_Integer) 2;
                            succeeded = MR_TRUE;
                          }
                          else
                          {
                            succeeded = MR_TRUE;
                            succeeded = !(succeeded);
                            if (succeeded)
                            {
                              SubResult4_15 = (MR_Integer) 0;
                              succeeded = MR_TRUE;
                            }
                          }
                        }
                        if (succeeded)
                          *HeadVar__1_1 = SubResult4_15;
                        else
                          mdbcomp__goal_path____Compare____forward_goal_path_0_0(HeadVar__1_1, Var_214, ArgY5_17);
                      }
                    }
                  }
                }
                break;
              case (MR_Integer) 1:
                *HeadVar__1_1 = (MR_Integer) 1;
                break;
              case (MR_Integer) 2:
                *HeadVar__1_1 = (MR_Integer) 1;
                break;
              case (MR_Integer) 3:
                switch (((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 0))))) {
                  default: /*NOTREACHED*/ MR_assert(0);
                  case (MR_Integer) 0:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                  case (MR_Integer) 1:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                }
                break;
            }
          }
          break;
        case (MR_Integer) 1:
          {
            MR_Word Var_219 = ((MR_Word) ((MR_hl_field(MR_mktag(1), HeadVar__2_2, (MR_Integer) 2))));
            MR_Integer Var_220 = ((MR_Integer) ((MR_hl_field(MR_mktag(1), HeadVar__2_2, (MR_Integer) 1))));
            MR_String Var_221 = ((MR_String) ((MR_hl_field(MR_mktag(1), HeadVar__2_2, (MR_Integer) 0))));

            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 ArgY1_59 = ((MR_String) ((MR_hl_field(MR_mktag(1), HeadVar__3_3, (MR_Integer) 0))));
                  MR_Integer ArgY2_62 = ((MR_Integer) ((MR_hl_field(MR_mktag(1), HeadVar__3_3, (MR_Integer) 1))));
                  MR_Word ArgY3_65 = ((MR_Word) ((MR_hl_field(MR_mktag(1), HeadVar__3_3, (MR_Integer) 2))));
                  MR_Word SubResult1_60;

                  mercury__private_builtin__builtin_compare_string_3_p_0(&SubResult1_60, Var_221, ArgY1_59);
                  succeeded = (SubResult1_60 != (MR_Integer) 0);
                  if (succeeded)
                    *HeadVar__1_1 = SubResult1_60;
                  else
                  {
                    MR_Word SubResult2_63;

                    succeeded = (Var_220 < ArgY2_62);
                    if (succeeded)
                    {
                      SubResult2_63 = (MR_Integer) 1;
                      succeeded = MR_TRUE;
                    }
                    else
                    {
                      succeeded = (Var_220 > ArgY2_62);
                      if (succeeded)
                      {
                        SubResult2_63 = (MR_Integer) 2;
                        succeeded = MR_TRUE;
                      }
                      else
                      {
                        succeeded = MR_TRUE;
                        succeeded = !(succeeded);
                        if (succeeded)
                        {
                          SubResult2_63 = (MR_Integer) 0;
                          succeeded = MR_TRUE;
                        }
                      }
                    }
                    if (succeeded)
                      *HeadVar__1_1 = SubResult2_63;
                    else
                      mdbcomp__goal_path____Compare____forward_goal_path_0_0(HeadVar__1_1, Var_219, ArgY3_65);
                  }
                }
                break;
              case (MR_Integer) 2:
                *HeadVar__1_1 = (MR_Integer) 1;
                break;
              case (MR_Integer) 3:
                switch (((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 0))))) {
                  default: /*NOTREACHED*/ MR_assert(0);
                  case (MR_Integer) 0:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                  case (MR_Integer) 1:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                }
                break;
            }
          }
          break;
        case (MR_Integer) 2:
          {
            MR_Word Var_208 = ((MR_Word) ((MR_hl_field(MR_mktag(2), HeadVar__2_2, (MR_Integer) 2))));
            MR_Integer Var_209 = ((MR_Integer) ((MR_hl_field(MR_mktag(2), HeadVar__2_2, (MR_Integer) 1))));
            MR_String Var_210 = ((MR_String) ((MR_hl_field(MR_mktag(2), HeadVar__2_2, (MR_Integer) 0))));

            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:
                *HeadVar__1_1 = (MR_Integer) 2;
                break;
              case (MR_Integer) 2:
                {
                  MR_String ArgY1_99 = ((MR_String) ((MR_hl_field(MR_mktag(2), HeadVar__3_3, (MR_Integer) 0))));
                  MR_Integer ArgY2_102 = ((MR_Integer) ((MR_hl_field(MR_mktag(2), HeadVar__3_3, (MR_Integer) 1))));
                  MR_Word ArgY3_105 = ((MR_Word) ((MR_hl_field(MR_mktag(2), HeadVar__3_3, (MR_Integer) 2))));
                  MR_Word SubResult1_100;

                  mercury__private_builtin__builtin_compare_string_3_p_0(&SubResult1_100, Var_210, ArgY1_99);
                  succeeded = (SubResult1_100 != (MR_Integer) 0);
                  if (succeeded)
                    *HeadVar__1_1 = SubResult1_100;
                  else
                  {
                    MR_Word SubResult2_103;

                    succeeded = (Var_209 < ArgY2_102);
                    if (succeeded)
                    {
                      SubResult2_103 = (MR_Integer) 1;
                      succeeded = MR_TRUE;
                    }
                    else
                    {
                      succeeded = (Var_209 > ArgY2_102);
                      if (succeeded)
                      {
                        SubResult2_103 = (MR_Integer) 2;
                        succeeded = MR_TRUE;
                      }
                      else
                      {
                        succeeded = MR_TRUE;
                        succeeded = !(succeeded);
                        if (succeeded)
                        {
                          SubResult2_103 = (MR_Integer) 0;
                          succeeded = MR_TRUE;
                        }
                      }
                    }
                    if (succeeded)
                      *HeadVar__1_1 = SubResult2_103;
                    else
                      mdbcomp__goal_path____Compare____forward_goal_path_0_0(HeadVar__1_1, Var_208, ArgY3_105);
                  }
                }
                break;
              case (MR_Integer) 3:
                switch (((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 0))))) {
                  default: /*NOTREACHED*/ MR_assert(0);
                  case (MR_Integer) 0:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                  case (MR_Integer) 1:
                    *HeadVar__1_1 = (MR_Integer) 1;
                    break;
                }
                break;
            }
          }
          break;
        case (MR_Integer) 3:
          switch (((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 0))))) {
            default: /*NOTREACHED*/ MR_assert(0);
            case (MR_Integer) 0:
              {
                MR_Word Var_211 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 3))));
                MR_Integer Var_212 = ((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 2))));
                MR_String Var_213 = ((MR_String) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (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:
                    *HeadVar__1_1 = (MR_Integer) 2;
                    break;
                  case (MR_Integer) 2:
                    *HeadVar__1_1 = (MR_Integer) 2;
                    break;
                  case (MR_Integer) 3:
                    switch (((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 0))))) {
                      default: /*NOTREACHED*/ MR_assert(0);
                      case (MR_Integer) 0:
                        {
                          MR_String ArgY1_139 = ((MR_String) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 1))));
                          MR_Integer ArgY2_142 = ((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 2))));
                          MR_Word ArgY3_145 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 3))));
                          MR_Word SubResult1_140;

                          mercury__private_builtin__builtin_compare_string_3_p_0(&SubResult1_140, Var_213, ArgY1_139);
                          succeeded = (SubResult1_140 != (MR_Integer) 0);
                          if (succeeded)
                            *HeadVar__1_1 = SubResult1_140;
                          else
                          {
                            MR_Word SubResult2_143;

                            succeeded = (Var_212 < ArgY2_142);
                            if (succeeded)
                            {
                              SubResult2_143 = (MR_Integer) 1;
                              succeeded = MR_TRUE;
                            }
                            else
                            {
                              succeeded = (Var_212 > ArgY2_142);
                              if (succeeded)
                              {
                                SubResult2_143 = (MR_Integer) 2;
                                succeeded = MR_TRUE;
                              }
                              else
                              {
                                succeeded = MR_TRUE;
                                succeeded = !(succeeded);
                                if (succeeded)
                                {
                                  SubResult2_143 = (MR_Integer) 0;
                                  succeeded = MR_TRUE;
                                }
                              }
                            }
                            if (succeeded)
                              *HeadVar__1_1 = SubResult2_143;
                            else
                              mdbcomp__goal_path____Compare____forward_goal_path_0_0(HeadVar__1_1, Var_211, ArgY3_145);
                          }
                        }
                        break;
                      case (MR_Integer) 1:
                        *HeadVar__1_1 = (MR_Integer) 1;
                        break;
                    }
                    break;
                }
              }
              break;
            case (MR_Integer) 1:
              {
                MR_Word Var_205 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 3))));
                MR_Integer Var_206 = ((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 2))));
                MR_String Var_207 = ((MR_String) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (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:
                    *HeadVar__1_1 = (MR_Integer) 2;
                    break;
                  case (MR_Integer) 2:
                    *HeadVar__1_1 = (MR_Integer) 2;
                    break;
                  case (MR_Integer) 3:
                    switch (((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 0))))) {
                      default: /*NOTREACHED*/ MR_assert(0);
                      case (MR_Integer) 0:
                        *HeadVar__1_1 = (MR_Integer) 2;
                        break;
                      case (MR_Integer) 1:
                        {
                          MR_String ArgY1_179 = ((MR_String) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 1))));
                          MR_Integer ArgY2_182 = ((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 2))));
                          MR_Word ArgY3_185 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 3))));
                          MR_Word SubResult1_180;

                          mercury__private_builtin__builtin_compare_string_3_p_0(&SubResult1_180, Var_207, ArgY1_179);
                          succeeded = (SubResult1_180 != (MR_Integer) 0);
                          if (succeeded)
                            *HeadVar__1_1 = SubResult1_180;
                          else
                          {
                            MR_Word SubResult2_183;

                            succeeded = (Var_206 < ArgY2_182);
                            if (succeeded)
                            {
                              SubResult2_183 = (MR_Integer) 1;
                              succeeded = MR_TRUE;
                            }
                            else
                            {
                              succeeded = (Var_206 > ArgY2_182);
                              if (succeeded)
                              {
                                SubResult2_183 = (MR_Integer) 2;
                                succeeded = MR_TRUE;
                              }
                              else
                              {
                                succeeded = MR_TRUE;
                                succeeded = !(succeeded);
                                if (succeeded)
                                {
                                  SubResult2_183 = (MR_Integer) 0;
                                  succeeded = MR_TRUE;
                                }
                              }
                            }
                            if (succeeded)
                              *HeadVar__1_1 = SubResult2_183;
                            else
                              mdbcomp__goal_path____Compare____forward_goal_path_0_0(HeadVar__1_1, Var_205, ArgY3_185);
                          }
                        }
                        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(MR_mktag(0), HeadVar__1_1, (MR_Integer) 0))));
            MR_Word ArgY1_4;
            MR_String ArgX2_5 = ((MR_String) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 1))));
            MR_String ArgY2_6;
            MR_String ArgX3_7 = ((MR_String) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 2))));
            MR_String ArgY3_8;
            MR_Integer ArgX4_9 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 3))));
            MR_Integer ArgY4_10;
            MR_Word ArgX5_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 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(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
              ArgY2_6 = ((MR_String) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));
              ArgY3_8 = ((MR_String) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 2))));
              ArgY4_10 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 3))));
              ArgY5_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 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(MR_mktag(1), HeadVar__1_1, (MR_Integer) 0))));
            MR_String ArgY1_14;
            MR_Integer ArgX2_15 = ((MR_Integer) ((MR_hl_field(MR_mktag(1), HeadVar__1_1, (MR_Integer) 1))));
            MR_Integer ArgY2_16;
            MR_Word ArgX3_17 = ((MR_Word) ((MR_hl_field(MR_mktag(1), HeadVar__1_1, (MR_Integer) 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(MR_mktag(1), HeadVar__2_2, (MR_Integer) 0))));
              ArgY2_16 = ((MR_Integer) ((MR_hl_field(MR_mktag(1), HeadVar__2_2, (MR_Integer) 1))));
              ArgY3_18 = ((MR_Word) ((MR_hl_field(MR_mktag(1), HeadVar__2_2, (MR_Integer) 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(MR_mktag(2), HeadVar__1_1, (MR_Integer) 0))));
            MR_String ArgY1_20;
            MR_Integer ArgX2_21 = ((MR_Integer) ((MR_hl_field(MR_mktag(2), HeadVar__1_1, (MR_Integer) 1))));
            MR_Integer ArgY2_22;
            MR_Word ArgX3_23 = ((MR_Word) ((MR_hl_field(MR_mktag(2), HeadVar__1_1, (MR_Integer) 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(MR_mktag(2), HeadVar__2_2, (MR_Integer) 0))));
              ArgY2_22 = ((MR_Integer) ((MR_hl_field(MR_mktag(2), HeadVar__2_2, (MR_Integer) 1))));
              ArgY3_24 = ((MR_Word) ((MR_hl_field(MR_mktag(2), HeadVar__2_2, (MR_Integer) 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(MR_mktag(3), HeadVar__1_1, (MR_Integer) 0))))) {
            default: /*NOTREACHED*/ MR_assert(0);
            case (MR_Integer) 0:
              {
                MR_String ArgX1_25 = ((MR_String) ((MR_hl_field(MR_mktag(3), HeadVar__1_1, (MR_Integer) 1))));
                MR_String ArgY1_26;
                MR_Integer ArgX2_27 = ((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__1_1, (MR_Integer) 2))));
                MR_Integer ArgY2_28;
                MR_Word ArgX3_29 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__1_1, (MR_Integer) 3))));
                MR_Word ArgY3_30;

                succeeded = ((((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 0)))) == (MR_Integer) 0)));
                if (succeeded)
                {
                  ArgY1_26 = ((MR_String) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 1))));
                  ArgY2_28 = ((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 2))));
                  ArgY3_30 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 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(MR_mktag(3), HeadVar__1_1, (MR_Integer) 1))));
                MR_String ArgY1_32;
                MR_Integer ArgX2_33 = ((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__1_1, (MR_Integer) 2))));
                MR_Integer ArgY2_34;
                MR_Word ArgX3_35 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__1_1, (MR_Integer) 3))));
                MR_Word ArgY3_36;

                succeeded = ((((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 0)))) == (MR_Integer) 1)));
                if (succeeded)
                {
                  ArgY1_32 = ((MR_String) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 1))));
                  ArgY2_34 = ((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 2))));
                  ArgY3_36 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 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_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
    if (((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 1))
    {
      MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(1), HeadVar__2_2, (MR_Integer) 0))));

      if (((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 1))
      {
        MR_Word ArgY1_11 = ((MR_Word) ((MR_hl_field(MR_mktag(1), HeadVar__3_3, (MR_Integer) 0))));

        hlds__hlds_pred____Compare____generic_call_id_0_0(HeadVar__1_1, Var_16, ArgY1_11);
      }
      else
        *HeadVar__1_1 = (MR_Integer) 2;
    }
    else
    {
      MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));

      if (((MR_tag((MR_Word) HeadVar__3_3)) == (MR_Integer) 1))
        *HeadVar__1_1 = (MR_Integer) 1;
      else
      {
        MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 0))));

        parse_tree__prog_data____Compare____pf_sym_name_arity_0_0(HeadVar__1_1, Var_17, ArgY1_5);
      }
    }
  }
}

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_63 = (MR_Integer) (HeadVar__2_2);
    MR_Integer CastY_64 = (MR_Integer) (HeadVar__3_3);

    succeeded = (CastX_63 == CastY_64);
    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:
          {
            MR_Integer Var_76 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));
            MR_Word Var_77 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))) & (MR_Integer) 1);
            MR_Word Var_78 = ((((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))) >> 1)) & (MR_Integer) 3);

            switch (MR_tag((MR_Word) HeadVar__3_3)) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 0:
                {
                  MR_Word ArgY1_5 = ((((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 0))) >> 1)) & (MR_Integer) 3);
                  MR_Word ArgY2_8 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 0))) & (MR_Integer) 1);
                  MR_Integer ArgY3_11 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 1))));
                  MR_Word SubResult1_6;
                  MR_Integer Var_81 = (MR_Integer) (Var_78);
                  MR_Integer Var_82 = (MR_Integer) (ArgY1_5);

                  succeeded = (Var_81 < Var_82);
                  if (succeeded)
                  {
                    SubResult1_6 = (MR_Integer) 1;
                    succeeded = MR_TRUE;
                  }
                  else
                  {
                    succeeded = (Var_81 > Var_82);
                    if (succeeded)
                    {
                      SubResult1_6 = (MR_Integer) 2;
                      succeeded = MR_TRUE;
                    }
                    else
                    {
                      succeeded = MR_TRUE;
                      succeeded = !(succeeded);
                      if (succeeded)
                      {
                        SubResult1_6 = (MR_Integer) 0;
                        succeeded = MR_TRUE;
                      }
                    }
                  }
                  if (succeeded)
                    *HeadVar__1_1 = SubResult1_6;
                  else
                  {
                    MR_Word SubResult2_9;
                    MR_Integer Var_83 = (MR_Integer) (Var_77);
                    MR_Integer Var_84 = (MR_Integer) (ArgY2_8);

                    succeeded = (Var_83 < Var_84);
                    if (succeeded)
                    {
                      SubResult2_9 = (MR_Integer) 1;
                      succeeded = MR_TRUE;
                    }
                    else
                    {
                      succeeded = (Var_83 > Var_84);
                      if (succeeded)
                      {
                        SubResult2_9 = (MR_Integer) 2;
                        succeeded = MR_TRUE;
                      }
                      else
                      {
                        succeeded = MR_TRUE;
                        succeeded = !(succeeded);
                        if (succeeded)
                        {
                          SubResult2_9 = (MR_Integer) 0;
                          succeeded = MR_TRUE;
                        }
                      }
                    }
                    if (succeeded)
                      *HeadVar__1_1 = SubResult2_9;
                    else
                    {
                      succeeded = (Var_76 < ArgY3_11);
                      if (succeeded)
                        *HeadVar__1_1 = (MR_Integer) 1;
                      else
                      {
                        succeeded = (Var_76 > ArgY3_11);
                        if (succeeded)
                          *HeadVar__1_1 = (MR_Integer) 2;
                        else
                          *HeadVar__1_1 = (MR_Integer) 0;
                      }
                    }
                  }
                }
                break;
              case (MR_Integer) 1:
                *HeadVar__1_1 = (MR_Integer) 1;
                break;
              case (MR_Integer) 2:
                *HeadVar__1_1 = (MR_Integer) 1;
                break;
              case (MR_Integer) 3:
                *HeadVar__1_1 = (MR_Integer) 1;
                break;
            }
          }
          break;
        case (MR_Integer) 1:
          {
            MR_Word Var_73 = ((MR_Word) ((MR_hl_field(MR_mktag(1), HeadVar__2_2, (MR_Integer) 1))));
            MR_Word Var_74 = ((MR_Word) ((MR_hl_field(MR_mktag(1), HeadVar__2_2, (MR_Integer) 0))));

            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 ArgY1_31 = ((MR_Word) ((MR_hl_field(MR_mktag(1), HeadVar__3_3, (MR_Integer) 0))));
                  MR_Word ArgY2_34 = ((MR_Word) ((MR_hl_field(MR_mktag(1), HeadVar__3_3, (MR_Integer) 1))));
                  MR_Word SubResult1_32;

                  parse_tree__prog_data____Compare____class_id_0_0(&SubResult1_32, Var_74, ArgY1_31);
                  succeeded = (SubResult1_32 != (MR_Integer) 0);
                  if (succeeded)
                    *HeadVar__1_1 = SubResult1_32;
                  else
                    parse_tree__prog_data____Compare____pf_sym_name_arity_0_0(HeadVar__1_1, Var_73, ArgY2_34);
                }
                break;
              case (MR_Integer) 2:
                *HeadVar__1_1 = (MR_Integer) 1;
                break;
              case (MR_Integer) 3:
                *HeadVar__1_1 = (MR_Integer) 1;
                break;
            }
          }
          break;
        case (MR_Integer) 2:
          {
            MR_String Var_75 = ((MR_String) ((MR_hl_field(MR_mktag(2), HeadVar__2_2, (MR_Integer) 0))));

            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:
                *HeadVar__1_1 = (MR_Integer) 2;
                break;
              case (MR_Integer) 2:
                {
                  MR_String ArgY1_49 = ((MR_String) ((MR_hl_field(MR_mktag(2), HeadVar__3_3, (MR_Integer) 0))));

                  mercury__private_builtin__builtin_compare_string_3_p_0(HeadVar__1_1, Var_75, ArgY1_49);
                }
                break;
              case (MR_Integer) 3:
                *HeadVar__1_1 = (MR_Integer) 1;
                break;
            }
          }
          break;
        case (MR_Integer) 3:
          {
            MR_Word Var_72 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 0))) & (MR_Integer) 7);

            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:
                *HeadVar__1_1 = (MR_Integer) 2;
                break;
              case (MR_Integer) 2:
                *HeadVar__1_1 = (MR_Integer) 2;
                break;
              case (MR_Integer) 3:
                {
                  MR_Word ArgY1_62 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(3), HeadVar__3_3, (MR_Integer) 0))) & (MR_Integer) 7);
                  MR_Integer Var_79 = (MR_Integer) (Var_72);
                  MR_Integer Var_80 = (MR_Integer) (ArgY1_62);

                  succeeded = (Var_79 < Var_80);
                  if (succeeded)
                    *HeadVar__1_1 = (MR_Integer) 1;
                  else
                  {
                    succeeded = (Var_79 > Var_80);
                    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____call_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
    if (((MR_tag((MR_Word) HeadVar__1_1)) == (MR_Integer) 1))
    {
      MR_Word ArgX1_5 = ((MR_Word) ((MR_hl_field(MR_mktag(1), HeadVar__1_1, (MR_Integer) 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(MR_mktag(1), HeadVar__2_2, (MR_Integer) 0))));
        succeeded = hlds__hlds_pred____Unify____generic_call_id_0_0(ArgX1_5, ArgY1_6);
      }
    }
    else
    {
      MR_Word ArgX1_3 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 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(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
        succeeded = parse_tree__prog_data____Unify____pf_sym_name_arity_0_0(ArgX1_3, ArgY1_4);
      }
    }
    return succeeded;
  }
}

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(MR_mktag(0), HeadVar__1_1, (MR_Integer) 0))) >> 1)) & (MR_Integer) 3);
            MR_Word ArgY1_4;
            MR_Word ArgX2_5 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 0))) & (MR_Integer) 1);
            MR_Word ArgY2_6;
            MR_Integer ArgX3_7 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 1))));
            MR_Integer ArgY3_8;

            succeeded = ((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 0);
            if (succeeded)
            {
              ArgY1_4 = ((((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))) >> 1)) & (MR_Integer) 3);
              ArgY2_6 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))) & (MR_Integer) 1);
              ArgY3_8 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));
              succeeded = (ArgX1_3 == ArgY1_4);
              if (succeeded)
              {
                succeeded = (ArgX2_5 == ArgY2_6);
                if (succeeded)
                  succeeded = (ArgX3_7 == ArgY3_8);
              }
            }
          }
          break;
        case (MR_Integer) 1:
          {
            MR_Word ArgX1_9 = ((MR_Word) ((MR_hl_field(MR_mktag(1), HeadVar__1_1, (MR_Integer) 0))));
            MR_Word ArgY1_10;
            MR_Word ArgX2_11 = ((MR_Word) ((MR_hl_field(MR_mktag(1), HeadVar__1_1, (MR_Integer) 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(MR_mktag(1), HeadVar__2_2, (MR_Integer) 0))));
              ArgY2_12 = ((MR_Word) ((MR_hl_field(MR_mktag(1), HeadVar__2_2, (MR_Integer) 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(MR_mktag(2), HeadVar__1_1, (MR_Integer) 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(MR_mktag(2), HeadVar__2_2, (MR_Integer) 0))));
              succeeded = (strcmp(ArgX1_13, ArgY1_14) == 0);
            }
          }
          break;
        case (MR_Integer) 3:
          {
            MR_Word ArgX1_15 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(3), HeadVar__1_1, (MR_Integer) 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(MR_mktag(3), HeadVar__2_2, (MR_Integer) 0))) & (MR_Integer) 7);
              succeeded = (ArgX1_15 == ArgY1_16);
            }
          }
          break;
      }
    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[7]), 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[7]), ((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(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_Word ArgY1_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 0))));
      MR_Word ArgX2_7 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))) & (MR_Integer) 3);
      MR_Word ArgY2_8 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 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(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))) & (MR_Integer) 1);
      MR_Word ArgY1_5 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (MR_Integer) 0))) & (MR_Integer) 1);
      MR_Integer ArgX2_7 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));
      MR_Integer ArgY2_8 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), HeadVar__3_3, (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;
        }
        else
        {
          succeeded = MR_TRUE;
          succeeded = !(succeeded);
          if (succeeded)
          {
            SubResult1_6 = (MR_Integer) 0;
            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(MR_mktag(0), HeadVar__1_1, (MR_Integer) 0))));
      MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_Word ArgX2_5 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 1))) & (MR_Integer) 3);
      MR_Word ArgY2_6 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 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(MR_mktag(0), HeadVar__1_1, (MR_Integer) 0))) & (MR_Integer) 1);
      MR_Word ArgY1_4 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))) & (MR_Integer) 1);
      MR_Integer ArgX2_5 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 1))));
      MR_Integer ArgY2_6 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));

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

MR_Word MR_CALL 
hlds__hlds_pred__eval_method_change_determinism_2_f_0(
  MR_Word HeadVar__1_1,
  MR_Word Detism_2)
{
  {
    MR_Word HeadVar__3_3;

    if ((HeadVar__1_1 == (MR_Word) ((MR_Unsigned) 0U)))
      HeadVar__3_3 = Detism_2;
    else
    {
      MR_Word TabledMethoed_5 = ((MR_Word) ((MR_hl_field(MR_mktag(1), HeadVar__1_1, (MR_Integer) 0))));

      switch (MR_tag((MR_Word) TabledMethoed_5)) {
        default: /*NOTREACHED*/ MR_assert(0);
        case (MR_Integer) 0:
          HeadVar__3_3 = Detism_2;
          break;
        case (MR_Integer) 1:
          HeadVar__3_3 = Detism_2;
          break;
        case (MR_Integer) 2:
          HeadVar__3_3 = Detism_2;
          break;
        case (MR_Integer) 3:
          parse_tree__prog_detism__det_conjunction_detism_3_p_0((MR_Integer) 1, Detism_2, &HeadVar__3_3);
          break;
      }
    }
    return HeadVar__3_3;
  }
}

MR_Word MR_CALL 
hlds__hlds_pred__tabled_eval_method_destroys_uniqueness_1_f_0(
  MR_Word HeadVar__1_1)
{
  {
    MR_Word HeadVar__2_2;

    switch (MR_tag((MR_Word) HeadVar__1_1)) {
      default: /*NOTREACHED*/ MR_assert(0);
      case (MR_Integer) 0:
        HeadVar__2_2 = (MR_Integer) 1;
        break;
      case (MR_Integer) 1:
        HeadVar__2_2 = (MR_Integer) 1;
        break;
      case (MR_Integer) 2:
        HeadVar__2_2 = (MR_Integer) 0;
        break;
      case (MR_Integer) 3:
        HeadVar__2_2 = (MR_Integer) 1;
        break;
    }
    return HeadVar__2_2;
  }
}

MR_Word MR_CALL 
hlds__hlds_pred__tabled_eval_method_has_per_proc_tabling_pointer_1_f_0(
  MR_Word TabledMethod_3)
{
  {
    MR_Word TablingPtr_4;

    switch (MR_tag((MR_Word) TabledMethod_3)) {
      default: /*NOTREACHED*/ MR_assert(0);
      case (MR_Integer) 0:
        TablingPtr_4 = (MR_Integer) 1;
        break;
      case (MR_Integer) 1:
        TablingPtr_4 = (MR_Integer) 1;
        break;
      case (MR_Integer) 2:
        TablingPtr_4 = (MR_Integer) 0;
        break;
      case (MR_Integer) 3:
        {
          MR_Word Var_11 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(3), TabledMethod_3, (MR_Integer) 0))) & (MR_Integer) 3);

          switch (Var_11) {
            default: /*NOTREACHED*/ MR_assert(0);
            case (MR_Integer) 1:
              TablingPtr_4 = (MR_Integer) 0;
              break;
            case (MR_Integer) 2:
              TablingPtr_4 = (MR_Integer) 1;
              break;
            case (MR_Integer) 0:
              TablingPtr_4 = (MR_Integer) 1;
              break;
          }
        }
        break;
    }
    return TablingPtr_4;
  }
}

MR_Word MR_CALL 
hlds__hlds_pred__tabled_eval_method_needs_stratification_1_f_0(
  MR_Word TabledMethod_3)
{
  {
    MR_Word NeedsStratification_4;

    switch (MR_tag((MR_Word) TabledMethod_3)) {
      default: /*NOTREACHED*/ MR_assert(0);
      case (MR_Integer) 0:
        NeedsStratification_4 = (MR_Integer) 0;
        break;
      case (MR_Integer) 1:
      case (MR_Integer) 2:
        NeedsStratification_4 = (MR_Integer) 0;
        break;
      case (MR_Integer) 3:
        NeedsStratification_4 = (MR_Integer) 1;
        break;
    }
    return NeedsStratification_4;
  }
}

MR_Word MR_CALL 
hlds__hlds_pred__valid_determinism_for_tabled_eval_method_2_f_0(
  MR_Word TabledMethod_4,
  MR_Word Detism_5)
{
  {
    MR_Word Valid_6;

    switch (MR_tag((MR_Word) TabledMethod_4)) {
      default: /*NOTREACHED*/ MR_assert(0);
      case (MR_Integer) 0:
        {
          MR_Word MaxSoln_9;
          MR_Word Var_8;

          parse_tree__prog_data__determinism_components_3_p_0(Detism_5, &Var_8, &MaxSoln_9);
          Valid_6 = ((&hlds__hlds_pred_vector_common_8[0 + MaxSoln_9]))->hlds__hlds_pred__vector_common_type_8_0__vct_8_f_0;
        }
        break;
      case (MR_Integer) 1:
        {
          MR_Word MaxSoln_9;
          MR_Word Var_8;

          parse_tree__prog_data__determinism_components_3_p_0(Detism_5, &Var_8, &MaxSoln_9);
          Valid_6 = ((&hlds__hlds_pred_vector_common_8[0 + MaxSoln_9]))->hlds__hlds_pred__vector_common_type_8_0__vct_8_f_0;
        }
        break;
      case (MR_Integer) 2:
        mercury__require__unexpected_2_p_0((MR_String) "function \140hlds.hlds_pred.valid_determinism_for_tabled_eval_method\'/2", (MR_String) "called after tabling phase");
        break;
      case (MR_Integer) 3:
        Valid_6 = ((&hlds__hlds_pred_vector_common_8[4 + Detism_5]))->hlds__hlds_pred__vector_common_type_8_0__vct_8_f_0;
        break;
    }
    return Valid_6;
  }
}

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_9 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PredInfo_3, (MR_Integer) 14))));

    Var_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 2))));
    succeeded = ((MR_tag((MR_Word) Var_5)) == (MR_Integer) 1);
    if (succeeded)
      *PromiseType_4 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(1), Var_5, (MR_Integer) 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_bool succeeded;
    MR_Word BuiltinState_10;
    MR_Word PredInfo_11;
    MR_Word ModuleName_12;
    MR_String PredName_13;
    MR_Integer Arity_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);
    Arity_14 = hlds__hlds_pred__pred_info_orig_arity_1_f_0(PredInfo_11);
    succeeded = hlds__hlds_pred__is_inline_builtin_4_p_0(ModuleName_12, PredName_13, ProcId_9, Arity_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(MR_mktag(0), OptTuple_16, (MR_Integer) 0))) >> 31)) & (MR_Integer) 1);
        succeeded = (Var_17 == (MR_Integer) 0);
        if (succeeded)
        {
          {
            MR_Word Var_18 = ((((MR_Unsigned) ((MR_hl_field(MR_mktag(0), OptTuple_16, (MR_Integer) 0))) >> 29)) & (MR_Integer) 1);

            succeeded = (Var_18 == (MR_Integer) 0);
          }
          if (!(succeeded))
          {
            MR_Word Var_267;
            MR_String Var_268;
            MR_Word Var_269;
            MR_Word Var_270;

            hlds__hlds_module__module_info_pred_info_3_p_0(ModuleInfo_6, PredId_8, &Var_267);
            succeeded = hlds__hlds_pred____Unify____pred_info_0_0(PredInfo_11, Var_267);
            if (succeeded)
            {
              hlds__hlds_pred__pred_info_get_name_2_p_0(PredInfo_11, &Var_268);
              succeeded = (strcmp(PredName_13, Var_268) == 0);
              if (succeeded)
              {
                succeeded = (strcmp(PredName_13, (MR_String) "store_at_ref_impure") == 0);
                if (succeeded)
                {
                  hlds__hlds_pred__pred_info_get_module_name_2_p_0(PredInfo_11, &Var_269);
                  succeeded = mdbcomp__sym_name____Unify____sym_name_0_0(ModuleName_12, Var_269);
                  if (succeeded)
                  {
                    Var_270 = mdbcomp__builtin_modules__mercury_private_builtin_module_0_f_0();
                    succeeded = mdbcomp__sym_name____Unify____sym_name_0_0(ModuleName_12, Var_270);
                  }
                }
              }
            }
          }
        }
      }
      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_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_37_37;
      MR_Word TypeInfo_38_38;
      MR_Word TypeInfo_39_39;
      MR_Word TypeInfo_40_40;
      MR_Word TypeInfo_41_41;
      MR_Word TypeInfo_44_44;
      MR_Word ArgX1_3 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 0))));
      MR_Word ArgY1_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))));
      MR_String ArgX2_5 = ((MR_String) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 1))));
      MR_String ArgY2_6 = ((MR_String) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 1))));
      MR_Integer ArgX3_7 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 2))));
      MR_Integer ArgY3_8 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 2))));
      MR_Word ArgX4_9 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 3))) & (MR_Integer) 1);
      MR_Word ArgY4_10 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 3))) & (MR_Integer) 1);
      MR_Word ArgX5_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 4))));
      MR_Word ArgY5_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 4))));
      MR_Word ArgX6_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 5))));
      MR_Word ArgY6_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 5))));
      MR_Word ArgX7_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 6))));
      MR_Word ArgY7_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 6))));
      MR_Word ArgX8_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 7))));
      MR_Word ArgY8_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 7))));
      MR_Word ArgX9_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 8))));
      MR_Word ArgY9_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 8))));
      MR_Word ArgX10_21 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 9))));
      MR_Word ArgY10_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 9))));
      MR_Word ArgX11_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 10))));
      MR_Word ArgY11_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 10))));
      MR_Word ArgX12_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 11))));
      MR_Word ArgY12_26 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 11))));
      MR_Word ArgX13_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 12))));
      MR_Word ArgY13_28 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 12))));
      MR_Word ArgX14_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 13))));
      MR_Word ArgY14_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 13))));
      MR_Word ArgX15_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 14))));
      MR_Word ArgY15_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__2_2, (MR_Integer) 14))));
      MR_Integer CastX_75;
      MR_Integer CastY_76;

      succeeded = mdbcomp__sym_name____Unify____sym_name_0_0(ArgX1_3, ArgY1_4);
      if (succeeded)
      {
        succeeded = (strcmp(ArgX2_5, ArgY2_6) == 0);
        if (succeeded)
        {
          succeeded = (ArgX3_7 == ArgY3_8);
          if (succeeded)
          {
            succeeded = (ArgX4_9 == ArgY4_10);
            if (succeeded)
            {
              succeeded = hlds__hlds_pred____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_37_37 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[16]);
                  succeeded = mercury__builtin__unify_2_p_0(TypeInfo_37_37, ((MR_Box) (ArgX7_15)), ((MR_Box) (ArgY7_16)));
                  if (succeeded)
                  {
                    TypeInfo_38_38 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[14]);
                    succeeded = mercury__builtin__unify_2_p_0(TypeInfo_38_38, ((MR_Box) (ArgX8_17)), ((MR_Box) (ArgY8_18)));
                    if (succeeded)
                    {
                      TypeInfo_39_39 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[2]);
                      succeeded = mercury__builtin__unify_2_p_0(TypeInfo_39_39, ((MR_Box) (ArgX9_19)), ((MR_Box) (ArgY9_20)));
                      if (succeeded)
                      {
                        TypeInfo_40_40 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[2]);
                        succeeded = mercury__builtin__unify_2_p_0(TypeInfo_40_40, ((MR_Box) (ArgX10_21)), ((MR_Box) (ArgY10_22)));
                        if (succeeded)
                        {
                          TypeInfo_41_41 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[3]);
                          succeeded = mercury__builtin__unify_2_p_0(TypeInfo_41_41, ((MR_Box) (ArgX11_23)), ((MR_Box) (ArgY11_24)));
                          if (succeeded)
                          {
                            succeeded = parse_tree__prog_data____Unify____prog_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_44_44 = (MR_Word) (&hlds__hlds_pred_scalar_common_1[8]);
                                succeeded = mercury__builtin__unify_2_p_0(TypeInfo_44_44, ((MR_Box) (ArgX14_29)), ((MR_Box) (ArgY14_30)));
                                if (succeeded)
                                {
                                  CastX_75 = (MR_Integer) (ArgX15_31);
                                  CastY_76 = (MR_Integer) (ArgY15_32);
                                  succeeded = (CastX_75 == CastY_76);
                                  if (succeeded)
                                    succeeded = MR_TRUE;
                                  else
                                  {
                                    MR_Word TypeInfo_36_78;
                                    MR_Word TypeInfo_37_79;
                                    MR_Word TypeInfo_38_80;
                                    MR_Word TypeInfo_39_81;
                                    MR_Word TypeInfo_40_82;
                                    MR_Word TypeInfo_41_83;
                                    MR_Word TypeInfo_42_84;
                                    MR_Word TypeInfo_44_86;
                                    MR_Word TypeInfo_45_87;
                                    MR_Word TypeInfo_46_88;
                                    MR_Word TypeInfo_47_89;
                                    MR_Word TypeInfo_48_90;
                                    MR_Word ArgX1_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ArgX15_31, (MR_Integer) 0))));
                                    MR_Word ArgY1_46 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ArgY15_32, (MR_Integer) 0))));
                                    MR_Word ArgX2_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ArgX15_31, (MR_Integer) 1))));
                                    MR_Word ArgY2_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ArgY15_32, (MR_Integer) 1))));
                                    MR_Word ArgX3_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ArgX15_31, (MR_Integer) 2))));
                                    MR_Word ArgY3_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ArgY15_32, (MR_Integer) 2))));
                                    MR_Word ArgX4_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ArgX15_31, (MR_Integer) 3))));
                                    MR_Word ArgY4_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ArgY15_32, (MR_Integer) 3))));
                                    MR_Word ArgX5_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ArgX15_31, (MR_Integer) 4))));
                                    MR_Word ArgY5_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ArgY15_32, (MR_Integer) 4))));
                                    MR_Word ArgX6_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ArgX15_31, (MR_Integer) 5))));
                                    MR_Word ArgY6_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ArgY15_32, (MR_Integer) 5))));
                                    MR_Word ArgX7_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ArgX15_31, (MR_Integer) 6))));
                                    MR_Word ArgY7_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ArgY15_32, (MR_Integer) 6))));
                                    MR_Word ArgX8_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ArgX15_31, (MR_Integer) 7))));
                                    MR_Word ArgY8_60 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ArgY15_32, (MR_Integer) 7))));
                                    MR_Word ArgX9_61 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ArgX15_31, (MR_Integer) 8))));
                                    MR_Word ArgY9_62 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ArgY15_32, (MR_Integer) 8))));
                                    MR_Word ArgX10_63 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ArgX15_31, (MR_Integer) 9))));
                                    MR_Word ArgY10_64 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ArgY15_32, (MR_Integer) 9))));
                                    MR_Word ArgX11_65 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ArgX15_31, (MR_Integer) 10))));
                                    MR_Word ArgY11_66 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ArgY15_32, (MR_Integer) 10))));
                                    MR_Word ArgX12_67 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ArgX15_31, (MR_Integer) 11))));
                                    MR_Word ArgY12_68 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ArgY15_32, (MR_Integer) 11))));
                                    MR_Word ArgX13_69 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ArgX15_31, (MR_Integer) 12))));
                                    MR_Word ArgY13_70 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ArgY15_32, (MR_Integer) 12))));
                                    MR_Word ArgX14_71 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ArgX15_31, (MR_Integer) 13))));
                                    MR_Word ArgY14_72 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ArgY15_32, (MR_Integer) 13))));
                                    MR_Word ArgX15_73 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ArgX15_31, (MR_Integer) 14))));
                                    MR_Word ArgY15_74 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ArgY15_32, (MR_Integer) 14))));

                                    succeeded = mercury__term____Unify____context_0_0(ArgX1_45, ArgY1_46);
                                    if (succeeded)
                                    {
                                      TypeInfo_36_78 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[18]);
                                      succeeded = mercury__builtin__unify_2_p_0(TypeInfo_36_78, ((MR_Box) (ArgX2_47)), ((MR_Box) (ArgY2_48)));
                                      if (succeeded)
                                      {
                                        succeeded = hlds__hlds_pred____Unify____goal_type_0_0(ArgX3_49, ArgY3_50);
                                        if (succeeded)
                                        {
                                          TypeInfo_37_79 = (MR_Word) (&hlds__hlds_pred_scalar_common_1[1]);
                                          succeeded = mercury__builtin__unify_2_p_0(TypeInfo_37_79, ((MR_Box) (ArgX4_51)), ((MR_Box) (ArgY4_52)));
                                          if (succeeded)
                                          {
                                            TypeInfo_38_80 = (MR_Word) (&hlds__hlds_pred_scalar_common_1[9]);
                                            succeeded = mercury__builtin__unify_2_p_0(TypeInfo_38_80, ((MR_Box) (ArgX5_53)), ((MR_Box) (ArgY5_54)));
                                            if (succeeded)
                                            {
                                              TypeInfo_39_81 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[3]);
                                              succeeded = mercury__builtin__unify_2_p_0(TypeInfo_39_81, ((MR_Box) (ArgX6_55)), ((MR_Box) (ArgY6_56)));
                                              if (succeeded)
                                              {
                                                TypeInfo_40_82 = (MR_Word) (&hlds__hlds_pred_scalar_common_1[2]);
                                                succeeded = mercury__builtin__unify_2_p_0(TypeInfo_40_82, ((MR_Box) (ArgX7_57)), ((MR_Box) (ArgY7_58)));
                                                if (succeeded)
                                                {
                                                  TypeInfo_41_83 = (MR_Word) (&hlds__hlds_pred_scalar_common_1[3]);
                                                  succeeded = mercury__builtin__unify_2_p_0(TypeInfo_41_83, ((MR_Box) (ArgX8_59)), ((MR_Box) (ArgY8_60)));
                                                  if (succeeded)
                                                  {
                                                    TypeInfo_42_84 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[4]);
                                                    succeeded = mercury__builtin__unify_2_p_0(TypeInfo_42_84, ((MR_Box) (ArgX9_61)), ((MR_Box) (ArgY9_62)));
                                                    if (succeeded)
                                                    {
                                                      succeeded = hlds__inst_graph____Unify____inst_graph_info_0_0(ArgX10_63, ArgY10_64);
                                                      if (succeeded)
                                                      {
                                                        TypeInfo_44_86 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[19]);
                                                        succeeded = mercury__builtin__unify_2_p_0(TypeInfo_44_86, ((MR_Box) (ArgX11_65)), ((MR_Box) (ArgY11_66)));
                                                        if (succeeded)
                                                        {
                                                          TypeInfo_45_87 = (MR_Word) (&hlds__hlds_pred_scalar_common_1[4]);
                                                          succeeded = mercury__builtin__unify_2_p_0(TypeInfo_45_87, ((MR_Box) (ArgX12_67)), ((MR_Box) (ArgY12_68)));
                                                          if (succeeded)
                                                          {
                                                            TypeInfo_46_88 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[20]);
                                                            succeeded = mercury__builtin__unify_2_p_0(TypeInfo_46_88, ((MR_Box) (ArgX13_69)), ((MR_Box) (ArgY13_70)));
                                                            if (succeeded)
                                                            {
                                                              TypeInfo_47_89 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[22]);
                                                              succeeded = mercury__builtin__unify_2_p_0(TypeInfo_47_89, ((MR_Box) (ArgX14_71)), ((MR_Box) (ArgY14_72)));
                                                              if (succeeded)
                                                              {
                                                                TypeInfo_48_90 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[14]);
                                                                succeeded = mercury__builtin__unify_2_p_0(TypeInfo_48_90, ((MR_Box) (ArgX15_73)), ((MR_Box) (ArgY15_74)));
                                                              }
                                                            }
                                                          }
                                                        }
                                                      }
                                                    }
                                                  }
                                                }
                                              }
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
    return succeeded;
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____pred_origin_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  {
    MR_bool succeeded;
    MR_Integer CastX_55 = (MR_Integer) (HeadVar__1_1);
    MR_Integer CastY_56 = (MR_Integer) (HeadVar__2_2);

    succeeded = (CastX_55 == CastY_56);
    if (succeeded)
      succeeded = MR_TRUE;
    else
      switch (MR_tag((MR_Word) HeadVar__1_1)) {
        default: /*NOTREACHED*/ MR_assert(0);
        case (MR_Integer) 0:
          switch (MR_unmkbody(HeadVar__1_1)) {
            default: /*NOTREACHED*/ MR_assert(0);
            case (MR_Integer) 0:
              {
                MR_Integer CastX_49 = (MR_Integer) (HeadVar__1_1);
                MR_Integer CastY_50 = (MR_Integer) (HeadVar__2_2);

                succeeded = (CastY_50 == CastX_49);
              }
              break;
            case (MR_Integer) 1:
              {
                MR_Integer CastX_51 = (MR_Integer) (HeadVar__1_1);
                MR_Integer CastY_52 = (MR_Integer) (HeadVar__2_2);

                succeeded = (CastY_52 == CastX_51);
              }
              break;
          }
          break;
        case (MR_Integer) 1:
          {
            MR_Word ArgX1_3 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(1), HeadVar__1_1, (MR_Integer) 0))) & (MR_Integer) 3);
            MR_Word ArgY1_4;
            MR_Word ArgX2_5 = ((MR_Word) ((MR_hl_field(MR_mktag(1), HeadVar__1_1, (MR_Integer) 1))));
            MR_Word ArgY2_6;

            succeeded = ((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 1);
            if (succeeded)
            {
              ArgY1_4 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(1), HeadVar__2_2, (MR_Integer) 0))) & (MR_Integer) 3);
              ArgY2_6 = ((MR_Word) ((MR_hl_field(MR_mktag(1), HeadVar__2_2, (MR_Integer) 1))));
              succeeded = (ArgX1_3 == ArgY1_4);
              if (succeeded)
                succeeded = parse_tree__prog_data____Unify____type_ctor_0_0(ArgX2_5, ArgY2_6);
            }
          }
          break;
        case (MR_Integer) 2:
          {
            MR_Word ArgX1_7 = ((MR_Word) ((MR_hl_field(MR_mktag(2), HeadVar__1_1, (MR_Integer) 0))));
            MR_Word ArgY1_8;
            MR_Word ArgX2_9 = ((MR_Word) ((MR_hl_field(MR_mktag(2), HeadVar__1_1, (MR_Integer) 1))));
            MR_Word ArgY2_10;

            succeeded = ((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 2);
            if (succeeded)
            {
              ArgY1_8 = ((MR_Word) ((MR_hl_field(MR_mktag(2), HeadVar__2_2, (MR_Integer) 0))));
              ArgY2_10 = ((MR_Word) ((MR_hl_field(MR_mktag(2), HeadVar__2_2, (MR_Integer) 1))));
              succeeded = mdbcomp__sym_name____Unify____sym_name_0_0(ArgX1_7, ArgY1_8);
              if (succeeded)
                succeeded = hlds__hlds_rtti____Unify____instance_method_constraints_0_0(ArgX2_9, ArgY2_10);
            }
          }
          break;
        case (MR_Integer) 3:
          switch (((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__1_1, (MR_Integer) 0))))) {
            default: /*NOTREACHED*/ MR_assert(0);
            case (MR_Integer) 0:
              {
                MR_Word ArgX1_11 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__1_1, (MR_Integer) 1))));
                MR_Word ArgY1_12;
                MR_Word ArgX2_13 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__1_1, (MR_Integer) 2))));
                MR_Word ArgY2_14;

                succeeded = ((((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 0)))) == (MR_Integer) 0)));
                if (succeeded)
                {
                  ArgY1_12 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 1))));
                  ArgY2_14 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 2))));
                  succeeded = parse_tree__prog_data____Unify____class_id_0_0(ArgX1_11, ArgY1_12);
                  if (succeeded)
                    succeeded = parse_tree__prog_data____Unify____pf_sym_name_arity_0_0(ArgX2_13, ArgY2_14);
                }
              }
              break;
            case (MR_Integer) 1:
              {
                MR_Word ArgX1_15 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__1_1, (MR_Integer) 1))));
                MR_Word ArgY1_16;
                MR_Word ArgX2_17 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__1_1, (MR_Integer) 2))));
                MR_Word ArgY2_18;
                MR_Word ArgX3_19 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__1_1, (MR_Integer) 3))));
                MR_Word ArgY3_20;
                MR_Integer CastX_68;
                MR_Integer CastY_69;

                succeeded = ((((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 0)))) == (MR_Integer) 1)));
                if (succeeded)
                {
                  ArgY1_16 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 1))));
                  ArgY2_18 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 2))));
                  ArgY3_20 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 3))));
                  succeeded = hlds__hlds_pred____Unify____pred_transformation_0_0(ArgX1_15, ArgY1_16);
                  if (succeeded)
                  {
                    succeeded = hlds__hlds_pred____Unify____pred_origin_0_0(ArgX2_17, ArgY2_18);
                    if (succeeded)
                    {
                      CastX_68 = (MR_Integer) (ArgX3_19);
                      CastY_69 = (MR_Integer) (ArgY3_20);
                      succeeded = (CastX_68 == CastY_69);
                      if (succeeded)
                        succeeded = MR_TRUE;
                      else
                      {
                        MR_Integer ArgX1_66 = (MR_Integer) (ArgX3_19);
                        MR_Integer ArgY1_67 = (MR_Integer) (ArgY3_20);

                        succeeded = (ArgX1_66 == ArgY1_67);
                      }
                    }
                  }
                }
              }
              break;
            case (MR_Integer) 2:
              {
                MR_Word ArgX1_21 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(3), HeadVar__1_1, (MR_Integer) 1))) & (MR_Integer) 1);
                MR_Word ArgY1_22;

                succeeded = ((((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 0)))) == (MR_Integer) 2)));
                if (succeeded)
                {
                  ArgY1_22 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 1))) & (MR_Integer) 1);
                  succeeded = (ArgX1_21 == ArgY1_22);
                }
              }
              break;
            case (MR_Integer) 3:
              {
                MR_String ArgX1_23 = ((MR_String) ((MR_hl_field(MR_mktag(3), HeadVar__1_1, (MR_Integer) 1))));
                MR_String ArgY1_24;
                MR_Integer ArgX2_25 = ((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__1_1, (MR_Integer) 2))));
                MR_Integer ArgY2_26;

                succeeded = ((((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 0)))) == (MR_Integer) 3)));
                if (succeeded)
                {
                  ArgY1_24 = ((MR_String) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 1))));
                  ArgY2_26 = ((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 2))));
                  succeeded = (strcmp(ArgX1_23, ArgY1_24) == 0);
                  if (succeeded)
                    succeeded = (ArgX2_25 == ArgY2_26);
                }
              }
              break;
            case (MR_Integer) 4:
              {
                MR_String ArgX1_27 = ((MR_String) ((MR_hl_field(MR_mktag(3), HeadVar__1_1, (MR_Integer) 1))));
                MR_String ArgY1_28;
                MR_Integer ArgX2_29 = ((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__1_1, (MR_Integer) 2))));
                MR_Integer ArgY2_30;
                MR_Integer ArgX3_31 = ((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__1_1, (MR_Integer) 3))));
                MR_Integer ArgY3_32;

                succeeded = ((((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 0)))) == (MR_Integer) 4)));
                if (succeeded)
                {
                  ArgY1_28 = ((MR_String) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 1))));
                  ArgY2_30 = ((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 2))));
                  ArgY3_32 = ((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 3))));
                  succeeded = (strcmp(ArgX1_27, ArgY1_28) == 0);
                  if (succeeded)
                  {
                    succeeded = (ArgX2_29 == ArgY2_30);
                    if (succeeded)
                      succeeded = (ArgX3_31 == ArgY3_32);
                  }
                }
              }
              break;
            case (MR_Integer) 5:
              {
                MR_Word ArgX1_33 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__1_1, (MR_Integer) 1))));
                MR_Word ArgY1_34;
                MR_Integer ArgX2_35 = ((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__1_1, (MR_Integer) 2))));
                MR_Integer ArgY2_36;
                MR_Word ArgX3_37 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(3), HeadVar__1_1, (MR_Integer) 3))) & (MR_Integer) 3);
                MR_Word ArgY3_38;

                succeeded = ((((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 0)))) == (MR_Integer) 5)));
                if (succeeded)
                {
                  ArgY1_34 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 1))));
                  ArgY2_36 = ((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 2))));
                  ArgY3_38 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 3))) & (MR_Integer) 3);
                  succeeded = mdbcomp__sym_name____Unify____sym_name_0_0(ArgX1_33, ArgY1_34);
                  if (succeeded)
                  {
                    succeeded = (ArgX2_35 == ArgY2_36);
                    if (succeeded)
                      succeeded = (ArgX3_37 == ArgY3_38);
                  }
                }
              }
              break;
            case (MR_Integer) 6:
              {
                MR_Word ArgX1_39 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__1_1, (MR_Integer) 1))));
                MR_Word ArgY1_40;
                MR_Word ArgX2_41 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(3), HeadVar__1_1, (MR_Integer) 2))) & (MR_Integer) 1);
                MR_Word ArgY2_42;

                succeeded = ((((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 0)))) == (MR_Integer) 6)));
                if (succeeded)
                {
                  ArgY1_40 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 1))));
                  ArgY2_42 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 2))) & (MR_Integer) 1);
                  succeeded = parse_tree__prog_data____Unify____pf_sym_name_arity_0_0(ArgX1_39, ArgY1_40);
                  if (succeeded)
                    succeeded = (ArgX2_41 == ArgY2_42);
                }
              }
              break;
            case (MR_Integer) 7:
              {
                MR_Word ArgX1_43 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__1_1, (MR_Integer) 1))));
                MR_Word ArgY1_44;
                MR_String ArgX2_45 = ((MR_String) ((MR_hl_field(MR_mktag(3), HeadVar__1_1, (MR_Integer) 2))));
                MR_String ArgY2_46;
                MR_Word ArgX3_47 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(3), HeadVar__1_1, (MR_Integer) 3))) & (MR_Integer) 15);
                MR_Word ArgY3_48;

                succeeded = ((((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 0)))) == (MR_Integer) 7)));
                if (succeeded)
                {
                  ArgY1_44 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 1))));
                  ArgY2_46 = ((MR_String) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 2))));
                  ArgY3_48 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 3))) & (MR_Integer) 15);
                  succeeded = mdbcomp__sym_name____Unify____sym_name_0_0(ArgX1_43, ArgY1_44);
                  if (succeeded)
                  {
                    succeeded = (strcmp(ArgX2_45, ArgY2_46) == 0);
                    if (succeeded)
                      succeeded = (ArgX3_47 == ArgY3_48);
                  }
                }
              }
              break;
            case (MR_Integer) 8:
              {
                MR_Word ArgX1_53 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__1_1, (MR_Integer) 1))));
                MR_Word ArgY1_54;

                succeeded = ((((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 0)))) == (MR_Integer) 8)));
                if (succeeded)
                {
                  ArgY1_54 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 1))));
                  succeeded = mdbcomp__sym_name____Unify____sym_name_0_0(ArgX1_53, ArgY1_54);
                }
              }
              break;
          }
          break;
      }
    return succeeded;
  }
}

MR_bool MR_CALL 
hlds__hlds_pred____Unify____pred_transformation_0_0(
  MR_Word HeadVar__1_1,
  MR_Word HeadVar__2_2)
{
  {
    MR_bool succeeded;
    MR_Integer CastX_39 = (MR_Integer) (HeadVar__1_1);
    MR_Integer CastY_40 = (MR_Integer) (HeadVar__2_2);

    succeeded = (CastX_39 == CastY_40);
    if (succeeded)
      succeeded = MR_TRUE;
    else
      switch (MR_tag((MR_Word) HeadVar__1_1)) {
        default: /*NOTREACHED*/ MR_assert(0);
        case (MR_Integer) 0:
          switch (MR_unmkbody(HeadVar__1_1)) {
            default: /*NOTREACHED*/ MR_assert(0);
            case (MR_Integer) 0:
              {
                MR_Integer CastX_19 = (MR_Integer) (HeadVar__1_1);
                MR_Integer CastY_20 = (MR_Integer) (HeadVar__2_2);

                succeeded = (CastY_20 == CastX_19);
              }
              break;
            case (MR_Integer) 1:
              {
                MR_Integer CastX_21 = (MR_Integer) (HeadVar__1_1);
                MR_Integer CastY_22 = (MR_Integer) (HeadVar__2_2);

                succeeded = (CastY_22 == CastX_21);
              }
              break;
            case (MR_Integer) 2:
              {
                MR_Integer CastX_27 = (MR_Integer) (HeadVar__1_1);
                MR_Integer CastY_28 = (MR_Integer) (HeadVar__2_2);

                succeeded = (CastY_28 == CastX_27);
              }
              break;
            case (MR_Integer) 3:
              {
                MR_Integer CastX_29 = (MR_Integer) (HeadVar__1_1);
                MR_Integer CastY_30 = (MR_Integer) (HeadVar__2_2);

                succeeded = (CastY_30 == CastX_29);
              }
              break;
            case (MR_Integer) 4:
              {
                MR_Integer CastX_33 = (MR_Integer) (HeadVar__1_1);
                MR_Integer CastY_34 = (MR_Integer) (HeadVar__2_2);

                succeeded = (CastY_34 == CastX_33);
              }
              break;
            case (MR_Integer) 5:
              {
                MR_Integer CastX_35 = (MR_Integer) (HeadVar__1_1);
                MR_Integer CastY_36 = (MR_Integer) (HeadVar__2_2);

                succeeded = (CastY_36 == CastX_35);
              }
              break;
            case (MR_Integer) 6:
              {
                MR_Integer CastX_37 = (MR_Integer) (HeadVar__1_1);
                MR_Integer CastY_38 = (MR_Integer) (HeadVar__2_2);

                succeeded = (CastY_38 == CastX_37);
              }
              break;
          }
          break;
        case (MR_Integer) 1:
          {
            MR_Integer ArgX1_3 = ((MR_Integer) ((MR_hl_field(MR_mktag(1), HeadVar__1_1, (MR_Integer) 0))));
            MR_Integer ArgY1_4;

            succeeded = ((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 1);
            if (succeeded)
            {
              ArgY1_4 = ((MR_Integer) ((MR_hl_field(MR_mktag(1), HeadVar__2_2, (MR_Integer) 0))));
              succeeded = (ArgX1_3 == ArgY1_4);
            }
          }
          break;
        case (MR_Integer) 2:
          {
            MR_Integer ArgX1_5 = ((MR_Integer) ((MR_hl_field(MR_mktag(2), HeadVar__1_1, (MR_Integer) 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(MR_mktag(2), HeadVar__2_2, (MR_Integer) 0))));
              succeeded = (ArgX1_5 == ArgY1_6);
            }
          }
          break;
        case (MR_Integer) 3:
          switch (((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__1_1, (MR_Integer) 0))))) {
            default: /*NOTREACHED*/ MR_assert(0);
            case (MR_Integer) 0:
              {
                MR_Word TypeInfo_43_43;
                MR_Word ArgX1_7 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__1_1, (MR_Integer) 1))));
                MR_Word ArgY1_8;

                succeeded = ((((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 0)))) == (MR_Integer) 0)));
                if (succeeded)
                {
                  ArgY1_8 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 1))));
                  TypeInfo_43_43 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[23]);
                  succeeded = mercury__builtin__unify_2_p_0(TypeInfo_43_43, ((MR_Box) (ArgX1_7)), ((MR_Box) (ArgY1_8)));
                }
              }
              break;
            case (MR_Integer) 1:
              {
                MR_Word TypeInfo_44_44;
                MR_Word ArgX1_9 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__1_1, (MR_Integer) 1))));
                MR_Word ArgY1_10;

                succeeded = ((((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 0)))) == (MR_Integer) 1)));
                if (succeeded)
                {
                  ArgY1_10 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 1))));
                  TypeInfo_44_44 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[24]);
                  succeeded = mercury__builtin__unify_2_p_0(TypeInfo_44_44, ((MR_Box) (ArgX1_9)), ((MR_Box) (ArgY1_10)));
                }
              }
              break;
            case (MR_Integer) 2:
              {
                MR_Word TypeInfo_41_41;
                MR_Word ArgX1_11 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__1_1, (MR_Integer) 1))));
                MR_Word ArgY1_12;

                succeeded = ((((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 0)))) == (MR_Integer) 2)));
                if (succeeded)
                {
                  ArgY1_12 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 1))));
                  TypeInfo_41_41 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[24]);
                  succeeded = mercury__builtin__unify_2_p_0(TypeInfo_41_41, ((MR_Box) (ArgX1_11)), ((MR_Box) (ArgY1_12)));
                }
              }
              break;
            case (MR_Integer) 3:
              {
                MR_Integer ArgX1_13 = ((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__1_1, (MR_Integer) 1))));
                MR_Integer ArgY1_14;

                succeeded = ((((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 0)))) == (MR_Integer) 3)));
                if (succeeded)
                {
                  ArgY1_14 = ((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 1))));
                  succeeded = (ArgX1_13 == ArgY1_14);
                }
              }
              break;
            case (MR_Integer) 4:
              {
                MR_Integer ArgX1_15 = ((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__1_1, (MR_Integer) 1))));
                MR_Integer ArgY1_16;

                succeeded = ((((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 0)))) == (MR_Integer) 4)));
                if (succeeded)
                {
                  ArgY1_16 = ((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 1))));
                  succeeded = (ArgX1_15 == ArgY1_16);
                }
              }
              break;
            case (MR_Integer) 5:
              {
                MR_Integer ArgX1_17 = ((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__1_1, (MR_Integer) 1))));
                MR_Integer ArgY1_18;

                succeeded = ((((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 0)))) == (MR_Integer) 5)));
                if (succeeded)
                {
                  ArgY1_18 = ((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 1))));
                  succeeded = (ArgX1_17 == ArgY1_18);
                }
              }
              break;
            case (MR_Integer) 6:
              {
                MR_Word TypeInfo_42_42;
                MR_Integer ArgX1_23 = ((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__1_1, (MR_Integer) 1))));
                MR_Integer ArgY1_24;
                MR_Word ArgX2_25 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__1_1, (MR_Integer) 2))));
                MR_Word ArgY2_26;

                succeeded = ((((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 0)))) == (MR_Integer) 6)));
                if (succeeded)
                {
                  ArgY1_24 = ((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 1))));
                  ArgY2_26 = ((MR_Word) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 2))));
                  succeeded = (ArgX1_23 == ArgY1_24);
                  if (succeeded)
                  {
                    TypeInfo_42_42 = (MR_Word) (&hlds__hlds_pred_scalar_common_2[24]);
                    succeeded = mercury__builtin__unify_2_p_0(TypeInfo_42_42, ((MR_Box) (ArgX2_25)), ((MR_Box) (ArgY2_26)));
                  }
                }
              }
              break;
            case (MR_Integer) 7:
              {
                MR_Integer ArgX1_31 = ((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__1_1, (MR_Integer) 1))));
                MR_Integer ArgY1_32;

                succeeded = ((((MR_tag((MR_Word) HeadVar__2_2)) == (MR_Integer) 3)) && ((((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 0)))) == (MR_Integer) 7)));
                if (succeeded)
                {
                  ArgY1_32 = ((MR_Integer) ((MR_hl_field(MR_mktag(3), HeadVar__2_2, (MR_Integer) 1))));
                  succeeded = (ArgX1_31 == ArgY1_32);
                }
              }
              break;
          }
          break;
      }
    return succeeded;
  }
}

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(MR_mktag(1), HeadVar__1_1, (MR_Integer) 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(MR_mktag(1), HeadVar__2_2, (MR_Integer) 0))) & (MR_Integer) 3);
        succeeded = (ArgX1_5 == ArgY1_6);
      }
    }
    else
    {
      MR_Word ArgX1_3 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 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(MR_mktag(0), HeadVar__2_2, (MR_Integer) 0))) & (MR_Integer) 3);
        succeeded = (ArgX1_3 == ArgY1_4);
      }
    }
    return succeeded;
  }
}

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_4_p_0(
  MR_Word ModuleName_5,
  MR_String PredName_6,
  MR_Integer ProcId_7,
  MR_Integer Arity_8)
{
  {
    MR_bool succeeded = (Arity_8 <= (MR_Integer) 3);
    MR_Word TypeCtorInfo_12_12;
    MR_Word Args_9;
    MR_Integer Var_11;

    if (succeeded)
    {
      Var_11 = (MR_Integer) 0;
      TypeCtorInfo_12_12 = (MR_Word) (&mercury__builtin__builtin__type_ctor_info_int_0);
      mercury__list__duplicate_3_p_0(TypeCtorInfo_12_12, Arity_8, ((MR_Box) (Var_11)), &Args_9);
      succeeded = backend_libs__builtin_ops__test_if_builtin_4_p_0(TypeCtorInfo_12_12, ModuleName_5, PredName_6, ProcId_7, Args_9);
    }
    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 TypeCtorInfo_12_71;
    MR_Word ModuleName_3 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PredInfo_2, (MR_Integer) 0))));
    MR_String PredName_4 = ((MR_String) ((MR_hl_field(MR_mktag(0), PredInfo_2, (MR_Integer) 1))));
    MR_Integer Arity_5 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), PredInfo_2, (MR_Integer) 2))));
    MR_Word Args_68;
    MR_Integer Var_70;

    succeeded = (Arity_5 <= (MR_Integer) 3);
    if (succeeded)
    {
      Var_70 = (MR_Integer) 0;
      TypeCtorInfo_12_71 = (MR_Word) (&mercury__builtin__builtin__type_ctor_info_int_0);
      mercury__list__duplicate_3_p_0(TypeCtorInfo_12_71, Arity_5, ((MR_Box) (Var_70)), &Args_68);
      succeeded = backend_libs__builtin_ops__test_if_builtin_4_p_0(TypeCtorInfo_12_71, ModuleName_3, PredName_4, (MR_Integer) 0, Args_68);
    }
    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(MR_mktag(0), PredInfo_2, (MR_Integer) 4))));

    succeeded = ((MR_tag((MR_Word) Origin_3)) == (MR_Integer) 1);
    if (succeeded)
    {
    }
    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(MR_mktag(0), PredInfo_2, (MR_Integer) 4))));
    MR_Word Var_5;

    succeeded = ((MR_tag((MR_Word) Origin_3)) == (MR_Integer) 1);
    if (succeeded)
    {
      Var_5 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(1), Origin_3, (MR_Integer) 0))) & (MR_Integer) 3);
      succeeded = (Var_5 == (MR_Integer) 0);
    }
    return succeeded;
  }
}

MR_bool MR_CALL 
hlds__hlds_pred__pred_info_is_field_access_function_2_p_0(
  MR_Word ModuleInfo_3,
  MR_Word PredInfo_4)
{
  {
    MR_bool succeeded;
    MR_Word Module_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PredInfo_4, (MR_Integer) 0))));
    MR_String Name_6 = ((MR_String) ((MR_hl_field(MR_mktag(0), PredInfo_4, (MR_Integer) 1))));
    MR_Integer PredArity_7 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), PredInfo_4, (MR_Integer) 2))));
    MR_Integer FuncArity_8;
    MR_Word Var_11 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), PredInfo_4, (MR_Integer) 3))) & (MR_Integer) 1);
    MR_Word Var_12;
    MR_Word Var_13;
    MR_Integer Var_14;
    MR_Word Var_9;
    MR_Word Var_10;

    succeeded = (Var_11 == (MR_Integer) 1);
    if (succeeded)
    {
      Var_12 = (MR_Integer) 1;
      parse_tree__prog_util__adjust_func_arity_3_p_1(Var_12, &FuncArity_8, PredArity_7);
      {
        Var_13 = (MR_Word) MR_mkword(MR_mktag(1), MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
        MR_hl_field(MR_mktag(1), Var_13, 0) = ((MR_Box) (Module_5));
        MR_hl_field(MR_mktag(1), Var_13, 1) = ((MR_Box) (Name_6));
      }
      succeeded = hlds__hlds_pred__is_field_access_function_name_5_p_0(ModuleInfo_3, Var_13, &Var_14, &Var_9, &Var_10);
      if (succeeded)
        succeeded = (FuncArity_8 == Var_14);
    }
    return succeeded;
  }
}

MR_bool MR_CALL 
hlds__hlds_pred__is_field_access_function_name_5_p_0(
  MR_Word ModuleInfo_6,
  MR_Word FuncName_7,
  MR_Integer * Arity_8,
  MR_Word * AccessType_9,
  MR_Word * FieldName_10)
{
  {
    MR_bool succeeded;
    MR_Word CtorFieldTable_12;
    MR_Word FieldName0_11;

    succeeded = mdbcomp__sym_name__remove_sym_name_suffix_3_p_0(FuncName_7, (MR_String) " :=", &FieldName0_11);
    if (succeeded)
    {
      *Arity_8 = (MR_Integer) 2;
      *AccessType_9 = (MR_Integer) 1;
      *FieldName_10 = FieldName0_11;
    }
    else
    {
      *Arity_8 = (MR_Integer) 1;
      *AccessType_9 = (MR_Integer) 0;
      *FieldName_10 = FuncName_7;
    }
    hlds__hlds_module__module_info_get_ctor_field_table_2_p_0(ModuleInfo_6, &CtorFieldTable_12);
    succeeded = mercury__map__contains_2_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_12, ((MR_Box) (*FieldName_10)));
    return succeeded;
  }
}

void MR_CALL 
hlds__hlds_pred__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__field_update_function_args_3_p_0(
  MR_Word Args_4,
  MR_Word * TermInputArg_5,
  MR_Word * FieldArg_6)
{
  {
    MR_bool succeeded = (Args_4 != (MR_Word) ((MR_Unsigned) 0U));
    MR_Word TermInputArg0_7;
    MR_Word FieldArg0_8;
    MR_Word Var_9;
    MR_Word Var_10;

    if (succeeded)
    {
      TermInputArg0_7 = ((MR_Word) ((MR_hl_field(MR_mktag(1), Args_4, (MR_Integer) 0))));
      Var_9 = ((MR_Word) ((MR_hl_field(MR_mktag(1), Args_4, (MR_Integer) 1))));
      succeeded = (Var_9 != (MR_Word) ((MR_Unsigned) 0U));
      if (succeeded)
      {
        FieldArg0_8 = ((MR_Word) ((MR_hl_field(MR_mktag(1), Var_9, (MR_Integer) 0))));
        Var_10 = ((MR_Word) ((MR_hl_field(MR_mktag(1), Var_9, (MR_Integer) 1))));
        succeeded = (Var_10 == (MR_Word) ((MR_Unsigned) 0U));
      }
    }
    if (succeeded)
    {
      *FieldArg_6 = FieldArg0_8;
      *TermInputArg_5 = TermInputArg0_7;
    }
    else
      {
        mercury__require__unexpected_2_p_0((MR_String) "predicate \140hlds.hlds_pred.field_update_function_args\'/3", (MR_String) "num_args != 2");
        return;
      }
  }
}

void MR_CALL 
hlds__hlds_pred__field_extraction_function_args_2_p_0(
  MR_Word Args_3,
  MR_Word * TermInputArg_4)
{
  {
    MR_bool succeeded = (Args_3 != (MR_Word) ((MR_Unsigned) 0U));
    MR_Word TermInputArg0_5;
    MR_Word Var_6;

    if (succeeded)
    {
      TermInputArg0_5 = ((MR_Word) ((MR_hl_field(MR_mktag(1), Args_3, (MR_Integer) 0))));
      Var_6 = ((MR_Word) ((MR_hl_field(MR_mktag(1), Args_3, (MR_Integer) 1))));
      succeeded = (Var_6 == (MR_Word) ((MR_Unsigned) 0U));
    }
    if (succeeded)
      *TermInputArg_4 = TermInputArg0_5;
    else
      {
        mercury__require__unexpected_2_p_0((MR_String) "predicate \140hlds.hlds_pred.field_extraction_function_args\'/2", (MR_String) "num_args != 1");
        return;
      }
  }
}

MR_bool MR_CALL 
hlds__hlds_pred__var_is_of_non_dummy_type_3_p_0(
  MR_Word ModuleInfo_4,
  MR_Word VarTypes_5,
  MR_Word Var_6)
{
  {
    MR_bool succeeded;
    MR_Word Type_7;
    MR_Word Var_8;

    hlds__vartypes__lookup_var_type_3_p_0(VarTypes_5, Var_6, &Type_7);
    Var_8 = check_hlds__type_util__is_type_a_dummy_2_f_0(ModuleInfo_4, Type_7);
    succeeded = (Var_8 == (MR_Integer) 1);
    return succeeded;
  }
}

MR_bool MR_CALL 
hlds__hlds_pred__var_is_of_dummy_type_3_p_0(
  MR_Word ModuleInfo_4,
  MR_Word VarTypes_5,
  MR_Word Var_6)
{
  {
    MR_bool succeeded;
    MR_Word Type_7;
    MR_Word Var_8;

    hlds__vartypes__lookup_var_type_3_p_0(VarTypes_5, Var_6, &Type_7);
    Var_8 = check_hlds__type_util__is_type_a_dummy_2_f_0(ModuleInfo_4, Type_7);
    succeeded = (Var_8 == (MR_Integer) 0);
    return succeeded;
  }
}

void MR_CALL 
hlds__hlds_pred__ensure_all_headvars_are_named_2_p_0(
  MR_Word STATE_VARIABLE_ProcInfo_0_7,
  MR_Word * STATE_VARIABLE_ProcInfo_8)
{
  {
    MR_Word HeadVars_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_7, (MR_Integer) 0))));
    MR_Word VarSet0_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_7, (MR_Integer) 2))));
    MR_Word VarSet_6;
    MR_Word Var_46;
    MR_Word Var_47;
    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;

    hlds__hlds_pred__ensure_all_headvars_are_named_2_4_p_0(HeadVars_4, (MR_Integer) 1, VarSet0_5, &VarSet_6);
    Var_46 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_7, (MR_Integer) 0))));
    Var_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_7, (MR_Integer) 1))));
    Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_7, (MR_Integer) 3))));
    Var_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_7, (MR_Integer) 4))));
    Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_7, (MR_Integer) 5))));
    Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_7, (MR_Integer) 6))));
    Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_7, (MR_Integer) 7))));
    Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_7, (MR_Integer) 8))));
    Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_7, (MR_Integer) 9))));
    Var_56 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_7, (MR_Integer) 10))) & (MR_Integer) 7);
    Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_7, (MR_Integer) 11))));
    Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_7, (MR_Integer) 12))));
    Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_7, (MR_Integer) 13))));
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_ProcInfo_8 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_46));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_47));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (VarSet_6));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_49));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_50));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_51));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_52));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_53));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_54));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_55));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_56));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_57));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_58));
      MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Var_59));
    }
  }
}

static void MR_CALL 
hlds__hlds_pred__ensure_all_headvars_are_named_2_4_p_0(
  MR_Word HeadVar__1_1,
  MR_Integer SeqNum_2,
  MR_Word STATE_VARIABLE_VarSet_0_3,
  MR_Word * STATE_VARIABLE_VarSet_4)
{
  while (MR_TRUE)
  {
    MR_bool succeeded;

    // setup for model_det tailcalls optimized into a loop
    ;
    if ((HeadVar__1_1 == (MR_Word) ((MR_Unsigned) 0U)))
      *STATE_VARIABLE_VarSet_4 = STATE_VARIABLE_VarSet_0_3;
    else
    {
      MR_Word Var_9 = ((MR_Word) ((MR_hl_field(MR_mktag(1), HeadVar__1_1, (MR_Integer) 0))));
      MR_Word Vars_10 = ((MR_Word) ((MR_hl_field(MR_mktag(1), HeadVar__1_1, (MR_Integer) 1))));
      MR_Word STATE_VARIABLE_VarSet_19_19;
      MR_Integer Var_20;
      MR_String _Name_13;
      MR_Word next_value_of_HeadVar__1_1;
      MR_Integer next_value_of_SeqNum_2;
      MR_Word next_value_of_STATE_VARIABLE_VarSet_0_3;

      succeeded = mercury__varset__search_name_3_p_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_var_type_0), STATE_VARIABLE_VarSet_0_3, Var_9, &_Name_13);
      if (succeeded)
        STATE_VARIABLE_VarSet_19_19 = STATE_VARIABLE_VarSet_0_3;
      else
      {
        MR_String Name_14;
        MR_String Var_18;

        Var_18 = mercury__string__int_to_string_1_f_0(SeqNum_2);
        Name_14 = mercury__string__f_43_43_2_f_0((MR_String) "HeadVar__", Var_18);
        mercury__varset__name_var_4_p_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_var_type_0), Var_9, Name_14, STATE_VARIABLE_VarSet_0_3, &STATE_VARIABLE_VarSet_19_19);
      }
      Var_20 = (MR_Integer) ((MR_Unsigned) SeqNum_2 + (MR_Unsigned) 1);
      // direct tailcall eliminated
      ;
      next_value_of_HeadVar__1_1 = Vars_10;
      next_value_of_SeqNum_2 = Var_20;
      next_value_of_STATE_VARIABLE_VarSet_0_3 = STATE_VARIABLE_VarSet_19_19;
      HeadVar__1_1 = next_value_of_HeadVar__1_1;
      SeqNum_2 = next_value_of_SeqNum_2;
      STATE_VARIABLE_VarSet_0_3 = next_value_of_STATE_VARIABLE_VarSet_0_3;
      continue;
    }
    break;
  }
}

MR_bool MR_CALL 
hlds__hlds_pred__proc_info_is_valid_mode_1_p_0(
  MR_Word ProcInfo_2)
{
  {
    MR_bool succeeded;
    MR_Word ModeErrors_3 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcInfo_2, (MR_Integer) 12))));

    succeeded = (ModeErrors_3 == (MR_Word) ((MR_Unsigned) 0U));
    return succeeded;
  }
}

void MR_CALL 
hlds__hlds_pred__clone_proc_id_3_p_0(
  MR_Word ProcTable_4,
  MR_Integer _ProcId_5,
  MR_Integer * CloneProcId_6)
{
  hlds__hlds_pred__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_108_111_110_101_95_112_114_111_99_95_105_100_95_95_91_50_93_95_48_3_p_0(ProcTable_4, CloneProcId_6);
}

void MR_CALL 
hlds__hlds_pred__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_99_108_111_110_101_95_112_114_111_99_95_105_100_95_95_91_50_93_95_48_3_p_0(
  MR_Word ProcTable_4,
  MR_Integer * CloneProcId_6)
{
  hlds__hlds_pred__find_lowest_unused_proc_id_2_3_p_0((MR_Integer) 0, ProcTable_4, CloneProcId_6);
}

static void MR_CALL 
hlds__hlds_pred__find_lowest_unused_proc_id_2_3_p_0(
  MR_Integer TrialProcId_4,
  MR_Word ProcTable_5,
  MR_Integer * CloneProcId_6)
{
  while (MR_TRUE)
  {
    MR_bool succeeded;
    MR_Box conv0_Var_7;

    // setup for model_det tailcalls optimized into a loop
    ;
    succeeded = mercury__map__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_115_101_97_114_99_104_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_5, TrialProcId_4, &conv0_Var_7);
    if (succeeded)
      succeeded = MR_TRUE;
    if (succeeded)
    {
      MR_Integer Var_8 = (MR_Integer) ((MR_Unsigned) TrialProcId_4 + (MR_Unsigned) 1);
      MR_Integer next_value_of_TrialProcId_4 = Var_8;

      // direct tailcall eliminated
      ;
      TrialProcId_4 = next_value_of_TrialProcId_4;
      continue;
    }
    else
      *CloneProcId_6 = TrialProcId_4;
    break;
  }
}

MR_bool MR_CALL 
hlds__hlds_pred__proc_info_has_higher_order_arg_from_details_3_p_0(
  MR_Word ModuleInfo_4,
  MR_Word VarTypes_5,
  MR_Word HeadVar__3_3)
{
  {
    MR_bool succeeded;

    succeeded = hlds__hlds_pred__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_112_114_111_99_95_105_110_102_111_95_104_97_115_95_104_105_103_104_101_114_95_111_114_100_101_114_95_97_114_103_95_102_114_111_109_95_100_101_116_97_105_108_115_95_95_91_49_93_95_48_3_p_0(VarTypes_5, HeadVar__3_3);
    return succeeded;
  }
}

MR_bool MR_CALL 
hlds__hlds_pred__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_112_114_111_99_95_105_110_102_111_95_104_97_115_95_104_105_103_104_101_114_95_111_114_100_101_114_95_97_114_103_95_102_114_111_109_95_100_101_116_97_105_108_115_95_95_91_49_93_95_48_3_p_0(
  MR_Word VarTypes_5,
  MR_Word HeadVar__3_3)
{
  while (MR_TRUE)
  {
    MR_bool succeeded = (HeadVar__3_3 != (MR_Word) ((MR_Unsigned) 0U));
    MR_Word HeadVar_6;
    MR_Word HeadVars_7;

    // setup for model_semi tailcalls optimized into a loop
    ;
    if (succeeded)
    {
      HeadVar_6 = ((MR_Word) ((MR_hl_field(MR_mktag(1), HeadVar__3_3, (MR_Integer) 0))));
      HeadVars_7 = ((MR_Word) ((MR_hl_field(MR_mktag(1), HeadVar__3_3, (MR_Integer) 1))));
      {
        MR_Word VarType_8;

        hlds__vartypes__lookup_var_type_3_p_0(VarTypes_5, HeadVar_6, &VarType_8);
        succeeded = parse_tree__prog_type__type_is_higher_order_1_p_0(VarType_8);
      }
      if (!(succeeded))
      {
        MR_Word next_value_of_HeadVar__3_3 = HeadVars_7;

        // direct tailcall eliminated
        ;
        HeadVar__3_3 = next_value_of_HeadVar__3_3;
        continue;
      }
    }
    return succeeded;
    break;
  }
}

MR_bool MR_CALL 
hlds__hlds_pred__proc_info_has_io_state_pair_4_p_0(
  MR_Word ModuleInfo_5,
  MR_Word ProcInfo_6,
  MR_Integer * InArgNum_7,
  MR_Integer * OutArgNum_8)
{
  {
    MR_bool succeeded;
    MR_Word HeadVars_9 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcInfo_6, (MR_Integer) 0))));
    MR_Word ArgModes_10 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcInfo_6, (MR_Integer) 7))));
    MR_Word VarTypes_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcInfo_6, (MR_Integer) 3))));

    succeeded = hlds__hlds_pred__proc_info_has_io_state_pair_from_details_6_p_0(ModuleInfo_5, HeadVars_9, ArgModes_10, VarTypes_11, InArgNum_7, OutArgNum_8);
    return succeeded;
  }
}

MR_bool MR_CALL 
hlds__hlds_pred__proc_info_has_io_state_pair_from_details_6_p_0(
  MR_Word ModuleInfo_7,
  MR_Word HeadVars_8,
  MR_Word ArgModes_9,
  MR_Word VarTypes_10,
  MR_Integer * InArgNum_11,
  MR_Integer * OutArgNum_12)
{
  {
    MR_bool succeeded;
    MR_Word HeadVarsModes_13;
    MR_Word MaybeIn_14;
    MR_Word MaybeOut_15;

    mercury__assoc_list__from_corresponding_lists_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[1]), (MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_mode_0), HeadVars_8, ArgModes_9, &HeadVarsModes_13);
    succeeded = hlds__hlds_pred__proc_info_has_io_state_pair_2_8_p_0(HeadVarsModes_13, ModuleInfo_7, VarTypes_10, (MR_Integer) 1, (MR_Word) ((MR_Unsigned) 0U), &MaybeIn_14, (MR_Word) ((MR_Unsigned) 0U), &MaybeOut_15);
    if (succeeded)
    {
      succeeded = (MaybeIn_14 != (MR_Word) ((MR_Unsigned) 0U));
      if (succeeded)
      {
        *InArgNum_11 = ((MR_Integer) ((MR_hl_field(MR_mktag(1), MaybeIn_14, (MR_Integer) 0))));
        succeeded = (MaybeOut_15 != (MR_Word) ((MR_Unsigned) 0U));
        if (succeeded)
          *OutArgNum_12 = ((MR_Integer) ((MR_hl_field(MR_mktag(1), MaybeOut_15, (MR_Integer) 0))));
      }
    }
    return succeeded;
  }
}

static MR_bool MR_CALL 
hlds__hlds_pred__proc_info_has_io_state_pair_2_8_p_0(
  MR_Word HeadVar__1_1,
  MR_Word ModuleInfo_2,
  MR_Word VarTypes_3,
  MR_Integer ArgNum_4,
  MR_Word STATE_VARIABLE_MaybeIn_0_5,
  MR_Word * STATE_VARIABLE_MaybeIn_6,
  MR_Word STATE_VARIABLE_MaybeOut_0_7,
  MR_Word * STATE_VARIABLE_MaybeOut_8)
{
  while (MR_TRUE)
  {
    MR_bool succeeded;

    // setup for model_semi tailcalls optimized into a loop
    ;
    if ((HeadVar__1_1 == (MR_Word) ((MR_Unsigned) 0U)))
    {
      *STATE_VARIABLE_MaybeOut_8 = STATE_VARIABLE_MaybeOut_0_7;
      *STATE_VARIABLE_MaybeIn_6 = STATE_VARIABLE_MaybeIn_0_5;
      succeeded = MR_TRUE;
    }
    else
    {
      MR_Word Var_18;
      MR_Word Mode_19;
      MR_Word VarModes_20 = ((MR_Word) ((MR_hl_field(MR_mktag(1), HeadVar__1_1, (MR_Integer) 1))));
      MR_Word Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(1), HeadVar__1_1, (MR_Integer) 0))));
      MR_Word STATE_VARIABLE_MaybeIn_34_34;
      MR_Word STATE_VARIABLE_MaybeOut_35_35;
      MR_Integer Var_36;
      MR_Integer Var_39;
      MR_Word VarType_26;
      MR_Word next_value_of_HeadVar__1_1;
      MR_Integer next_value_of_ArgNum_4;
      MR_Word next_value_of_STATE_VARIABLE_MaybeIn_0_5;
      MR_Word next_value_of_STATE_VARIABLE_MaybeOut_0_7;

      Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_33, (MR_Integer) 0))));
      Mode_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_33, (MR_Integer) 1))));
      hlds__vartypes__lookup_var_type_3_p_0(VarTypes_3, Var_18, &VarType_26);
      succeeded = parse_tree__prog_type__type_is_io_state_1_p_0(VarType_26);
      if (succeeded)
      {
        succeeded = check_hlds__mode_test__mode_is_fully_input_2_p_0(ModuleInfo_2, Mode_19);
        if (succeeded)
        {
          succeeded = (STATE_VARIABLE_MaybeIn_0_5 == (MR_Word) ((MR_Unsigned) 0U));
          if (succeeded)
          {
            STATE_VARIABLE_MaybeOut_35_35 = STATE_VARIABLE_MaybeOut_0_7;
            {
              STATE_VARIABLE_MaybeIn_34_34 = (MR_Word) MR_mkword(MR_mktag(1), MR_new_object(MR_Word, (1 * sizeof(MR_Word)), NULL, NULL));
              MR_hl_field(MR_mktag(1), STATE_VARIABLE_MaybeIn_34_34, 0) = ((MR_Box) (ArgNum_4));
            }
            succeeded = MR_TRUE;
          }
        }
        else
        {
          succeeded = check_hlds__mode_test__mode_is_fully_output_2_p_0(ModuleInfo_2, Mode_19);
          if (succeeded)
          {
            succeeded = (STATE_VARIABLE_MaybeOut_0_7 == (MR_Word) ((MR_Unsigned) 0U));
            if (succeeded)
            {
              STATE_VARIABLE_MaybeIn_34_34 = STATE_VARIABLE_MaybeIn_0_5;
              {
                STATE_VARIABLE_MaybeOut_35_35 = (MR_Word) MR_mkword(MR_mktag(1), MR_new_object(MR_Word, (1 * sizeof(MR_Word)), NULL, NULL));
                MR_hl_field(MR_mktag(1), STATE_VARIABLE_MaybeOut_35_35, 0) = ((MR_Box) (ArgNum_4));
              }
              succeeded = MR_TRUE;
            }
          }
        }
      }
      else
      {
        STATE_VARIABLE_MaybeOut_35_35 = STATE_VARIABLE_MaybeOut_0_7;
        STATE_VARIABLE_MaybeIn_34_34 = STATE_VARIABLE_MaybeIn_0_5;
        succeeded = MR_TRUE;
      }
      if (succeeded)
      {
        Var_39 = (MR_Integer) 1;
        Var_36 = (MR_Integer) ((MR_Unsigned) ArgNum_4 + (MR_Unsigned) Var_39);
        // direct tailcall eliminated
        ;
        next_value_of_HeadVar__1_1 = VarModes_20;
        next_value_of_ArgNum_4 = Var_36;
        next_value_of_STATE_VARIABLE_MaybeIn_0_5 = STATE_VARIABLE_MaybeIn_34_34;
        next_value_of_STATE_VARIABLE_MaybeOut_0_7 = STATE_VARIABLE_MaybeOut_35_35;
        HeadVar__1_1 = next_value_of_HeadVar__1_1;
        ArgNum_4 = next_value_of_ArgNum_4;
        STATE_VARIABLE_MaybeIn_0_5 = next_value_of_STATE_VARIABLE_MaybeIn_0_5;
        STATE_VARIABLE_MaybeOut_0_7 = next_value_of_STATE_VARIABLE_MaybeOut_0_7;
        continue;
      }
    }
    return succeeded;
    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(MR_mktag(0), PredInfo_4, (MR_Integer) 0))));
    MR_String PredName_8 = ((MR_String) ((MR_hl_field(MR_mktag(0), PredInfo_4, (MR_Integer) 1))));
    MR_Integer PredArity_9 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), PredInfo_4, (MR_Integer) 2))));

    succeeded = mdbcomp__program_representation__no_type_info_builtin_3_p_0(PredModule_7, PredName_8, PredArity_9);
    if (succeeded)
      *BodyTypeInfoLiveness_6 = (MR_Integer) 0;
    else
      libs__globals__lookup_bool_option_3_p_0(Globals_5, (MR_Integer) 313, 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(MR_mktag(0), PredInfo_5, (MR_Integer) 0))));
    MR_String PredName_10 = ((MR_String) ((MR_hl_field(MR_mktag(0), PredInfo_5, (MR_Integer) 1))));
    MR_Integer PredArity_11 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), PredInfo_5, (MR_Integer) 2))));

    succeeded = mdbcomp__program_representation__no_type_info_builtin_3_p_0(PredModule_9, PredName_10, PredArity_11);
    if (succeeded)
      *InterfaceTypeInfoLiveness_8 = (MR_Integer) 0;
    else
    {
      MR_Word Status_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PredInfo_5, (MR_Integer) 5))));
      MR_Word ProcTable_13;
      MR_Word ProcInfo_14;
      MR_Word IsAddressTaken_15;
      MR_Box conv0_ProcInfo_14;

      hlds__hlds_pred__pred_info_get_proc_table_2_p_0(PredInfo_5, &ProcTable_13);
      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);
      hlds__hlds_pred__non_special_interface_should_use_typeinfo_liveness_4_p_0(Status_12, IsAddressTaken_15, Globals_7, InterfaceTypeInfoLiveness_8);
    }
  }
}

static MR_bool MR_CALL 
hlds__hlds_pred__proc_info_uninstantiated_head_vars_3_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box * wrapper_arg_2)
{
  {
    MR_bool succeeded;
    MR_Box closure = closure_arg;
    MR_Word conv0_LambdaHeadVar__2_19;

    succeeded = hlds__hlds_pred__IntroducedFrom__pred__proc_info_uninstantiated_head_vars__3912__1_4_p_0(((MR_Word) ((MR_hl_field(MR_mktag(0), closure, (MR_Integer) 3)))), ((MR_Word) ((MR_hl_field(MR_mktag(0), closure, (MR_Integer) 4)))), ((MR_Word) (wrapper_arg_1)), &conv0_LambdaHeadVar__2_19);
    if (succeeded)
    {
      *wrapper_arg_2 = ((MR_Box) (conv0_LambdaHeadVar__2_19));
      succeeded = MR_TRUE;
    }
    return succeeded;
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_uninstantiated_head_vars_3_p_0(
  MR_Word ModuleInfo_4,
  MR_Word ProcInfo_5,
  MR_Word * UnchangedInstHeadVars_6)
{
  {
    MR_bool succeeded;
    MR_Word HeadVars_7 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcInfo_5, (MR_Integer) 0))));
    MR_Word ArgModes_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcInfo_5, (MR_Integer) 7))));
    MR_Word VarTypes_9 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcInfo_5, (MR_Integer) 3))));
    MR_Word HeadVarModes_10;
    MR_Word IsInstUnchanged_11;

    mercury__assoc_list__from_corresponding_lists_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[1]), (MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_mode_0), HeadVars_7, ArgModes_8, &HeadVarModes_10);
    {
      IsInstUnchanged_11 = (MR_Word) MR_new_object(MR_Word, (5 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), IsInstUnchanged_11, 0) = ((MR_Box) (&hlds__hlds_pred_scalar_common_7[0]));
      MR_hl_field(MR_mktag(0), IsInstUnchanged_11, 1) = ((MR_Box) (hlds__hlds_pred__proc_info_uninstantiated_head_vars_3_p_0_1));
      MR_hl_field(MR_mktag(0), IsInstUnchanged_11, 2) = ((MR_Box) ((MR_Integer) 2));
      MR_hl_field(MR_mktag(0), IsInstUnchanged_11, 3) = ((MR_Box) (ModuleInfo_4));
      MR_hl_field(MR_mktag(0), IsInstUnchanged_11, 4) = ((MR_Box) (VarTypes_9));
    }
    mercury__list__filter_map_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_1[5]), (MR_Word) (&hlds__hlds_pred_scalar_common_2[1]), IsInstUnchanged_11, HeadVarModes_10, UnchangedInstHeadVars_6);
  }
}

static MR_bool MR_CALL 
hlds__hlds_pred__proc_info_instantiated_head_vars_3_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box * wrapper_arg_2)
{
  {
    MR_bool succeeded;
    MR_Box closure = closure_arg;
    MR_Word conv0_LambdaHeadVar__2_19;

    succeeded = hlds__hlds_pred__IntroducedFrom__pred__proc_info_instantiated_head_vars__3898__1_4_p_0(((MR_Word) ((MR_hl_field(MR_mktag(0), closure, (MR_Integer) 3)))), ((MR_Word) ((MR_hl_field(MR_mktag(0), closure, (MR_Integer) 4)))), ((MR_Word) (wrapper_arg_1)), &conv0_LambdaHeadVar__2_19);
    if (succeeded)
    {
      *wrapper_arg_2 = ((MR_Box) (conv0_LambdaHeadVar__2_19));
      succeeded = MR_TRUE;
    }
    return succeeded;
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_instantiated_head_vars_3_p_0(
  MR_Word ModuleInfo_4,
  MR_Word ProcInfo_5,
  MR_Word * ChangedInstHeadVars_6)
{
  {
    MR_bool succeeded;
    MR_Word HeadVars_7 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcInfo_5, (MR_Integer) 0))));
    MR_Word ArgModes_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcInfo_5, (MR_Integer) 7))));
    MR_Word VarTypes_9 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcInfo_5, (MR_Integer) 3))));
    MR_Word HeadVarModes_10;
    MR_Word IsInstChanged_11;

    mercury__assoc_list__from_corresponding_lists_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[1]), (MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_mode_0), HeadVars_7, ArgModes_8, &HeadVarModes_10);
    {
      IsInstChanged_11 = (MR_Word) MR_new_object(MR_Word, (5 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), IsInstChanged_11, 0) = ((MR_Box) (&hlds__hlds_pred_scalar_common_7[0]));
      MR_hl_field(MR_mktag(0), IsInstChanged_11, 1) = ((MR_Box) (hlds__hlds_pred__proc_info_instantiated_head_vars_3_p_0_1));
      MR_hl_field(MR_mktag(0), IsInstChanged_11, 2) = ((MR_Box) ((MR_Integer) 2));
      MR_hl_field(MR_mktag(0), IsInstChanged_11, 3) = ((MR_Box) (ModuleInfo_4));
      MR_hl_field(MR_mktag(0), IsInstChanged_11, 4) = ((MR_Box) (VarTypes_9));
    }
    mercury__list__filter_map_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_1[5]), (MR_Word) (&hlds__hlds_pred_scalar_common_2[1]), IsInstChanged_11, HeadVarModes_10, ChangedInstHeadVars_6);
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_create_vars_from_types_4_p_0(
  MR_Word Types_5,
  MR_Word * NewVars_6,
  MR_Word STATE_VARIABLE_ProcInfo_0_13,
  MR_Word * STATE_VARIABLE_ProcInfo_14)
{
  {
    MR_Integer NumVars_8;
    MR_Word VarSet0_9;
    MR_Word VarTypes0_10;
    MR_Word VarSet_11;
    MR_Word VarTypes_12;
    MR_Word Var_54;
    MR_Word Var_55;
    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_Word Var_65;
    MR_Word Var_66;
    MR_Word Var_67;

    mercury__list__length_2_p_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_type_0), Types_5, &NumVars_8);
    VarSet0_9 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_13, (MR_Integer) 2))));
    VarTypes0_10 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_13, (MR_Integer) 3))));
    mercury__varset__new_vars_4_p_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_var_type_0), NumVars_8, NewVars_6, VarSet0_9, &VarSet_11);
    hlds__vartypes__vartypes_add_corresponding_lists_4_p_0(*NewVars_6, Types_5, VarTypes0_10, &VarTypes_12);
    Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_13, (MR_Integer) 0))));
    Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_13, (MR_Integer) 1))));
    Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_13, (MR_Integer) 4))));
    Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_13, (MR_Integer) 5))));
    Var_60 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_13, (MR_Integer) 6))));
    Var_61 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_13, (MR_Integer) 7))));
    Var_62 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_13, (MR_Integer) 8))));
    Var_63 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_13, (MR_Integer) 9))));
    Var_64 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_13, (MR_Integer) 10))) & (MR_Integer) 7);
    Var_65 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_13, (MR_Integer) 11))));
    Var_66 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_13, (MR_Integer) 12))));
    Var_67 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_13, (MR_Integer) 13))));
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_ProcInfo_14 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_54));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_55));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (VarSet_11));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (VarTypes_12));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_58));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_59));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_60));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_61));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_62));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_63));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_64));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_65));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_66));
      MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Var_67));
    }
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_create_var_from_type_5_p_0(
  MR_Word Type_6,
  MR_Word MaybeName_7,
  MR_Word * NewVar_8,
  MR_Word STATE_VARIABLE_ProcInfo_0_14,
  MR_Word * STATE_VARIABLE_ProcInfo_15)
{
  {
    MR_Word VarSet0_10 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_14, (MR_Integer) 2))));
    MR_Word VarTypes0_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_14, (MR_Integer) 3))));
    MR_Word VarSet_12;
    MR_Word VarTypes_13;
    MR_Word Var_54;
    MR_Word Var_55;
    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_Word Var_65;
    MR_Word Var_66;
    MR_Word Var_67;

    mercury__varset__new_maybe_named_var_4_p_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_var_type_0), MaybeName_7, NewVar_8, VarSet0_10, &VarSet_12);
    hlds__vartypes__add_var_type_4_p_0(*NewVar_8, Type_6, VarTypes0_11, &VarTypes_13);
    Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_14, (MR_Integer) 0))));
    Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_14, (MR_Integer) 1))));
    Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_14, (MR_Integer) 4))));
    Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_14, (MR_Integer) 5))));
    Var_60 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_14, (MR_Integer) 6))));
    Var_61 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_14, (MR_Integer) 7))));
    Var_62 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_14, (MR_Integer) 8))));
    Var_63 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_14, (MR_Integer) 9))));
    Var_64 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_14, (MR_Integer) 10))) & (MR_Integer) 7);
    Var_65 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_14, (MR_Integer) 11))));
    Var_66 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_14, (MR_Integer) 12))));
    Var_67 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_14, (MR_Integer) 13))));
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_ProcInfo_15 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_54));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_55));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (VarSet_12));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (VarTypes_13));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_58));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_59));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_60));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_61));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_62));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_63));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_64));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_65));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_66));
      MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Var_67));
    }
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_ensure_unique_names_2_p_0(
  MR_Word STATE_VARIABLE_ProcInfo_0_8,
  MR_Word * STATE_VARIABLE_ProcInfo_9)
{
  {
    MR_Word VarTypes_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_8, (MR_Integer) 3))));
    MR_Word AllVars_5;
    MR_Word VarSet0_6;
    MR_Word VarSet_7;
    MR_Word Var_48;
    MR_Word Var_49;
    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;

    hlds__vartypes__vartypes_vars_2_p_0(VarTypes_4, &AllVars_5);
    VarSet0_6 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_8, (MR_Integer) 2))));
    mercury__varset__ensure_unique_names_4_p_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_var_type_0), AllVars_5, (MR_String) "p", VarSet0_6, &VarSet_7);
    Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_8, (MR_Integer) 0))));
    Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_8, (MR_Integer) 1))));
    Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_8, (MR_Integer) 3))));
    Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_8, (MR_Integer) 4))));
    Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_8, (MR_Integer) 5))));
    Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_8, (MR_Integer) 6))));
    Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_8, (MR_Integer) 7))));
    Var_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_8, (MR_Integer) 8))));
    Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_8, (MR_Integer) 9))));
    Var_58 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_8, (MR_Integer) 10))) & (MR_Integer) 7);
    Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_8, (MR_Integer) 11))));
    Var_60 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_8, (MR_Integer) 12))));
    Var_61 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_8, (MR_Integer) 13))));
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_ProcInfo_9 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_48));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_49));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (VarSet_7));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_51));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_52));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_53));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_54));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_55));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_56));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_57));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_58));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_59));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_60));
      MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Var_61));
    }
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_initial_instmap_3_p_0(
  MR_Word ModuleInfo_4,
  MR_Word ProcInfo_5,
  MR_Word * InstMap_6)
{
  {
    MR_Word HeadVars_7 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcInfo_5, (MR_Integer) 0))));
    MR_Word ArgModes_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcInfo_5, (MR_Integer) 7))));
    MR_Word InitialInsts_9;
    MR_Word InstAL_10;

    check_hlds__mode_util__mode_list_get_initial_insts_3_p_0(ModuleInfo_4, ArgModes_8, &InitialInsts_9);
    mercury__assoc_list__from_corresponding_lists_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[1]), (MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_inst_0), HeadVars_7, InitialInsts_9, &InstAL_10);
    *InstMap_6 = hlds__instmap__instmap_from_assoc_list_1_f_0(InstAL_10);
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_arg_info_2_p_0(
  MR_Word ProcInfo_3,
  MR_Word * ArgInfo_4)
{
  {
    MR_Word MaybeArgInfo0_5;
    MR_Word Var_10 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcInfo_3, (MR_Integer) 13))));

    MaybeArgInfo0_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 15))));
    if ((MaybeArgInfo0_5 == (MR_Word) ((MR_Unsigned) 0U)))
      {
        mercury__require__unexpected_2_p_0((MR_String) "predicate \140hlds.hlds_pred.proc_info_arg_info\'/2", (MR_String) "arg_info not set");
        return;
      }
    else
      *ArgInfo_4 = ((MR_Word) ((MR_hl_field(MR_mktag(1), MaybeArgInfo0_5, (MR_Integer) 0))));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_arglives_3_p_0(
  MR_Word ModuleInfo_4,
  MR_Word ProcInfo_5,
  MR_Word * ArgLives_6)
{
  {
    MR_Word MaybeArgLives_7 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcInfo_5, (MR_Integer) 8))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcInfo_5, (MR_Integer) 7))));

    if ((MaybeArgLives_7 == (MR_Word) ((MR_Unsigned) 0U)))
      check_hlds__mode_util__get_arg_lives_3_p_0(ModuleInfo_4, Var_19, ArgLives_6);
    else
      *ArgLives_6 = ((MR_Word) ((MR_hl_field(MR_mktag(1), MaybeArgLives_7, (MR_Integer) 0))));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_never_succeeds_2_p_0(
  MR_Word ProcInfo_3,
  MR_Word * CanSucceed_4)
{
  {
    MR_Word DeclaredDeterminism_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcInfo_3, (MR_Integer) 9))));

    if ((DeclaredDeterminism_5 == (MR_Word) ((MR_Unsigned) 0U)))
      *CanSucceed_4 = (MR_Integer) 0;
    else
    {
      MR_Word Determinism_6 = ((MR_Word) ((MR_hl_field(MR_mktag(1), DeclaredDeterminism_5, (MR_Integer) 0))));
      MR_Word MaxSoln_8;
      MR_Word Var_7;

      parse_tree__prog_data__determinism_components_3_p_0(Determinism_6, &Var_7, &MaxSoln_8);
      *CanSucceed_4 = ((&hlds__hlds_pred_vector_common_6[0 + MaxSoln_8]))->hlds__hlds_pred__vector_common_type_6_0__vct_6_f_0;
    }
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_interface_determinism_2_p_0(
  MR_Word ProcInfo_3,
  MR_Word * Determinism_4)
{
  {
    MR_Word MaybeDeterminism_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcInfo_3, (MR_Integer) 9))));
    MR_Word Var_17 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), ProcInfo_3, (MR_Integer) 10))) & (MR_Integer) 7);

    if ((MaybeDeterminism_5 == (MR_Word) ((MR_Unsigned) 0U)))
      *Determinism_4 = Var_17;
    else
      *Determinism_4 = ((MR_Word) ((MR_hl_field(MR_mktag(1), MaybeDeterminism_5, (MR_Integer) 0))));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_declared_argmodes_2_p_0(
  MR_Word ProcInfo_3,
  MR_Word * ArgModes_4)
{
  {
    MR_Word MaybeArgModes_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcInfo_3, (MR_Integer) 6))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcInfo_3, (MR_Integer) 7))));

    if ((MaybeArgModes_5 == (MR_Word) ((MR_Unsigned) 0U)))
      *ArgModes_4 = Var_15;
    else
      *ArgModes_4 = ((MR_Word) ((MR_hl_field(MR_mktag(1), MaybeArgModes_5, (MR_Integer) 0))));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_head_modes_constraint_2_p_0(
  MR_Word ProcInfo_3,
  MR_Word * HeadModesConstraint_4)
{
  {
    MR_Word MaybeHeadModesConstraint_5;
    MR_Word Var_6 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcInfo_3, (MR_Integer) 13))));

    MaybeHeadModesConstraint_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_6, (MR_Integer) 3))));
    if ((MaybeHeadModesConstraint_5 == (MR_Word) ((MR_Unsigned) 0U)))
      {
        mercury__require__unexpected_2_p_0((MR_String) "predicate \140hlds.hlds_pred.proc_info_head_modes_constraint\'/2", (MR_String) "no constraint");
        return;
      }
    else
      *HeadModesConstraint_4 = ((MR_Word) ((MR_hl_field(MR_mktag(1), MaybeHeadModesConstraint_5, (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(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_4, (MR_Integer) 13))));
    MR_Word Var_9;
    MR_Word Var_10 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 32))));
    MR_Word Var_11;
    MR_Word Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_4, (MR_Integer) 0))));
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_4, (MR_Integer) 1))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_4, (MR_Integer) 2))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_4, (MR_Integer) 3))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_4, (MR_Integer) 4))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_4, (MR_Integer) 5))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_4, (MR_Integer) 6))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_4, (MR_Integer) 7))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_4, (MR_Integer) 8))));
    MR_Word Var_21 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_4, (MR_Integer) 9))));
    MR_Word Var_22 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_4, (MR_Integer) 10))) & (MR_Integer) 7);
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_4, (MR_Integer) 11))));
    MR_Word Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_4, (MR_Integer) 12))));
    MR_Word Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 0))));
    MR_Word Var_26 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 1))));
    MR_Word Var_27 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 2))) & (MR_Integer) 1);
    MR_Word Var_28 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 3))));
    MR_Word Var_29 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 4))) & (MR_Integer) 3);
    MR_Word Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 5))));
    MR_Word Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 6))));
    MR_Word Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 7))));
    MR_Word Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 8))));
    MR_Word Var_34 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 9))));
    MR_Word Var_39 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 11))));
    MR_Word Var_40 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 12))));
    MR_Word Var_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 13))));
    MR_Word Var_42 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 14))));
    MR_Word Var_43 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 15))));
    MR_Word Var_44 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 16))));
    MR_Word Var_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 17))));
    MR_Word Var_46 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 18))));
    MR_Word Var_47 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 19))) & (MR_Integer) 1);
    MR_Word Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 20))));
    MR_Word Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 21))));
    MR_Word Var_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 22))));
    MR_Word Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 23))));
    MR_Word Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 24))));
    MR_Word Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 25))));
    MR_Word Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 26))));
    MR_Word Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 27))));
    MR_Word Var_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 28))));
    MR_Word Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 29))));
    MR_Word Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 30))));
    MR_Word Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 31))));
    MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 10)));
    MR_Word Var_60 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 0))));

    {
      Var_11 = (MR_Word) MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_11, 0) = ((MR_Box) (Var_60));
      MR_hl_field(MR_mktag(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(MR_mktag(0), Var_9, 0) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), Var_9, 1) = ((MR_Box) (Var_26));
      MR_hl_field(MR_mktag(0), Var_9, 2) = (MR_Box) ((MR_Unsigned) (Var_27));
      MR_hl_field(MR_mktag(0), Var_9, 3) = ((MR_Box) (Var_28));
      MR_hl_field(MR_mktag(0), Var_9, 4) = (MR_Box) ((MR_Unsigned) (Var_29));
      MR_hl_field(MR_mktag(0), Var_9, 5) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), Var_9, 6) = ((MR_Box) (Var_31));
      MR_hl_field(MR_mktag(0), Var_9, 7) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), Var_9, 8) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), Var_9, 9) = ((MR_Box) (Var_34));
      MR_hl_field(MR_mktag(0), Var_9, 10) = (MR_Box) (packed_word_3);
      MR_hl_field(MR_mktag(0), Var_9, 11) = ((MR_Box) (Var_39));
      MR_hl_field(MR_mktag(0), Var_9, 12) = ((MR_Box) (Var_40));
      MR_hl_field(MR_mktag(0), Var_9, 13) = ((MR_Box) (Var_41));
      MR_hl_field(MR_mktag(0), Var_9, 14) = ((MR_Box) (Var_42));
      MR_hl_field(MR_mktag(0), Var_9, 15) = ((MR_Box) (Var_43));
      MR_hl_field(MR_mktag(0), Var_9, 16) = ((MR_Box) (Var_44));
      MR_hl_field(MR_mktag(0), Var_9, 17) = ((MR_Box) (Var_45));
      MR_hl_field(MR_mktag(0), Var_9, 18) = ((MR_Box) (Var_46));
      MR_hl_field(MR_mktag(0), Var_9, 19) = (MR_Box) ((MR_Unsigned) (Var_47));
      MR_hl_field(MR_mktag(0), Var_9, 20) = ((MR_Box) (Var_48));
      MR_hl_field(MR_mktag(0), Var_9, 21) = ((MR_Box) (Var_49));
      MR_hl_field(MR_mktag(0), Var_9, 22) = ((MR_Box) (Var_50));
      MR_hl_field(MR_mktag(0), Var_9, 23) = ((MR_Box) (Var_51));
      MR_hl_field(MR_mktag(0), Var_9, 24) = ((MR_Box) (Var_52));
      MR_hl_field(MR_mktag(0), Var_9, 25) = ((MR_Box) (Var_53));
      MR_hl_field(MR_mktag(0), Var_9, 26) = ((MR_Box) (Var_54));
      MR_hl_field(MR_mktag(0), Var_9, 27) = ((MR_Box) (Var_55));
      MR_hl_field(MR_mktag(0), Var_9, 28) = ((MR_Box) (Var_56));
      MR_hl_field(MR_mktag(0), Var_9, 29) = ((MR_Box) (Var_57));
      MR_hl_field(MR_mktag(0), Var_9, 30) = ((MR_Box) (Var_58));
      MR_hl_field(MR_mktag(0), Var_9, 31) = ((MR_Box) (Var_59));
      MR_hl_field(MR_mktag(0), Var_9, 32) = ((MR_Box) (Var_11));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_ProcInfo_5 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_21));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_22));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(0), base, 13) = ((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_40;
    MR_Word Var_41;
    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_Word Var_65;
    MR_Word Var_66;
    MR_Unsigned packed_word_3;
    MR_Word Var_67;

    {
      ImportedReuse_10 = (MR_Word) MR_new_object(MR_Word, (3 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), ImportedReuse_10, 0) = ((MR_Box) (HeadVars_6));
      MR_hl_field(MR_mktag(0), ImportedReuse_10, 1) = ((MR_Box) (Types_7));
      MR_hl_field(MR_mktag(0), ImportedReuse_10, 2) = ((MR_Box) (Reuse_8));
    }
    {
      MaybeImportedReuse_11 = (MR_Word) MR_mkword(MR_mktag(1), MR_new_object(MR_Word, (1 * sizeof(MR_Word)), NULL, NULL));
      MR_hl_field(MR_mktag(1), MaybeImportedReuse_11, 0) = ((MR_Box) (ImportedReuse_10));
    }
    Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_12, (MR_Integer) 0))));
    Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_12, (MR_Integer) 1))));
    Var_21 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_12, (MR_Integer) 2))));
    Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_12, (MR_Integer) 3))));
    Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_12, (MR_Integer) 4))));
    Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_12, (MR_Integer) 5))));
    Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_12, (MR_Integer) 6))));
    Var_26 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_12, (MR_Integer) 7))));
    Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_12, (MR_Integer) 8))));
    Var_28 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_12, (MR_Integer) 9))));
    Var_29 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_12, (MR_Integer) 10))) & (MR_Integer) 7);
    Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_12, (MR_Integer) 11))));
    Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_12, (MR_Integer) 12))));
    Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_12, (MR_Integer) 13))));
    Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 0))));
    Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 1))));
    Var_34 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 2))) & (MR_Integer) 1);
    Var_35 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 3))));
    Var_36 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 4))) & (MR_Integer) 3);
    Var_37 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 5))));
    Var_38 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 6))));
    Var_39 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 7))));
    Var_40 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 8))));
    Var_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 9))));
    packed_word_3 = (MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 10)));
    Var_46 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 11))));
    Var_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 12))));
    Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 13))));
    Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 14))));
    Var_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 15))));
    Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 16))));
    Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 17))));
    Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 18))));
    Var_54 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 19))) & (MR_Integer) 1);
    Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 20))));
    Var_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 21))));
    Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 22))));
    Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 23))));
    Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 24))));
    Var_60 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 25))));
    Var_61 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 26))));
    Var_62 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 27))));
    Var_63 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 28))));
    Var_64 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 29))));
    Var_65 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 30))));
    Var_66 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 31))));
    Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 32))));
    Var_67 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_17, (MR_Integer) 0))));
    {
      Var_18 = (MR_Word) MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_18, 0) = ((MR_Box) (Var_67));
      MR_hl_field(MR_mktag(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(MR_mktag(0), Var_16, 0) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), Var_16, 1) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), Var_16, 2) = (MR_Box) ((MR_Unsigned) (Var_34));
      MR_hl_field(MR_mktag(0), Var_16, 3) = ((MR_Box) (Var_35));
      MR_hl_field(MR_mktag(0), Var_16, 4) = (MR_Box) ((MR_Unsigned) (Var_36));
      MR_hl_field(MR_mktag(0), Var_16, 5) = ((MR_Box) (Var_37));
      MR_hl_field(MR_mktag(0), Var_16, 6) = ((MR_Box) (Var_38));
      MR_hl_field(MR_mktag(0), Var_16, 7) = ((MR_Box) (Var_39));
      MR_hl_field(MR_mktag(0), Var_16, 8) = ((MR_Box) (Var_40));
      MR_hl_field(MR_mktag(0), Var_16, 9) = ((MR_Box) (Var_41));
      MR_hl_field(MR_mktag(0), Var_16, 10) = (MR_Box) (packed_word_3);
      MR_hl_field(MR_mktag(0), Var_16, 11) = ((MR_Box) (Var_46));
      MR_hl_field(MR_mktag(0), Var_16, 12) = ((MR_Box) (Var_47));
      MR_hl_field(MR_mktag(0), Var_16, 13) = ((MR_Box) (Var_48));
      MR_hl_field(MR_mktag(0), Var_16, 14) = ((MR_Box) (Var_49));
      MR_hl_field(MR_mktag(0), Var_16, 15) = ((MR_Box) (Var_50));
      MR_hl_field(MR_mktag(0), Var_16, 16) = ((MR_Box) (Var_51));
      MR_hl_field(MR_mktag(0), Var_16, 17) = ((MR_Box) (Var_52));
      MR_hl_field(MR_mktag(0), Var_16, 18) = ((MR_Box) (Var_53));
      MR_hl_field(MR_mktag(0), Var_16, 19) = (MR_Box) ((MR_Unsigned) (Var_54));
      MR_hl_field(MR_mktag(0), Var_16, 20) = ((MR_Box) (Var_55));
      MR_hl_field(MR_mktag(0), Var_16, 21) = ((MR_Box) (Var_56));
      MR_hl_field(MR_mktag(0), Var_16, 22) = ((MR_Box) (Var_57));
      MR_hl_field(MR_mktag(0), Var_16, 23) = ((MR_Box) (Var_58));
      MR_hl_field(MR_mktag(0), Var_16, 24) = ((MR_Box) (Var_59));
      MR_hl_field(MR_mktag(0), Var_16, 25) = ((MR_Box) (Var_60));
      MR_hl_field(MR_mktag(0), Var_16, 26) = ((MR_Box) (Var_61));
      MR_hl_field(MR_mktag(0), Var_16, 27) = ((MR_Box) (Var_62));
      MR_hl_field(MR_mktag(0), Var_16, 28) = ((MR_Box) (Var_63));
      MR_hl_field(MR_mktag(0), Var_16, 29) = ((MR_Box) (Var_64));
      MR_hl_field(MR_mktag(0), Var_16, 30) = ((MR_Box) (Var_65));
      MR_hl_field(MR_mktag(0), Var_16, 31) = ((MR_Box) (Var_66));
      MR_hl_field(MR_mktag(0), Var_16, 32) = ((MR_Box) (Var_18));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_ProcInfo_13 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_21));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_26));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_27));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_28));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_29));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_31));
      MR_hl_field(MR_mktag(0), base, 13) = ((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(MR_mktag(0), ProcInfo_5, (MR_Integer) 13))));
    MR_Word Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 32))));

    MaybeImportedReuse_9 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_12, (MR_Integer) 1))));
    succeeded = (MaybeImportedReuse_9 != (MR_Word) ((MR_Unsigned) 0U));
    if (succeeded)
    {
      ImportedReuse_10 = ((MR_Word) ((MR_hl_field(MR_mktag(1), MaybeImportedReuse_9, (MR_Integer) 0))));
      *HeadVars_6 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ImportedReuse_10, (MR_Integer) 0))));
      *Types_7 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ImportedReuse_10, (MR_Integer) 1))));
      *Reuse_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ImportedReuse_10, (MR_Integer) 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_35;
    MR_Word Var_36;
    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_Word Var_60;
    MR_Word Var_61;
    MR_Unsigned packed_word_3;
    MR_Word Var_63;

    {
      Var_9 = (MR_Word) MR_mkword(MR_mktag(1), MR_new_object(MR_Word, (1 * sizeof(MR_Word)), NULL, NULL));
      MR_hl_field(MR_mktag(1), Var_9, 0) = ((MR_Box) (Reuse_4));
    }
    Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_6, (MR_Integer) 0))));
    Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_6, (MR_Integer) 1))));
    Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_6, (MR_Integer) 2))));
    Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_6, (MR_Integer) 3))));
    Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_6, (MR_Integer) 4))));
    Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_6, (MR_Integer) 5))));
    Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_6, (MR_Integer) 6))));
    Var_21 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_6, (MR_Integer) 7))));
    Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_6, (MR_Integer) 8))));
    Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_6, (MR_Integer) 9))));
    Var_24 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_6, (MR_Integer) 11))));
    Var_26 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_6, (MR_Integer) 12))));
    Var_10 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_6, (MR_Integer) 13))));
    Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 0))));
    Var_28 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 1))));
    Var_29 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 2))) & (MR_Integer) 1);
    Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 3))));
    Var_31 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 4))) & (MR_Integer) 3);
    Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 5))));
    Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 6))));
    Var_34 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 7))));
    Var_35 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 8))));
    Var_36 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 9))));
    packed_word_3 = (MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 10)));
    Var_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 11))));
    Var_42 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 12))));
    Var_43 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 13))));
    Var_44 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 14))));
    Var_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 15))));
    Var_46 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 16))));
    Var_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 17))));
    Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 18))));
    Var_49 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 19))) & (MR_Integer) 1);
    Var_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 20))));
    Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 21))));
    Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 22))));
    Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 23))));
    Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 24))));
    Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 25))));
    Var_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 26))));
    Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 27))));
    Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 28))));
    Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 29))));
    Var_60 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 30))));
    Var_61 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 31))));
    Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 32))));
    Var_63 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_12, (MR_Integer) 1))));
    {
      Var_13 = (MR_Word) MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_13, 0) = ((MR_Box) (Var_9));
      MR_hl_field(MR_mktag(0), Var_13, 1) = ((MR_Box) (Var_63));
    }
    {
      Var_11 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_11, 0) = ((MR_Box) (Var_27));
      MR_hl_field(MR_mktag(0), Var_11, 1) = ((MR_Box) (Var_28));
      MR_hl_field(MR_mktag(0), Var_11, 2) = (MR_Box) ((MR_Unsigned) (Var_29));
      MR_hl_field(MR_mktag(0), Var_11, 3) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), Var_11, 4) = (MR_Box) ((MR_Unsigned) (Var_31));
      MR_hl_field(MR_mktag(0), Var_11, 5) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), Var_11, 6) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), Var_11, 7) = ((MR_Box) (Var_34));
      MR_hl_field(MR_mktag(0), Var_11, 8) = ((MR_Box) (Var_35));
      MR_hl_field(MR_mktag(0), Var_11, 9) = ((MR_Box) (Var_36));
      MR_hl_field(MR_mktag(0), Var_11, 10) = (MR_Box) (packed_word_3);
      MR_hl_field(MR_mktag(0), Var_11, 11) = ((MR_Box) (Var_41));
      MR_hl_field(MR_mktag(0), Var_11, 12) = ((MR_Box) (Var_42));
      MR_hl_field(MR_mktag(0), Var_11, 13) = ((MR_Box) (Var_43));
      MR_hl_field(MR_mktag(0), Var_11, 14) = ((MR_Box) (Var_44));
      MR_hl_field(MR_mktag(0), Var_11, 15) = ((MR_Box) (Var_45));
      MR_hl_field(MR_mktag(0), Var_11, 16) = ((MR_Box) (Var_46));
      MR_hl_field(MR_mktag(0), Var_11, 17) = ((MR_Box) (Var_47));
      MR_hl_field(MR_mktag(0), Var_11, 18) = ((MR_Box) (Var_48));
      MR_hl_field(MR_mktag(0), Var_11, 19) = (MR_Box) ((MR_Unsigned) (Var_49));
      MR_hl_field(MR_mktag(0), Var_11, 20) = ((MR_Box) (Var_50));
      MR_hl_field(MR_mktag(0), Var_11, 21) = ((MR_Box) (Var_51));
      MR_hl_field(MR_mktag(0), Var_11, 22) = ((MR_Box) (Var_52));
      MR_hl_field(MR_mktag(0), Var_11, 23) = ((MR_Box) (Var_53));
      MR_hl_field(MR_mktag(0), Var_11, 24) = ((MR_Box) (Var_54));
      MR_hl_field(MR_mktag(0), Var_11, 25) = ((MR_Box) (Var_55));
      MR_hl_field(MR_mktag(0), Var_11, 26) = ((MR_Box) (Var_56));
      MR_hl_field(MR_mktag(0), Var_11, 27) = ((MR_Box) (Var_57));
      MR_hl_field(MR_mktag(0), Var_11, 28) = ((MR_Box) (Var_58));
      MR_hl_field(MR_mktag(0), Var_11, 29) = ((MR_Box) (Var_59));
      MR_hl_field(MR_mktag(0), Var_11, 30) = ((MR_Box) (Var_60));
      MR_hl_field(MR_mktag(0), Var_11, 31) = ((MR_Box) (Var_61));
      MR_hl_field(MR_mktag(0), Var_11, 32) = ((MR_Box) (Var_13));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_ProcInfo_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_21));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_24));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_26));
      MR_hl_field(MR_mktag(0), base, 13) = ((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(MR_mktag(0), ProcInfo_3, (MR_Integer) 13))));
    MR_Word Var_6 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_5, (MR_Integer) 32))));

    *MaybeReuse_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_6, (MR_Integer) 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(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_4, (MR_Integer) 13))));
    MR_Word Var_9;
    MR_Word Var_10 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 31))));
    MR_Word Var_11;
    MR_Word Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_4, (MR_Integer) 0))));
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_4, (MR_Integer) 1))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_4, (MR_Integer) 2))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_4, (MR_Integer) 3))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_4, (MR_Integer) 4))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_4, (MR_Integer) 5))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_4, (MR_Integer) 6))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_4, (MR_Integer) 7))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_4, (MR_Integer) 8))));
    MR_Word Var_21 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_4, (MR_Integer) 9))));
    MR_Word Var_22 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_4, (MR_Integer) 10))) & (MR_Integer) 7);
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_4, (MR_Integer) 11))));
    MR_Word Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_4, (MR_Integer) 12))));
    MR_Word Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 0))));
    MR_Word Var_26 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 1))));
    MR_Word Var_27 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 2))) & (MR_Integer) 1);
    MR_Word Var_28 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 3))));
    MR_Word Var_29 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 4))) & (MR_Integer) 3);
    MR_Word Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 5))));
    MR_Word Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 6))));
    MR_Word Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 7))));
    MR_Word Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 8))));
    MR_Word Var_34 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 9))));
    MR_Word Var_39 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 11))));
    MR_Word Var_40 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 12))));
    MR_Word Var_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 13))));
    MR_Word Var_42 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 14))));
    MR_Word Var_43 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 15))));
    MR_Word Var_44 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 16))));
    MR_Word Var_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 17))));
    MR_Word Var_46 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 18))));
    MR_Word Var_47 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 19))) & (MR_Integer) 1);
    MR_Word Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 20))));
    MR_Word Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 21))));
    MR_Word Var_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 22))));
    MR_Word Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 23))));
    MR_Word Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 24))));
    MR_Word Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 25))));
    MR_Word Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 26))));
    MR_Word Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 27))));
    MR_Word Var_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 28))));
    MR_Word Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 29))));
    MR_Word Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 30))));
    MR_Word Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 32))));
    MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 10)));
    MR_Word Var_60 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 0))));

    {
      Var_11 = (MR_Word) MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_11, 0) = ((MR_Box) (Var_60));
      MR_hl_field(MR_mktag(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(MR_mktag(0), Var_9, 0) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), Var_9, 1) = ((MR_Box) (Var_26));
      MR_hl_field(MR_mktag(0), Var_9, 2) = (MR_Box) ((MR_Unsigned) (Var_27));
      MR_hl_field(MR_mktag(0), Var_9, 3) = ((MR_Box) (Var_28));
      MR_hl_field(MR_mktag(0), Var_9, 4) = (MR_Box) ((MR_Unsigned) (Var_29));
      MR_hl_field(MR_mktag(0), Var_9, 5) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), Var_9, 6) = ((MR_Box) (Var_31));
      MR_hl_field(MR_mktag(0), Var_9, 7) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), Var_9, 8) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), Var_9, 9) = ((MR_Box) (Var_34));
      MR_hl_field(MR_mktag(0), Var_9, 10) = (MR_Box) (packed_word_3);
      MR_hl_field(MR_mktag(0), Var_9, 11) = ((MR_Box) (Var_39));
      MR_hl_field(MR_mktag(0), Var_9, 12) = ((MR_Box) (Var_40));
      MR_hl_field(MR_mktag(0), Var_9, 13) = ((MR_Box) (Var_41));
      MR_hl_field(MR_mktag(0), Var_9, 14) = ((MR_Box) (Var_42));
      MR_hl_field(MR_mktag(0), Var_9, 15) = ((MR_Box) (Var_43));
      MR_hl_field(MR_mktag(0), Var_9, 16) = ((MR_Box) (Var_44));
      MR_hl_field(MR_mktag(0), Var_9, 17) = ((MR_Box) (Var_45));
      MR_hl_field(MR_mktag(0), Var_9, 18) = ((MR_Box) (Var_46));
      MR_hl_field(MR_mktag(0), Var_9, 19) = (MR_Box) ((MR_Unsigned) (Var_47));
      MR_hl_field(MR_mktag(0), Var_9, 20) = ((MR_Box) (Var_48));
      MR_hl_field(MR_mktag(0), Var_9, 21) = ((MR_Box) (Var_49));
      MR_hl_field(MR_mktag(0), Var_9, 22) = ((MR_Box) (Var_50));
      MR_hl_field(MR_mktag(0), Var_9, 23) = ((MR_Box) (Var_51));
      MR_hl_field(MR_mktag(0), Var_9, 24) = ((MR_Box) (Var_52));
      MR_hl_field(MR_mktag(0), Var_9, 25) = ((MR_Box) (Var_53));
      MR_hl_field(MR_mktag(0), Var_9, 26) = ((MR_Box) (Var_54));
      MR_hl_field(MR_mktag(0), Var_9, 27) = ((MR_Box) (Var_55));
      MR_hl_field(MR_mktag(0), Var_9, 28) = ((MR_Box) (Var_56));
      MR_hl_field(MR_mktag(0), Var_9, 29) = ((MR_Box) (Var_57));
      MR_hl_field(MR_mktag(0), Var_9, 30) = ((MR_Box) (Var_58));
      MR_hl_field(MR_mktag(0), Var_9, 31) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), Var_9, 32) = ((MR_Box) (Var_59));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_ProcInfo_5 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_21));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_22));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(0), base, 13) = ((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_40;
    MR_Word Var_41;
    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_Word Var_65;
    MR_Word Var_66;
    MR_Unsigned packed_word_3;
    MR_Word Var_67;

    {
      ImportedSharing_10 = (MR_Word) MR_new_object(MR_Word, (3 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), ImportedSharing_10, 0) = ((MR_Box) (HeadVars_6));
      MR_hl_field(MR_mktag(0), ImportedSharing_10, 1) = ((MR_Box) (Types_7));
      MR_hl_field(MR_mktag(0), ImportedSharing_10, 2) = ((MR_Box) (Sharing_8));
    }
    {
      MaybeImportedSharing_11 = (MR_Word) MR_mkword(MR_mktag(1), MR_new_object(MR_Word, (1 * sizeof(MR_Word)), NULL, NULL));
      MR_hl_field(MR_mktag(1), MaybeImportedSharing_11, 0) = ((MR_Box) (ImportedSharing_10));
    }
    Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_12, (MR_Integer) 0))));
    Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_12, (MR_Integer) 1))));
    Var_21 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_12, (MR_Integer) 2))));
    Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_12, (MR_Integer) 3))));
    Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_12, (MR_Integer) 4))));
    Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_12, (MR_Integer) 5))));
    Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_12, (MR_Integer) 6))));
    Var_26 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_12, (MR_Integer) 7))));
    Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_12, (MR_Integer) 8))));
    Var_28 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_12, (MR_Integer) 9))));
    Var_29 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_12, (MR_Integer) 10))) & (MR_Integer) 7);
    Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_12, (MR_Integer) 11))));
    Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_12, (MR_Integer) 12))));
    Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_12, (MR_Integer) 13))));
    Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 0))));
    Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 1))));
    Var_34 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 2))) & (MR_Integer) 1);
    Var_35 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 3))));
    Var_36 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 4))) & (MR_Integer) 3);
    Var_37 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 5))));
    Var_38 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 6))));
    Var_39 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 7))));
    Var_40 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 8))));
    Var_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 9))));
    packed_word_3 = (MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 10)));
    Var_46 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 11))));
    Var_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 12))));
    Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 13))));
    Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 14))));
    Var_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 15))));
    Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 16))));
    Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 17))));
    Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 18))));
    Var_54 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 19))) & (MR_Integer) 1);
    Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 20))));
    Var_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 21))));
    Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 22))));
    Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 23))));
    Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 24))));
    Var_60 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 25))));
    Var_61 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 26))));
    Var_62 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 27))));
    Var_63 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 28))));
    Var_64 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 29))));
    Var_65 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 30))));
    Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 31))));
    Var_66 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_15, (MR_Integer) 32))));
    Var_67 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_17, (MR_Integer) 0))));
    {
      Var_18 = (MR_Word) MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_18, 0) = ((MR_Box) (Var_67));
      MR_hl_field(MR_mktag(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(MR_mktag(0), Var_16, 0) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), Var_16, 1) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), Var_16, 2) = (MR_Box) ((MR_Unsigned) (Var_34));
      MR_hl_field(MR_mktag(0), Var_16, 3) = ((MR_Box) (Var_35));
      MR_hl_field(MR_mktag(0), Var_16, 4) = (MR_Box) ((MR_Unsigned) (Var_36));
      MR_hl_field(MR_mktag(0), Var_16, 5) = ((MR_Box) (Var_37));
      MR_hl_field(MR_mktag(0), Var_16, 6) = ((MR_Box) (Var_38));
      MR_hl_field(MR_mktag(0), Var_16, 7) = ((MR_Box) (Var_39));
      MR_hl_field(MR_mktag(0), Var_16, 8) = ((MR_Box) (Var_40));
      MR_hl_field(MR_mktag(0), Var_16, 9) = ((MR_Box) (Var_41));
      MR_hl_field(MR_mktag(0), Var_16, 10) = (MR_Box) (packed_word_3);
      MR_hl_field(MR_mktag(0), Var_16, 11) = ((MR_Box) (Var_46));
      MR_hl_field(MR_mktag(0), Var_16, 12) = ((MR_Box) (Var_47));
      MR_hl_field(MR_mktag(0), Var_16, 13) = ((MR_Box) (Var_48));
      MR_hl_field(MR_mktag(0), Var_16, 14) = ((MR_Box) (Var_49));
      MR_hl_field(MR_mktag(0), Var_16, 15) = ((MR_Box) (Var_50));
      MR_hl_field(MR_mktag(0), Var_16, 16) = ((MR_Box) (Var_51));
      MR_hl_field(MR_mktag(0), Var_16, 17) = ((MR_Box) (Var_52));
      MR_hl_field(MR_mktag(0), Var_16, 18) = ((MR_Box) (Var_53));
      MR_hl_field(MR_mktag(0), Var_16, 19) = (MR_Box) ((MR_Unsigned) (Var_54));
      MR_hl_field(MR_mktag(0), Var_16, 20) = ((MR_Box) (Var_55));
      MR_hl_field(MR_mktag(0), Var_16, 21) = ((MR_Box) (Var_56));
      MR_hl_field(MR_mktag(0), Var_16, 22) = ((MR_Box) (Var_57));
      MR_hl_field(MR_mktag(0), Var_16, 23) = ((MR_Box) (Var_58));
      MR_hl_field(MR_mktag(0), Var_16, 24) = ((MR_Box) (Var_59));
      MR_hl_field(MR_mktag(0), Var_16, 25) = ((MR_Box) (Var_60));
      MR_hl_field(MR_mktag(0), Var_16, 26) = ((MR_Box) (Var_61));
      MR_hl_field(MR_mktag(0), Var_16, 27) = ((MR_Box) (Var_62));
      MR_hl_field(MR_mktag(0), Var_16, 28) = ((MR_Box) (Var_63));
      MR_hl_field(MR_mktag(0), Var_16, 29) = ((MR_Box) (Var_64));
      MR_hl_field(MR_mktag(0), Var_16, 30) = ((MR_Box) (Var_65));
      MR_hl_field(MR_mktag(0), Var_16, 31) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), Var_16, 32) = ((MR_Box) (Var_66));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_ProcInfo_13 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_21));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_26));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_27));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_28));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_29));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_31));
      MR_hl_field(MR_mktag(0), base, 13) = ((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(MR_mktag(0), ProcInfo_5, (MR_Integer) 13))));
    MR_Word Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 31))));

    MaybeImportedSharing_9 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_12, (MR_Integer) 1))));
    succeeded = (MaybeImportedSharing_9 != (MR_Word) ((MR_Unsigned) 0U));
    if (succeeded)
    {
      ImportedSharing_10 = ((MR_Word) ((MR_hl_field(MR_mktag(1), MaybeImportedSharing_9, (MR_Integer) 0))));
      *HeadVars_6 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ImportedSharing_10, (MR_Integer) 0))));
      *Types_7 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ImportedSharing_10, (MR_Integer) 1))));
      *Sharing_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ImportedSharing_10, (MR_Integer) 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_35;
    MR_Word Var_36;
    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_Word Var_60;
    MR_Word Var_61;
    MR_Unsigned packed_word_3;
    MR_Word Var_63;

    {
      Var_9 = (MR_Word) MR_mkword(MR_mktag(1), MR_new_object(MR_Word, (1 * sizeof(MR_Word)), NULL, NULL));
      MR_hl_field(MR_mktag(1), Var_9, 0) = ((MR_Box) (Sharing_4));
    }
    Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_6, (MR_Integer) 0))));
    Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_6, (MR_Integer) 1))));
    Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_6, (MR_Integer) 2))));
    Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_6, (MR_Integer) 3))));
    Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_6, (MR_Integer) 4))));
    Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_6, (MR_Integer) 5))));
    Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_6, (MR_Integer) 6))));
    Var_21 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_6, (MR_Integer) 7))));
    Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_6, (MR_Integer) 8))));
    Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_6, (MR_Integer) 9))));
    Var_24 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_6, (MR_Integer) 11))));
    Var_26 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_6, (MR_Integer) 12))));
    Var_10 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_6, (MR_Integer) 13))));
    Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 0))));
    Var_28 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 1))));
    Var_29 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 2))) & (MR_Integer) 1);
    Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 3))));
    Var_31 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 4))) & (MR_Integer) 3);
    Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 5))));
    Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 6))));
    Var_34 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 7))));
    Var_35 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 8))));
    Var_36 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 9))));
    packed_word_3 = (MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 10)));
    Var_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 11))));
    Var_42 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 12))));
    Var_43 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 13))));
    Var_44 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 14))));
    Var_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 15))));
    Var_46 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 16))));
    Var_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 17))));
    Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 18))));
    Var_49 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 19))) & (MR_Integer) 1);
    Var_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 20))));
    Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 21))));
    Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 22))));
    Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 23))));
    Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 24))));
    Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 25))));
    Var_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 26))));
    Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 27))));
    Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 28))));
    Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 29))));
    Var_60 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 30))));
    Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 31))));
    Var_61 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 32))));
    Var_63 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_12, (MR_Integer) 1))));
    {
      Var_13 = (MR_Word) MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_13, 0) = ((MR_Box) (Var_9));
      MR_hl_field(MR_mktag(0), Var_13, 1) = ((MR_Box) (Var_63));
    }
    {
      Var_11 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_11, 0) = ((MR_Box) (Var_27));
      MR_hl_field(MR_mktag(0), Var_11, 1) = ((MR_Box) (Var_28));
      MR_hl_field(MR_mktag(0), Var_11, 2) = (MR_Box) ((MR_Unsigned) (Var_29));
      MR_hl_field(MR_mktag(0), Var_11, 3) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), Var_11, 4) = (MR_Box) ((MR_Unsigned) (Var_31));
      MR_hl_field(MR_mktag(0), Var_11, 5) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), Var_11, 6) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), Var_11, 7) = ((MR_Box) (Var_34));
      MR_hl_field(MR_mktag(0), Var_11, 8) = ((MR_Box) (Var_35));
      MR_hl_field(MR_mktag(0), Var_11, 9) = ((MR_Box) (Var_36));
      MR_hl_field(MR_mktag(0), Var_11, 10) = (MR_Box) (packed_word_3);
      MR_hl_field(MR_mktag(0), Var_11, 11) = ((MR_Box) (Var_41));
      MR_hl_field(MR_mktag(0), Var_11, 12) = ((MR_Box) (Var_42));
      MR_hl_field(MR_mktag(0), Var_11, 13) = ((MR_Box) (Var_43));
      MR_hl_field(MR_mktag(0), Var_11, 14) = ((MR_Box) (Var_44));
      MR_hl_field(MR_mktag(0), Var_11, 15) = ((MR_Box) (Var_45));
      MR_hl_field(MR_mktag(0), Var_11, 16) = ((MR_Box) (Var_46));
      MR_hl_field(MR_mktag(0), Var_11, 17) = ((MR_Box) (Var_47));
      MR_hl_field(MR_mktag(0), Var_11, 18) = ((MR_Box) (Var_48));
      MR_hl_field(MR_mktag(0), Var_11, 19) = (MR_Box) ((MR_Unsigned) (Var_49));
      MR_hl_field(MR_mktag(0), Var_11, 20) = ((MR_Box) (Var_50));
      MR_hl_field(MR_mktag(0), Var_11, 21) = ((MR_Box) (Var_51));
      MR_hl_field(MR_mktag(0), Var_11, 22) = ((MR_Box) (Var_52));
      MR_hl_field(MR_mktag(0), Var_11, 23) = ((MR_Box) (Var_53));
      MR_hl_field(MR_mktag(0), Var_11, 24) = ((MR_Box) (Var_54));
      MR_hl_field(MR_mktag(0), Var_11, 25) = ((MR_Box) (Var_55));
      MR_hl_field(MR_mktag(0), Var_11, 26) = ((MR_Box) (Var_56));
      MR_hl_field(MR_mktag(0), Var_11, 27) = ((MR_Box) (Var_57));
      MR_hl_field(MR_mktag(0), Var_11, 28) = ((MR_Box) (Var_58));
      MR_hl_field(MR_mktag(0), Var_11, 29) = ((MR_Box) (Var_59));
      MR_hl_field(MR_mktag(0), Var_11, 30) = ((MR_Box) (Var_60));
      MR_hl_field(MR_mktag(0), Var_11, 31) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), Var_11, 32) = ((MR_Box) (Var_61));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_ProcInfo_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_21));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_24));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_26));
      MR_hl_field(MR_mktag(0), base, 13) = ((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(MR_mktag(0), ProcInfo_3, (MR_Integer) 13))));
    MR_Word Var_6 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_5, (MR_Integer) 31))));

    *MaybeSharing_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_6, (MR_Integer) 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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    MR_Word Var_10;
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_Word Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_21 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 0))));
    MR_Word Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 1))));
    MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 2))) & (MR_Integer) 1);
    MR_Word Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 3))));
    MR_Word Var_28 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 4))) & (MR_Integer) 3);
    MR_Word Var_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 5))));
    MR_Word Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 6))));
    MR_Word Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 7))));
    MR_Word Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 8))));
    MR_Word Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 9))));
    MR_Word Var_38 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 11))));
    MR_Word Var_39 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 12))));
    MR_Word Var_40 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 13))));
    MR_Word Var_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 14))));
    MR_Word Var_42 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 15))));
    MR_Word Var_43 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 16))));
    MR_Word Var_44 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 17))));
    MR_Word Var_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 18))));
    MR_Word Var_46 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 19))) & (MR_Integer) 1);
    MR_Word Var_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 20))));
    MR_Word Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 21))));
    MR_Word Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 22))));
    MR_Word Var_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 23))));
    MR_Word Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 24))));
    MR_Word Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 25))));
    MR_Word Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 26))));
    MR_Word Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 27))));
    MR_Word Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 28))));
    MR_Word Var_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 29))));
    MR_Word Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 31))));
    MR_Word Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 32))));
    MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 10)));

    {
      Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_10, 0) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(0), Var_10, 1) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_26));
      MR_hl_field(MR_mktag(0), Var_10, 3) = ((MR_Box) (Var_27));
      MR_hl_field(MR_mktag(0), Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_28));
      MR_hl_field(MR_mktag(0), Var_10, 5) = ((MR_Box) (Var_29));
      MR_hl_field(MR_mktag(0), Var_10, 6) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), Var_10, 7) = ((MR_Box) (Var_31));
      MR_hl_field(MR_mktag(0), Var_10, 8) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), Var_10, 9) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), Var_10, 10) = (MR_Box) (packed_word_3);
      MR_hl_field(MR_mktag(0), Var_10, 11) = ((MR_Box) (Var_38));
      MR_hl_field(MR_mktag(0), Var_10, 12) = ((MR_Box) (Var_39));
      MR_hl_field(MR_mktag(0), Var_10, 13) = ((MR_Box) (Var_40));
      MR_hl_field(MR_mktag(0), Var_10, 14) = ((MR_Box) (Var_41));
      MR_hl_field(MR_mktag(0), Var_10, 15) = ((MR_Box) (Var_42));
      MR_hl_field(MR_mktag(0), Var_10, 16) = ((MR_Box) (Var_43));
      MR_hl_field(MR_mktag(0), Var_10, 17) = ((MR_Box) (Var_44));
      MR_hl_field(MR_mktag(0), Var_10, 18) = ((MR_Box) (Var_45));
      MR_hl_field(MR_mktag(0), Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_46));
      MR_hl_field(MR_mktag(0), Var_10, 20) = ((MR_Box) (Var_47));
      MR_hl_field(MR_mktag(0), Var_10, 21) = ((MR_Box) (Var_48));
      MR_hl_field(MR_mktag(0), Var_10, 22) = ((MR_Box) (Var_49));
      MR_hl_field(MR_mktag(0), Var_10, 23) = ((MR_Box) (Var_50));
      MR_hl_field(MR_mktag(0), Var_10, 24) = ((MR_Box) (Var_51));
      MR_hl_field(MR_mktag(0), Var_10, 25) = ((MR_Box) (Var_52));
      MR_hl_field(MR_mktag(0), Var_10, 26) = ((MR_Box) (Var_53));
      MR_hl_field(MR_mktag(0), Var_10, 27) = ((MR_Box) (Var_54));
      MR_hl_field(MR_mktag(0), Var_10, 28) = ((MR_Box) (Var_55));
      MR_hl_field(MR_mktag(0), Var_10, 29) = ((MR_Box) (Var_56));
      MR_hl_field(MR_mktag(0), Var_10, 30) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), Var_10, 31) = ((MR_Box) (Var_58));
      MR_hl_field(MR_mktag(0), Var_10, 32) = ((MR_Box) (Var_59));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_21));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 13) = ((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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    MR_Word Var_10;
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_Word Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_21 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 0))));
    MR_Word Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 1))));
    MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 2))) & (MR_Integer) 1);
    MR_Word Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 3))));
    MR_Word Var_28 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 4))) & (MR_Integer) 3);
    MR_Word Var_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 5))));
    MR_Word Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 6))));
    MR_Word Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 7))));
    MR_Word Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 8))));
    MR_Word Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 9))));
    MR_Word Var_38 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 11))));
    MR_Word Var_39 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 12))));
    MR_Word Var_40 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 13))));
    MR_Word Var_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 14))));
    MR_Word Var_42 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 15))));
    MR_Word Var_43 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 16))));
    MR_Word Var_44 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 17))));
    MR_Word Var_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 18))));
    MR_Word Var_46 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 19))) & (MR_Integer) 1);
    MR_Word Var_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 20))));
    MR_Word Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 21))));
    MR_Word Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 22))));
    MR_Word Var_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 23))));
    MR_Word Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 24))));
    MR_Word Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 25))));
    MR_Word Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 26))));
    MR_Word Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 27))));
    MR_Word Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 28))));
    MR_Word Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 30))));
    MR_Word Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 31))));
    MR_Word Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 32))));
    MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 10)));

    {
      Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_10, 0) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(0), Var_10, 1) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_26));
      MR_hl_field(MR_mktag(0), Var_10, 3) = ((MR_Box) (Var_27));
      MR_hl_field(MR_mktag(0), Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_28));
      MR_hl_field(MR_mktag(0), Var_10, 5) = ((MR_Box) (Var_29));
      MR_hl_field(MR_mktag(0), Var_10, 6) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), Var_10, 7) = ((MR_Box) (Var_31));
      MR_hl_field(MR_mktag(0), Var_10, 8) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), Var_10, 9) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), Var_10, 10) = (MR_Box) (packed_word_3);
      MR_hl_field(MR_mktag(0), Var_10, 11) = ((MR_Box) (Var_38));
      MR_hl_field(MR_mktag(0), Var_10, 12) = ((MR_Box) (Var_39));
      MR_hl_field(MR_mktag(0), Var_10, 13) = ((MR_Box) (Var_40));
      MR_hl_field(MR_mktag(0), Var_10, 14) = ((MR_Box) (Var_41));
      MR_hl_field(MR_mktag(0), Var_10, 15) = ((MR_Box) (Var_42));
      MR_hl_field(MR_mktag(0), Var_10, 16) = ((MR_Box) (Var_43));
      MR_hl_field(MR_mktag(0), Var_10, 17) = ((MR_Box) (Var_44));
      MR_hl_field(MR_mktag(0), Var_10, 18) = ((MR_Box) (Var_45));
      MR_hl_field(MR_mktag(0), Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_46));
      MR_hl_field(MR_mktag(0), Var_10, 20) = ((MR_Box) (Var_47));
      MR_hl_field(MR_mktag(0), Var_10, 21) = ((MR_Box) (Var_48));
      MR_hl_field(MR_mktag(0), Var_10, 22) = ((MR_Box) (Var_49));
      MR_hl_field(MR_mktag(0), Var_10, 23) = ((MR_Box) (Var_50));
      MR_hl_field(MR_mktag(0), Var_10, 24) = ((MR_Box) (Var_51));
      MR_hl_field(MR_mktag(0), Var_10, 25) = ((MR_Box) (Var_52));
      MR_hl_field(MR_mktag(0), Var_10, 26) = ((MR_Box) (Var_53));
      MR_hl_field(MR_mktag(0), Var_10, 27) = ((MR_Box) (Var_54));
      MR_hl_field(MR_mktag(0), Var_10, 28) = ((MR_Box) (Var_55));
      MR_hl_field(MR_mktag(0), Var_10, 29) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), Var_10, 30) = ((MR_Box) (Var_57));
      MR_hl_field(MR_mktag(0), Var_10, 31) = ((MR_Box) (Var_58));
      MR_hl_field(MR_mktag(0), Var_10, 32) = ((MR_Box) (Var_59));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_21));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 13) = ((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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    MR_Word Var_10;
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_Word Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_21 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 0))));
    MR_Word Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 1))));
    MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 2))) & (MR_Integer) 1);
    MR_Word Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 3))));
    MR_Word Var_28 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 4))) & (MR_Integer) 3);
    MR_Word Var_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 5))));
    MR_Word Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 6))));
    MR_Word Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 7))));
    MR_Word Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 8))));
    MR_Word Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 9))));
    MR_Word Var_38 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 11))));
    MR_Word Var_39 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 12))));
    MR_Word Var_40 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 13))));
    MR_Word Var_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 14))));
    MR_Word Var_42 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 15))));
    MR_Word Var_43 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 16))));
    MR_Word Var_44 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 17))));
    MR_Word Var_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 18))));
    MR_Word Var_46 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 19))) & (MR_Integer) 1);
    MR_Word Var_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 20))));
    MR_Word Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 21))));
    MR_Word Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 22))));
    MR_Word Var_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 23))));
    MR_Word Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 24))));
    MR_Word Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 25))));
    MR_Word Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 26))));
    MR_Word Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 27))));
    MR_Word Var_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 29))));
    MR_Word Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 30))));
    MR_Word Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 31))));
    MR_Word Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 32))));
    MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 10)));

    {
      Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_10, 0) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(0), Var_10, 1) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_26));
      MR_hl_field(MR_mktag(0), Var_10, 3) = ((MR_Box) (Var_27));
      MR_hl_field(MR_mktag(0), Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_28));
      MR_hl_field(MR_mktag(0), Var_10, 5) = ((MR_Box) (Var_29));
      MR_hl_field(MR_mktag(0), Var_10, 6) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), Var_10, 7) = ((MR_Box) (Var_31));
      MR_hl_field(MR_mktag(0), Var_10, 8) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), Var_10, 9) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), Var_10, 10) = (MR_Box) (packed_word_3);
      MR_hl_field(MR_mktag(0), Var_10, 11) = ((MR_Box) (Var_38));
      MR_hl_field(MR_mktag(0), Var_10, 12) = ((MR_Box) (Var_39));
      MR_hl_field(MR_mktag(0), Var_10, 13) = ((MR_Box) (Var_40));
      MR_hl_field(MR_mktag(0), Var_10, 14) = ((MR_Box) (Var_41));
      MR_hl_field(MR_mktag(0), Var_10, 15) = ((MR_Box) (Var_42));
      MR_hl_field(MR_mktag(0), Var_10, 16) = ((MR_Box) (Var_43));
      MR_hl_field(MR_mktag(0), Var_10, 17) = ((MR_Box) (Var_44));
      MR_hl_field(MR_mktag(0), Var_10, 18) = ((MR_Box) (Var_45));
      MR_hl_field(MR_mktag(0), Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_46));
      MR_hl_field(MR_mktag(0), Var_10, 20) = ((MR_Box) (Var_47));
      MR_hl_field(MR_mktag(0), Var_10, 21) = ((MR_Box) (Var_48));
      MR_hl_field(MR_mktag(0), Var_10, 22) = ((MR_Box) (Var_49));
      MR_hl_field(MR_mktag(0), Var_10, 23) = ((MR_Box) (Var_50));
      MR_hl_field(MR_mktag(0), Var_10, 24) = ((MR_Box) (Var_51));
      MR_hl_field(MR_mktag(0), Var_10, 25) = ((MR_Box) (Var_52));
      MR_hl_field(MR_mktag(0), Var_10, 26) = ((MR_Box) (Var_53));
      MR_hl_field(MR_mktag(0), Var_10, 27) = ((MR_Box) (Var_54));
      MR_hl_field(MR_mktag(0), Var_10, 28) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), Var_10, 29) = ((MR_Box) (Var_56));
      MR_hl_field(MR_mktag(0), Var_10, 30) = ((MR_Box) (Var_57));
      MR_hl_field(MR_mktag(0), Var_10, 31) = ((MR_Box) (Var_58));
      MR_hl_field(MR_mktag(0), Var_10, 32) = ((MR_Box) (Var_59));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_21));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 13) = ((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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    MR_Word Var_10;
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_Word Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_21 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 0))));
    MR_Word Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 1))));
    MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 2))) & (MR_Integer) 1);
    MR_Word Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 3))));
    MR_Word Var_28 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 4))) & (MR_Integer) 3);
    MR_Word Var_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 5))));
    MR_Word Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 6))));
    MR_Word Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 7))));
    MR_Word Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 8))));
    MR_Word Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 9))));
    MR_Word Var_38 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 11))));
    MR_Word Var_39 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 12))));
    MR_Word Var_40 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 13))));
    MR_Word Var_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 14))));
    MR_Word Var_42 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 15))));
    MR_Word Var_43 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 16))));
    MR_Word Var_44 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 17))));
    MR_Word Var_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 18))));
    MR_Word Var_46 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 19))) & (MR_Integer) 1);
    MR_Word Var_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 20))));
    MR_Word Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 21))));
    MR_Word Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 22))));
    MR_Word Var_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 23))));
    MR_Word Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 24))));
    MR_Word Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 25))));
    MR_Word Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 26))));
    MR_Word Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 28))));
    MR_Word Var_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 29))));
    MR_Word Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 30))));
    MR_Word Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 31))));
    MR_Word Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 32))));
    MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 10)));

    {
      Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_10, 0) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(0), Var_10, 1) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_26));
      MR_hl_field(MR_mktag(0), Var_10, 3) = ((MR_Box) (Var_27));
      MR_hl_field(MR_mktag(0), Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_28));
      MR_hl_field(MR_mktag(0), Var_10, 5) = ((MR_Box) (Var_29));
      MR_hl_field(MR_mktag(0), Var_10, 6) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), Var_10, 7) = ((MR_Box) (Var_31));
      MR_hl_field(MR_mktag(0), Var_10, 8) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), Var_10, 9) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), Var_10, 10) = (MR_Box) (packed_word_3);
      MR_hl_field(MR_mktag(0), Var_10, 11) = ((MR_Box) (Var_38));
      MR_hl_field(MR_mktag(0), Var_10, 12) = ((MR_Box) (Var_39));
      MR_hl_field(MR_mktag(0), Var_10, 13) = ((MR_Box) (Var_40));
      MR_hl_field(MR_mktag(0), Var_10, 14) = ((MR_Box) (Var_41));
      MR_hl_field(MR_mktag(0), Var_10, 15) = ((MR_Box) (Var_42));
      MR_hl_field(MR_mktag(0), Var_10, 16) = ((MR_Box) (Var_43));
      MR_hl_field(MR_mktag(0), Var_10, 17) = ((MR_Box) (Var_44));
      MR_hl_field(MR_mktag(0), Var_10, 18) = ((MR_Box) (Var_45));
      MR_hl_field(MR_mktag(0), Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_46));
      MR_hl_field(MR_mktag(0), Var_10, 20) = ((MR_Box) (Var_47));
      MR_hl_field(MR_mktag(0), Var_10, 21) = ((MR_Box) (Var_48));
      MR_hl_field(MR_mktag(0), Var_10, 22) = ((MR_Box) (Var_49));
      MR_hl_field(MR_mktag(0), Var_10, 23) = ((MR_Box) (Var_50));
      MR_hl_field(MR_mktag(0), Var_10, 24) = ((MR_Box) (Var_51));
      MR_hl_field(MR_mktag(0), Var_10, 25) = ((MR_Box) (Var_52));
      MR_hl_field(MR_mktag(0), Var_10, 26) = ((MR_Box) (Var_53));
      MR_hl_field(MR_mktag(0), Var_10, 27) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), Var_10, 28) = ((MR_Box) (Var_55));
      MR_hl_field(MR_mktag(0), Var_10, 29) = ((MR_Box) (Var_56));
      MR_hl_field(MR_mktag(0), Var_10, 30) = ((MR_Box) (Var_57));
      MR_hl_field(MR_mktag(0), Var_10, 31) = ((MR_Box) (Var_58));
      MR_hl_field(MR_mktag(0), Var_10, 32) = ((MR_Box) (Var_59));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_21));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 13) = ((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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    MR_Word Var_10;
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_Word Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_21 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 0))));
    MR_Word Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 1))));
    MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 2))) & (MR_Integer) 1);
    MR_Word Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 3))));
    MR_Word Var_28 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 4))) & (MR_Integer) 3);
    MR_Word Var_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 5))));
    MR_Word Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 6))));
    MR_Word Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 7))));
    MR_Word Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 8))));
    MR_Word Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 9))));
    MR_Word Var_38 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 11))));
    MR_Word Var_39 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 12))));
    MR_Word Var_40 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 13))));
    MR_Word Var_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 14))));
    MR_Word Var_42 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 15))));
    MR_Word Var_43 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 16))));
    MR_Word Var_44 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 17))));
    MR_Word Var_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 18))));
    MR_Word Var_46 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 19))) & (MR_Integer) 1);
    MR_Word Var_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 20))));
    MR_Word Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 21))));
    MR_Word Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 22))));
    MR_Word Var_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 23))));
    MR_Word Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 24))));
    MR_Word Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 26))));
    MR_Word Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 27))));
    MR_Word Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 28))));
    MR_Word Var_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 29))));
    MR_Word Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 30))));
    MR_Word Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 31))));
    MR_Word Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 32))));
    MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 10)));

    {
      Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_10, 0) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(0), Var_10, 1) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_26));
      MR_hl_field(MR_mktag(0), Var_10, 3) = ((MR_Box) (Var_27));
      MR_hl_field(MR_mktag(0), Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_28));
      MR_hl_field(MR_mktag(0), Var_10, 5) = ((MR_Box) (Var_29));
      MR_hl_field(MR_mktag(0), Var_10, 6) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), Var_10, 7) = ((MR_Box) (Var_31));
      MR_hl_field(MR_mktag(0), Var_10, 8) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), Var_10, 9) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), Var_10, 10) = (MR_Box) (packed_word_3);
      MR_hl_field(MR_mktag(0), Var_10, 11) = ((MR_Box) (Var_38));
      MR_hl_field(MR_mktag(0), Var_10, 12) = ((MR_Box) (Var_39));
      MR_hl_field(MR_mktag(0), Var_10, 13) = ((MR_Box) (Var_40));
      MR_hl_field(MR_mktag(0), Var_10, 14) = ((MR_Box) (Var_41));
      MR_hl_field(MR_mktag(0), Var_10, 15) = ((MR_Box) (Var_42));
      MR_hl_field(MR_mktag(0), Var_10, 16) = ((MR_Box) (Var_43));
      MR_hl_field(MR_mktag(0), Var_10, 17) = ((MR_Box) (Var_44));
      MR_hl_field(MR_mktag(0), Var_10, 18) = ((MR_Box) (Var_45));
      MR_hl_field(MR_mktag(0), Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_46));
      MR_hl_field(MR_mktag(0), Var_10, 20) = ((MR_Box) (Var_47));
      MR_hl_field(MR_mktag(0), Var_10, 21) = ((MR_Box) (Var_48));
      MR_hl_field(MR_mktag(0), Var_10, 22) = ((MR_Box) (Var_49));
      MR_hl_field(MR_mktag(0), Var_10, 23) = ((MR_Box) (Var_50));
      MR_hl_field(MR_mktag(0), Var_10, 24) = ((MR_Box) (Var_51));
      MR_hl_field(MR_mktag(0), Var_10, 25) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), Var_10, 26) = ((MR_Box) (Var_53));
      MR_hl_field(MR_mktag(0), Var_10, 27) = ((MR_Box) (Var_54));
      MR_hl_field(MR_mktag(0), Var_10, 28) = ((MR_Box) (Var_55));
      MR_hl_field(MR_mktag(0), Var_10, 29) = ((MR_Box) (Var_56));
      MR_hl_field(MR_mktag(0), Var_10, 30) = ((MR_Box) (Var_57));
      MR_hl_field(MR_mktag(0), Var_10, 31) = ((MR_Box) (Var_58));
      MR_hl_field(MR_mktag(0), Var_10, 32) = ((MR_Box) (Var_59));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_21));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 13) = ((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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    MR_Word Var_10;
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_Word Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_21 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 0))));
    MR_Word Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 1))));
    MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 2))) & (MR_Integer) 1);
    MR_Word Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 3))));
    MR_Word Var_28 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 4))) & (MR_Integer) 3);
    MR_Word Var_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 5))));
    MR_Word Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 6))));
    MR_Word Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 7))));
    MR_Word Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 8))));
    MR_Word Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 9))));
    MR_Word Var_38 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 11))));
    MR_Word Var_39 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 12))));
    MR_Word Var_40 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 13))));
    MR_Word Var_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 14))));
    MR_Word Var_42 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 15))));
    MR_Word Var_43 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 16))));
    MR_Word Var_44 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 17))));
    MR_Word Var_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 18))));
    MR_Word Var_46 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 19))) & (MR_Integer) 1);
    MR_Word Var_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 20))));
    MR_Word Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 21))));
    MR_Word Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 22))));
    MR_Word Var_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 23))));
    MR_Word Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 25))));
    MR_Word Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 26))));
    MR_Word Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 27))));
    MR_Word Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 28))));
    MR_Word Var_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 29))));
    MR_Word Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 30))));
    MR_Word Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 31))));
    MR_Word Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 32))));
    MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 10)));

    {
      Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_10, 0) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(0), Var_10, 1) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_26));
      MR_hl_field(MR_mktag(0), Var_10, 3) = ((MR_Box) (Var_27));
      MR_hl_field(MR_mktag(0), Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_28));
      MR_hl_field(MR_mktag(0), Var_10, 5) = ((MR_Box) (Var_29));
      MR_hl_field(MR_mktag(0), Var_10, 6) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), Var_10, 7) = ((MR_Box) (Var_31));
      MR_hl_field(MR_mktag(0), Var_10, 8) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), Var_10, 9) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), Var_10, 10) = (MR_Box) (packed_word_3);
      MR_hl_field(MR_mktag(0), Var_10, 11) = ((MR_Box) (Var_38));
      MR_hl_field(MR_mktag(0), Var_10, 12) = ((MR_Box) (Var_39));
      MR_hl_field(MR_mktag(0), Var_10, 13) = ((MR_Box) (Var_40));
      MR_hl_field(MR_mktag(0), Var_10, 14) = ((MR_Box) (Var_41));
      MR_hl_field(MR_mktag(0), Var_10, 15) = ((MR_Box) (Var_42));
      MR_hl_field(MR_mktag(0), Var_10, 16) = ((MR_Box) (Var_43));
      MR_hl_field(MR_mktag(0), Var_10, 17) = ((MR_Box) (Var_44));
      MR_hl_field(MR_mktag(0), Var_10, 18) = ((MR_Box) (Var_45));
      MR_hl_field(MR_mktag(0), Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_46));
      MR_hl_field(MR_mktag(0), Var_10, 20) = ((MR_Box) (Var_47));
      MR_hl_field(MR_mktag(0), Var_10, 21) = ((MR_Box) (Var_48));
      MR_hl_field(MR_mktag(0), Var_10, 22) = ((MR_Box) (Var_49));
      MR_hl_field(MR_mktag(0), Var_10, 23) = ((MR_Box) (Var_50));
      MR_hl_field(MR_mktag(0), Var_10, 24) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), Var_10, 25) = ((MR_Box) (Var_52));
      MR_hl_field(MR_mktag(0), Var_10, 26) = ((MR_Box) (Var_53));
      MR_hl_field(MR_mktag(0), Var_10, 27) = ((MR_Box) (Var_54));
      MR_hl_field(MR_mktag(0), Var_10, 28) = ((MR_Box) (Var_55));
      MR_hl_field(MR_mktag(0), Var_10, 29) = ((MR_Box) (Var_56));
      MR_hl_field(MR_mktag(0), Var_10, 30) = ((MR_Box) (Var_57));
      MR_hl_field(MR_mktag(0), Var_10, 31) = ((MR_Box) (Var_58));
      MR_hl_field(MR_mktag(0), Var_10, 32) = ((MR_Box) (Var_59));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_21));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 13) = ((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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    MR_Word Var_10;
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_Word Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_21 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 0))));
    MR_Word Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 1))));
    MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 2))) & (MR_Integer) 1);
    MR_Word Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 3))));
    MR_Word Var_28 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 4))) & (MR_Integer) 3);
    MR_Word Var_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 5))));
    MR_Word Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 6))));
    MR_Word Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 7))));
    MR_Word Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 8))));
    MR_Word Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 9))));
    MR_Word Var_38 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 11))));
    MR_Word Var_39 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 12))));
    MR_Word Var_40 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 13))));
    MR_Word Var_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 14))));
    MR_Word Var_42 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 15))));
    MR_Word Var_43 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 16))));
    MR_Word Var_44 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 17))));
    MR_Word Var_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 18))));
    MR_Word Var_46 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 19))) & (MR_Integer) 1);
    MR_Word Var_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 20))));
    MR_Word Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 21))));
    MR_Word Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 22))));
    MR_Word Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 24))));
    MR_Word Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 25))));
    MR_Word Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 26))));
    MR_Word Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 27))));
    MR_Word Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 28))));
    MR_Word Var_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 29))));
    MR_Word Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 30))));
    MR_Word Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 31))));
    MR_Word Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 32))));
    MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 10)));

    {
      Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_10, 0) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(0), Var_10, 1) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_26));
      MR_hl_field(MR_mktag(0), Var_10, 3) = ((MR_Box) (Var_27));
      MR_hl_field(MR_mktag(0), Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_28));
      MR_hl_field(MR_mktag(0), Var_10, 5) = ((MR_Box) (Var_29));
      MR_hl_field(MR_mktag(0), Var_10, 6) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), Var_10, 7) = ((MR_Box) (Var_31));
      MR_hl_field(MR_mktag(0), Var_10, 8) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), Var_10, 9) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), Var_10, 10) = (MR_Box) (packed_word_3);
      MR_hl_field(MR_mktag(0), Var_10, 11) = ((MR_Box) (Var_38));
      MR_hl_field(MR_mktag(0), Var_10, 12) = ((MR_Box) (Var_39));
      MR_hl_field(MR_mktag(0), Var_10, 13) = ((MR_Box) (Var_40));
      MR_hl_field(MR_mktag(0), Var_10, 14) = ((MR_Box) (Var_41));
      MR_hl_field(MR_mktag(0), Var_10, 15) = ((MR_Box) (Var_42));
      MR_hl_field(MR_mktag(0), Var_10, 16) = ((MR_Box) (Var_43));
      MR_hl_field(MR_mktag(0), Var_10, 17) = ((MR_Box) (Var_44));
      MR_hl_field(MR_mktag(0), Var_10, 18) = ((MR_Box) (Var_45));
      MR_hl_field(MR_mktag(0), Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_46));
      MR_hl_field(MR_mktag(0), Var_10, 20) = ((MR_Box) (Var_47));
      MR_hl_field(MR_mktag(0), Var_10, 21) = ((MR_Box) (Var_48));
      MR_hl_field(MR_mktag(0), Var_10, 22) = ((MR_Box) (Var_49));
      MR_hl_field(MR_mktag(0), Var_10, 23) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), Var_10, 24) = ((MR_Box) (Var_51));
      MR_hl_field(MR_mktag(0), Var_10, 25) = ((MR_Box) (Var_52));
      MR_hl_field(MR_mktag(0), Var_10, 26) = ((MR_Box) (Var_53));
      MR_hl_field(MR_mktag(0), Var_10, 27) = ((MR_Box) (Var_54));
      MR_hl_field(MR_mktag(0), Var_10, 28) = ((MR_Box) (Var_55));
      MR_hl_field(MR_mktag(0), Var_10, 29) = ((MR_Box) (Var_56));
      MR_hl_field(MR_mktag(0), Var_10, 30) = ((MR_Box) (Var_57));
      MR_hl_field(MR_mktag(0), Var_10, 31) = ((MR_Box) (Var_58));
      MR_hl_field(MR_mktag(0), Var_10, 32) = ((MR_Box) (Var_59));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_21));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 13) = ((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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    MR_Word Var_10;
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_Word Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_21 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 0))));
    MR_Word Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 1))));
    MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 2))) & (MR_Integer) 1);
    MR_Word Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 3))));
    MR_Word Var_28 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 4))) & (MR_Integer) 3);
    MR_Word Var_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 5))));
    MR_Word Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 6))));
    MR_Word Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 7))));
    MR_Word Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 8))));
    MR_Word Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 9))));
    MR_Word Var_38 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 11))));
    MR_Word Var_39 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 12))));
    MR_Word Var_40 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 13))));
    MR_Word Var_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 14))));
    MR_Word Var_42 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 15))));
    MR_Word Var_43 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 16))));
    MR_Word Var_44 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 17))));
    MR_Word Var_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 18))));
    MR_Word Var_46 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 19))) & (MR_Integer) 1);
    MR_Word Var_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 20))));
    MR_Word Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 21))));
    MR_Word Var_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 23))));
    MR_Word Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 24))));
    MR_Word Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 25))));
    MR_Word Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 26))));
    MR_Word Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 27))));
    MR_Word Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 28))));
    MR_Word Var_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 29))));
    MR_Word Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 30))));
    MR_Word Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 31))));
    MR_Word Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 32))));
    MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 10)));

    {
      Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_10, 0) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(0), Var_10, 1) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_26));
      MR_hl_field(MR_mktag(0), Var_10, 3) = ((MR_Box) (Var_27));
      MR_hl_field(MR_mktag(0), Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_28));
      MR_hl_field(MR_mktag(0), Var_10, 5) = ((MR_Box) (Var_29));
      MR_hl_field(MR_mktag(0), Var_10, 6) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), Var_10, 7) = ((MR_Box) (Var_31));
      MR_hl_field(MR_mktag(0), Var_10, 8) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), Var_10, 9) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), Var_10, 10) = (MR_Box) (packed_word_3);
      MR_hl_field(MR_mktag(0), Var_10, 11) = ((MR_Box) (Var_38));
      MR_hl_field(MR_mktag(0), Var_10, 12) = ((MR_Box) (Var_39));
      MR_hl_field(MR_mktag(0), Var_10, 13) = ((MR_Box) (Var_40));
      MR_hl_field(MR_mktag(0), Var_10, 14) = ((MR_Box) (Var_41));
      MR_hl_field(MR_mktag(0), Var_10, 15) = ((MR_Box) (Var_42));
      MR_hl_field(MR_mktag(0), Var_10, 16) = ((MR_Box) (Var_43));
      MR_hl_field(MR_mktag(0), Var_10, 17) = ((MR_Box) (Var_44));
      MR_hl_field(MR_mktag(0), Var_10, 18) = ((MR_Box) (Var_45));
      MR_hl_field(MR_mktag(0), Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_46));
      MR_hl_field(MR_mktag(0), Var_10, 20) = ((MR_Box) (Var_47));
      MR_hl_field(MR_mktag(0), Var_10, 21) = ((MR_Box) (Var_48));
      MR_hl_field(MR_mktag(0), Var_10, 22) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), Var_10, 23) = ((MR_Box) (Var_50));
      MR_hl_field(MR_mktag(0), Var_10, 24) = ((MR_Box) (Var_51));
      MR_hl_field(MR_mktag(0), Var_10, 25) = ((MR_Box) (Var_52));
      MR_hl_field(MR_mktag(0), Var_10, 26) = ((MR_Box) (Var_53));
      MR_hl_field(MR_mktag(0), Var_10, 27) = ((MR_Box) (Var_54));
      MR_hl_field(MR_mktag(0), Var_10, 28) = ((MR_Box) (Var_55));
      MR_hl_field(MR_mktag(0), Var_10, 29) = ((MR_Box) (Var_56));
      MR_hl_field(MR_mktag(0), Var_10, 30) = ((MR_Box) (Var_57));
      MR_hl_field(MR_mktag(0), Var_10, 31) = ((MR_Box) (Var_58));
      MR_hl_field(MR_mktag(0), Var_10, 32) = ((MR_Box) (Var_59));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_21));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 13) = ((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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    MR_Word Var_10;
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_Word Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_21 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 0))));
    MR_Word Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 1))));
    MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 2))) & (MR_Integer) 1);
    MR_Word Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 3))));
    MR_Word Var_28 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 4))) & (MR_Integer) 3);
    MR_Word Var_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 5))));
    MR_Word Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 6))));
    MR_Word Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 7))));
    MR_Word Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 8))));
    MR_Word Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 9))));
    MR_Word Var_38 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 11))));
    MR_Word Var_39 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 12))));
    MR_Word Var_40 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 13))));
    MR_Word Var_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 14))));
    MR_Word Var_42 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 15))));
    MR_Word Var_43 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 16))));
    MR_Word Var_44 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 17))));
    MR_Word Var_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 18))));
    MR_Word Var_46 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 19))) & (MR_Integer) 1);
    MR_Word Var_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 20))));
    MR_Word Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 22))));
    MR_Word Var_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 23))));
    MR_Word Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 24))));
    MR_Word Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 25))));
    MR_Word Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 26))));
    MR_Word Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 27))));
    MR_Word Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 28))));
    MR_Word Var_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 29))));
    MR_Word Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 30))));
    MR_Word Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 31))));
    MR_Word Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 32))));
    MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 10)));

    {
      Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_10, 0) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(0), Var_10, 1) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_26));
      MR_hl_field(MR_mktag(0), Var_10, 3) = ((MR_Box) (Var_27));
      MR_hl_field(MR_mktag(0), Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_28));
      MR_hl_field(MR_mktag(0), Var_10, 5) = ((MR_Box) (Var_29));
      MR_hl_field(MR_mktag(0), Var_10, 6) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), Var_10, 7) = ((MR_Box) (Var_31));
      MR_hl_field(MR_mktag(0), Var_10, 8) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), Var_10, 9) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), Var_10, 10) = (MR_Box) (packed_word_3);
      MR_hl_field(MR_mktag(0), Var_10, 11) = ((MR_Box) (Var_38));
      MR_hl_field(MR_mktag(0), Var_10, 12) = ((MR_Box) (Var_39));
      MR_hl_field(MR_mktag(0), Var_10, 13) = ((MR_Box) (Var_40));
      MR_hl_field(MR_mktag(0), Var_10, 14) = ((MR_Box) (Var_41));
      MR_hl_field(MR_mktag(0), Var_10, 15) = ((MR_Box) (Var_42));
      MR_hl_field(MR_mktag(0), Var_10, 16) = ((MR_Box) (Var_43));
      MR_hl_field(MR_mktag(0), Var_10, 17) = ((MR_Box) (Var_44));
      MR_hl_field(MR_mktag(0), Var_10, 18) = ((MR_Box) (Var_45));
      MR_hl_field(MR_mktag(0), Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_46));
      MR_hl_field(MR_mktag(0), Var_10, 20) = ((MR_Box) (Var_47));
      MR_hl_field(MR_mktag(0), Var_10, 21) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), Var_10, 22) = ((MR_Box) (Var_49));
      MR_hl_field(MR_mktag(0), Var_10, 23) = ((MR_Box) (Var_50));
      MR_hl_field(MR_mktag(0), Var_10, 24) = ((MR_Box) (Var_51));
      MR_hl_field(MR_mktag(0), Var_10, 25) = ((MR_Box) (Var_52));
      MR_hl_field(MR_mktag(0), Var_10, 26) = ((MR_Box) (Var_53));
      MR_hl_field(MR_mktag(0), Var_10, 27) = ((MR_Box) (Var_54));
      MR_hl_field(MR_mktag(0), Var_10, 28) = ((MR_Box) (Var_55));
      MR_hl_field(MR_mktag(0), Var_10, 29) = ((MR_Box) (Var_56));
      MR_hl_field(MR_mktag(0), Var_10, 30) = ((MR_Box) (Var_57));
      MR_hl_field(MR_mktag(0), Var_10, 31) = ((MR_Box) (Var_58));
      MR_hl_field(MR_mktag(0), Var_10, 32) = ((MR_Box) (Var_59));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_21));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 13) = ((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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    MR_Word Var_10;
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_Word Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_21 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 0))));
    MR_Word Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 1))));
    MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 2))) & (MR_Integer) 1);
    MR_Word Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 3))));
    MR_Word Var_28 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 4))) & (MR_Integer) 3);
    MR_Word Var_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 5))));
    MR_Word Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 6))));
    MR_Word Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 7))));
    MR_Word Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 8))));
    MR_Word Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 9))));
    MR_Word Var_38 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 11))));
    MR_Word Var_39 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 12))));
    MR_Word Var_40 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 13))));
    MR_Word Var_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 14))));
    MR_Word Var_42 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 15))));
    MR_Word Var_43 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 16))));
    MR_Word Var_44 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 17))));
    MR_Word Var_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 18))));
    MR_Word Var_46 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 19))) & (MR_Integer) 1);
    MR_Word Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 21))));
    MR_Word Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 22))));
    MR_Word Var_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 23))));
    MR_Word Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 24))));
    MR_Word Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 25))));
    MR_Word Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 26))));
    MR_Word Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 27))));
    MR_Word Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 28))));
    MR_Word Var_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 29))));
    MR_Word Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 30))));
    MR_Word Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 31))));
    MR_Word Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 32))));
    MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 10)));

    {
      Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_10, 0) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(0), Var_10, 1) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_26));
      MR_hl_field(MR_mktag(0), Var_10, 3) = ((MR_Box) (Var_27));
      MR_hl_field(MR_mktag(0), Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_28));
      MR_hl_field(MR_mktag(0), Var_10, 5) = ((MR_Box) (Var_29));
      MR_hl_field(MR_mktag(0), Var_10, 6) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), Var_10, 7) = ((MR_Box) (Var_31));
      MR_hl_field(MR_mktag(0), Var_10, 8) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), Var_10, 9) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), Var_10, 10) = (MR_Box) (packed_word_3);
      MR_hl_field(MR_mktag(0), Var_10, 11) = ((MR_Box) (Var_38));
      MR_hl_field(MR_mktag(0), Var_10, 12) = ((MR_Box) (Var_39));
      MR_hl_field(MR_mktag(0), Var_10, 13) = ((MR_Box) (Var_40));
      MR_hl_field(MR_mktag(0), Var_10, 14) = ((MR_Box) (Var_41));
      MR_hl_field(MR_mktag(0), Var_10, 15) = ((MR_Box) (Var_42));
      MR_hl_field(MR_mktag(0), Var_10, 16) = ((MR_Box) (Var_43));
      MR_hl_field(MR_mktag(0), Var_10, 17) = ((MR_Box) (Var_44));
      MR_hl_field(MR_mktag(0), Var_10, 18) = ((MR_Box) (Var_45));
      MR_hl_field(MR_mktag(0), Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_46));
      MR_hl_field(MR_mktag(0), Var_10, 20) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), Var_10, 21) = ((MR_Box) (Var_48));
      MR_hl_field(MR_mktag(0), Var_10, 22) = ((MR_Box) (Var_49));
      MR_hl_field(MR_mktag(0), Var_10, 23) = ((MR_Box) (Var_50));
      MR_hl_field(MR_mktag(0), Var_10, 24) = ((MR_Box) (Var_51));
      MR_hl_field(MR_mktag(0), Var_10, 25) = ((MR_Box) (Var_52));
      MR_hl_field(MR_mktag(0), Var_10, 26) = ((MR_Box) (Var_53));
      MR_hl_field(MR_mktag(0), Var_10, 27) = ((MR_Box) (Var_54));
      MR_hl_field(MR_mktag(0), Var_10, 28) = ((MR_Box) (Var_55));
      MR_hl_field(MR_mktag(0), Var_10, 29) = ((MR_Box) (Var_56));
      MR_hl_field(MR_mktag(0), Var_10, 30) = ((MR_Box) (Var_57));
      MR_hl_field(MR_mktag(0), Var_10, 31) = ((MR_Box) (Var_58));
      MR_hl_field(MR_mktag(0), Var_10, 32) = ((MR_Box) (Var_59));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_21));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 13) = ((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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    MR_Word Var_10;
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_Word Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_21 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 0))));
    MR_Word Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 1))));
    MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 2))) & (MR_Integer) 1);
    MR_Word Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 3))));
    MR_Word Var_28 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 4))) & (MR_Integer) 3);
    MR_Word Var_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 5))));
    MR_Word Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 6))));
    MR_Word Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 7))));
    MR_Word Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 8))));
    MR_Word Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 9))));
    MR_Word Var_38 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 11))));
    MR_Word Var_39 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 12))));
    MR_Word Var_40 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 13))));
    MR_Word Var_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 14))));
    MR_Word Var_42 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 15))));
    MR_Word Var_43 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 16))));
    MR_Word Var_44 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 17))));
    MR_Word Var_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 18))));
    MR_Word Var_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 20))));
    MR_Word Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 21))));
    MR_Word Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 22))));
    MR_Word Var_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 23))));
    MR_Word Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 24))));
    MR_Word Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 25))));
    MR_Word Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 26))));
    MR_Word Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 27))));
    MR_Word Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 28))));
    MR_Word Var_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 29))));
    MR_Word Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 30))));
    MR_Word Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 31))));
    MR_Word Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 32))));
    MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 10)));

    {
      Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_10, 0) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(0), Var_10, 1) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_26));
      MR_hl_field(MR_mktag(0), Var_10, 3) = ((MR_Box) (Var_27));
      MR_hl_field(MR_mktag(0), Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_28));
      MR_hl_field(MR_mktag(0), Var_10, 5) = ((MR_Box) (Var_29));
      MR_hl_field(MR_mktag(0), Var_10, 6) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), Var_10, 7) = ((MR_Box) (Var_31));
      MR_hl_field(MR_mktag(0), Var_10, 8) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), Var_10, 9) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), Var_10, 10) = (MR_Box) (packed_word_3);
      MR_hl_field(MR_mktag(0), Var_10, 11) = ((MR_Box) (Var_38));
      MR_hl_field(MR_mktag(0), Var_10, 12) = ((MR_Box) (Var_39));
      MR_hl_field(MR_mktag(0), Var_10, 13) = ((MR_Box) (Var_40));
      MR_hl_field(MR_mktag(0), Var_10, 14) = ((MR_Box) (Var_41));
      MR_hl_field(MR_mktag(0), Var_10, 15) = ((MR_Box) (Var_42));
      MR_hl_field(MR_mktag(0), Var_10, 16) = ((MR_Box) (Var_43));
      MR_hl_field(MR_mktag(0), Var_10, 17) = ((MR_Box) (Var_44));
      MR_hl_field(MR_mktag(0), Var_10, 18) = ((MR_Box) (Var_45));
      MR_hl_field(MR_mktag(0), Var_10, 19) = (MR_Box) ((MR_Unsigned) (X_4));
      MR_hl_field(MR_mktag(0), Var_10, 20) = ((MR_Box) (Var_47));
      MR_hl_field(MR_mktag(0), Var_10, 21) = ((MR_Box) (Var_48));
      MR_hl_field(MR_mktag(0), Var_10, 22) = ((MR_Box) (Var_49));
      MR_hl_field(MR_mktag(0), Var_10, 23) = ((MR_Box) (Var_50));
      MR_hl_field(MR_mktag(0), Var_10, 24) = ((MR_Box) (Var_51));
      MR_hl_field(MR_mktag(0), Var_10, 25) = ((MR_Box) (Var_52));
      MR_hl_field(MR_mktag(0), Var_10, 26) = ((MR_Box) (Var_53));
      MR_hl_field(MR_mktag(0), Var_10, 27) = ((MR_Box) (Var_54));
      MR_hl_field(MR_mktag(0), Var_10, 28) = ((MR_Box) (Var_55));
      MR_hl_field(MR_mktag(0), Var_10, 29) = ((MR_Box) (Var_56));
      MR_hl_field(MR_mktag(0), Var_10, 30) = ((MR_Box) (Var_57));
      MR_hl_field(MR_mktag(0), Var_10, 31) = ((MR_Box) (Var_58));
      MR_hl_field(MR_mktag(0), Var_10, 32) = ((MR_Box) (Var_59));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_21));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 13) = ((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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    MR_Word Var_10;
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_Word Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_21 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 0))));
    MR_Word Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 1))));
    MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 2))) & (MR_Integer) 1);
    MR_Word Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 3))));
    MR_Word Var_28 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 4))) & (MR_Integer) 3);
    MR_Word Var_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 5))));
    MR_Word Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 6))));
    MR_Word Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 7))));
    MR_Word Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 8))));
    MR_Word Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 9))));
    MR_Word Var_38 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 11))));
    MR_Word Var_39 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 12))));
    MR_Word Var_40 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 13))));
    MR_Word Var_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 14))));
    MR_Word Var_42 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 15))));
    MR_Word Var_43 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 16))));
    MR_Word Var_44 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 17))));
    MR_Word Var_46 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 19))) & (MR_Integer) 1);
    MR_Word Var_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 20))));
    MR_Word Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 21))));
    MR_Word Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 22))));
    MR_Word Var_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 23))));
    MR_Word Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 24))));
    MR_Word Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 25))));
    MR_Word Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 26))));
    MR_Word Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 27))));
    MR_Word Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 28))));
    MR_Word Var_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 29))));
    MR_Word Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 30))));
    MR_Word Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 31))));
    MR_Word Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 32))));
    MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 10)));

    {
      Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_10, 0) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(0), Var_10, 1) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_26));
      MR_hl_field(MR_mktag(0), Var_10, 3) = ((MR_Box) (Var_27));
      MR_hl_field(MR_mktag(0), Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_28));
      MR_hl_field(MR_mktag(0), Var_10, 5) = ((MR_Box) (Var_29));
      MR_hl_field(MR_mktag(0), Var_10, 6) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), Var_10, 7) = ((MR_Box) (Var_31));
      MR_hl_field(MR_mktag(0), Var_10, 8) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), Var_10, 9) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), Var_10, 10) = (MR_Box) (packed_word_3);
      MR_hl_field(MR_mktag(0), Var_10, 11) = ((MR_Box) (Var_38));
      MR_hl_field(MR_mktag(0), Var_10, 12) = ((MR_Box) (Var_39));
      MR_hl_field(MR_mktag(0), Var_10, 13) = ((MR_Box) (Var_40));
      MR_hl_field(MR_mktag(0), Var_10, 14) = ((MR_Box) (Var_41));
      MR_hl_field(MR_mktag(0), Var_10, 15) = ((MR_Box) (Var_42));
      MR_hl_field(MR_mktag(0), Var_10, 16) = ((MR_Box) (Var_43));
      MR_hl_field(MR_mktag(0), Var_10, 17) = ((MR_Box) (Var_44));
      MR_hl_field(MR_mktag(0), Var_10, 18) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_46));
      MR_hl_field(MR_mktag(0), Var_10, 20) = ((MR_Box) (Var_47));
      MR_hl_field(MR_mktag(0), Var_10, 21) = ((MR_Box) (Var_48));
      MR_hl_field(MR_mktag(0), Var_10, 22) = ((MR_Box) (Var_49));
      MR_hl_field(MR_mktag(0), Var_10, 23) = ((MR_Box) (Var_50));
      MR_hl_field(MR_mktag(0), Var_10, 24) = ((MR_Box) (Var_51));
      MR_hl_field(MR_mktag(0), Var_10, 25) = ((MR_Box) (Var_52));
      MR_hl_field(MR_mktag(0), Var_10, 26) = ((MR_Box) (Var_53));
      MR_hl_field(MR_mktag(0), Var_10, 27) = ((MR_Box) (Var_54));
      MR_hl_field(MR_mktag(0), Var_10, 28) = ((MR_Box) (Var_55));
      MR_hl_field(MR_mktag(0), Var_10, 29) = ((MR_Box) (Var_56));
      MR_hl_field(MR_mktag(0), Var_10, 30) = ((MR_Box) (Var_57));
      MR_hl_field(MR_mktag(0), Var_10, 31) = ((MR_Box) (Var_58));
      MR_hl_field(MR_mktag(0), Var_10, 32) = ((MR_Box) (Var_59));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_21));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 13) = ((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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    MR_Word Var_10;
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_Word Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_21 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 0))));
    MR_Word Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 1))));
    MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 2))) & (MR_Integer) 1);
    MR_Word Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 3))));
    MR_Word Var_28 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 4))) & (MR_Integer) 3);
    MR_Word Var_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 5))));
    MR_Word Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 6))));
    MR_Word Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 7))));
    MR_Word Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 8))));
    MR_Word Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 9))));
    MR_Word Var_38 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 11))));
    MR_Word Var_39 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 12))));
    MR_Word Var_40 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 13))));
    MR_Word Var_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 14))));
    MR_Word Var_42 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 15))));
    MR_Word Var_43 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 16))));
    MR_Word Var_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 18))));
    MR_Word Var_46 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 19))) & (MR_Integer) 1);
    MR_Word Var_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 20))));
    MR_Word Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 21))));
    MR_Word Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 22))));
    MR_Word Var_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 23))));
    MR_Word Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 24))));
    MR_Word Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 25))));
    MR_Word Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 26))));
    MR_Word Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 27))));
    MR_Word Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 28))));
    MR_Word Var_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 29))));
    MR_Word Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 30))));
    MR_Word Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 31))));
    MR_Word Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 32))));
    MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 10)));

    {
      Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_10, 0) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(0), Var_10, 1) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_26));
      MR_hl_field(MR_mktag(0), Var_10, 3) = ((MR_Box) (Var_27));
      MR_hl_field(MR_mktag(0), Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_28));
      MR_hl_field(MR_mktag(0), Var_10, 5) = ((MR_Box) (Var_29));
      MR_hl_field(MR_mktag(0), Var_10, 6) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), Var_10, 7) = ((MR_Box) (Var_31));
      MR_hl_field(MR_mktag(0), Var_10, 8) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), Var_10, 9) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), Var_10, 10) = (MR_Box) (packed_word_3);
      MR_hl_field(MR_mktag(0), Var_10, 11) = ((MR_Box) (Var_38));
      MR_hl_field(MR_mktag(0), Var_10, 12) = ((MR_Box) (Var_39));
      MR_hl_field(MR_mktag(0), Var_10, 13) = ((MR_Box) (Var_40));
      MR_hl_field(MR_mktag(0), Var_10, 14) = ((MR_Box) (Var_41));
      MR_hl_field(MR_mktag(0), Var_10, 15) = ((MR_Box) (Var_42));
      MR_hl_field(MR_mktag(0), Var_10, 16) = ((MR_Box) (Var_43));
      MR_hl_field(MR_mktag(0), Var_10, 17) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), Var_10, 18) = ((MR_Box) (Var_45));
      MR_hl_field(MR_mktag(0), Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_46));
      MR_hl_field(MR_mktag(0), Var_10, 20) = ((MR_Box) (Var_47));
      MR_hl_field(MR_mktag(0), Var_10, 21) = ((MR_Box) (Var_48));
      MR_hl_field(MR_mktag(0), Var_10, 22) = ((MR_Box) (Var_49));
      MR_hl_field(MR_mktag(0), Var_10, 23) = ((MR_Box) (Var_50));
      MR_hl_field(MR_mktag(0), Var_10, 24) = ((MR_Box) (Var_51));
      MR_hl_field(MR_mktag(0), Var_10, 25) = ((MR_Box) (Var_52));
      MR_hl_field(MR_mktag(0), Var_10, 26) = ((MR_Box) (Var_53));
      MR_hl_field(MR_mktag(0), Var_10, 27) = ((MR_Box) (Var_54));
      MR_hl_field(MR_mktag(0), Var_10, 28) = ((MR_Box) (Var_55));
      MR_hl_field(MR_mktag(0), Var_10, 29) = ((MR_Box) (Var_56));
      MR_hl_field(MR_mktag(0), Var_10, 30) = ((MR_Box) (Var_57));
      MR_hl_field(MR_mktag(0), Var_10, 31) = ((MR_Box) (Var_58));
      MR_hl_field(MR_mktag(0), Var_10, 32) = ((MR_Box) (Var_59));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_21));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 13) = ((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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    MR_Word Var_10;
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_Word Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_21 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 0))));
    MR_Word Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 1))));
    MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 2))) & (MR_Integer) 1);
    MR_Word Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 3))));
    MR_Word Var_28 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 4))) & (MR_Integer) 3);
    MR_Word Var_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 5))));
    MR_Word Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 6))));
    MR_Word Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 7))));
    MR_Word Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 8))));
    MR_Word Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 9))));
    MR_Word Var_38 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 11))));
    MR_Word Var_39 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 12))));
    MR_Word Var_40 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 13))));
    MR_Word Var_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 14))));
    MR_Word Var_42 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 15))));
    MR_Word Var_44 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 17))));
    MR_Word Var_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 18))));
    MR_Word Var_46 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 19))) & (MR_Integer) 1);
    MR_Word Var_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 20))));
    MR_Word Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 21))));
    MR_Word Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 22))));
    MR_Word Var_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 23))));
    MR_Word Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 24))));
    MR_Word Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 25))));
    MR_Word Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 26))));
    MR_Word Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 27))));
    MR_Word Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 28))));
    MR_Word Var_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 29))));
    MR_Word Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 30))));
    MR_Word Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 31))));
    MR_Word Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 32))));
    MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 10)));

    {
      Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_10, 0) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(0), Var_10, 1) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_26));
      MR_hl_field(MR_mktag(0), Var_10, 3) = ((MR_Box) (Var_27));
      MR_hl_field(MR_mktag(0), Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_28));
      MR_hl_field(MR_mktag(0), Var_10, 5) = ((MR_Box) (Var_29));
      MR_hl_field(MR_mktag(0), Var_10, 6) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), Var_10, 7) = ((MR_Box) (Var_31));
      MR_hl_field(MR_mktag(0), Var_10, 8) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), Var_10, 9) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), Var_10, 10) = (MR_Box) (packed_word_3);
      MR_hl_field(MR_mktag(0), Var_10, 11) = ((MR_Box) (Var_38));
      MR_hl_field(MR_mktag(0), Var_10, 12) = ((MR_Box) (Var_39));
      MR_hl_field(MR_mktag(0), Var_10, 13) = ((MR_Box) (Var_40));
      MR_hl_field(MR_mktag(0), Var_10, 14) = ((MR_Box) (Var_41));
      MR_hl_field(MR_mktag(0), Var_10, 15) = ((MR_Box) (Var_42));
      MR_hl_field(MR_mktag(0), Var_10, 16) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), Var_10, 17) = ((MR_Box) (Var_44));
      MR_hl_field(MR_mktag(0), Var_10, 18) = ((MR_Box) (Var_45));
      MR_hl_field(MR_mktag(0), Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_46));
      MR_hl_field(MR_mktag(0), Var_10, 20) = ((MR_Box) (Var_47));
      MR_hl_field(MR_mktag(0), Var_10, 21) = ((MR_Box) (Var_48));
      MR_hl_field(MR_mktag(0), Var_10, 22) = ((MR_Box) (Var_49));
      MR_hl_field(MR_mktag(0), Var_10, 23) = ((MR_Box) (Var_50));
      MR_hl_field(MR_mktag(0), Var_10, 24) = ((MR_Box) (Var_51));
      MR_hl_field(MR_mktag(0), Var_10, 25) = ((MR_Box) (Var_52));
      MR_hl_field(MR_mktag(0), Var_10, 26) = ((MR_Box) (Var_53));
      MR_hl_field(MR_mktag(0), Var_10, 27) = ((MR_Box) (Var_54));
      MR_hl_field(MR_mktag(0), Var_10, 28) = ((MR_Box) (Var_55));
      MR_hl_field(MR_mktag(0), Var_10, 29) = ((MR_Box) (Var_56));
      MR_hl_field(MR_mktag(0), Var_10, 30) = ((MR_Box) (Var_57));
      MR_hl_field(MR_mktag(0), Var_10, 31) = ((MR_Box) (Var_58));
      MR_hl_field(MR_mktag(0), Var_10, 32) = ((MR_Box) (Var_59));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_21));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 13) = ((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_33;
    MR_Word Var_34;
    MR_Word Var_39;
    MR_Word Var_40;
    MR_Word Var_41;
    MR_Word Var_42;
    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_Unsigned packed_word_3;

    {
      Var_9 = (MR_Word) MR_mkword(MR_mktag(1), MR_new_object(MR_Word, (1 * sizeof(MR_Word)), NULL, NULL));
      MR_hl_field(MR_mktag(1), Var_9, 0) = ((MR_Box) (X_4));
    }
    Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))));
    Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    Var_21 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    Var_22 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    Var_10 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 0))));
    Var_26 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 1))));
    Var_27 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 2))) & (MR_Integer) 1);
    Var_28 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 3))));
    Var_29 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 4))) & (MR_Integer) 3);
    Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 5))));
    Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 6))));
    Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 7))));
    Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 8))));
    Var_34 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 9))));
    packed_word_3 = (MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 10)));
    Var_39 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 11))));
    Var_40 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 12))));
    Var_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 13))));
    Var_42 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 14))));
    Var_44 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 16))));
    Var_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 17))));
    Var_46 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 18))));
    Var_47 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 19))) & (MR_Integer) 1);
    Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 20))));
    Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 21))));
    Var_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 22))));
    Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 23))));
    Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 24))));
    Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 25))));
    Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 26))));
    Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 27))));
    Var_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 28))));
    Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 29))));
    Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 30))));
    Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 31))));
    Var_60 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 32))));
    {
      Var_11 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_11, 0) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), Var_11, 1) = ((MR_Box) (Var_26));
      MR_hl_field(MR_mktag(0), Var_11, 2) = (MR_Box) ((MR_Unsigned) (Var_27));
      MR_hl_field(MR_mktag(0), Var_11, 3) = ((MR_Box) (Var_28));
      MR_hl_field(MR_mktag(0), Var_11, 4) = (MR_Box) ((MR_Unsigned) (Var_29));
      MR_hl_field(MR_mktag(0), Var_11, 5) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), Var_11, 6) = ((MR_Box) (Var_31));
      MR_hl_field(MR_mktag(0), Var_11, 7) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), Var_11, 8) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), Var_11, 9) = ((MR_Box) (Var_34));
      MR_hl_field(MR_mktag(0), Var_11, 10) = (MR_Box) (packed_word_3);
      MR_hl_field(MR_mktag(0), Var_11, 11) = ((MR_Box) (Var_39));
      MR_hl_field(MR_mktag(0), Var_11, 12) = ((MR_Box) (Var_40));
      MR_hl_field(MR_mktag(0), Var_11, 13) = ((MR_Box) (Var_41));
      MR_hl_field(MR_mktag(0), Var_11, 14) = ((MR_Box) (Var_42));
      MR_hl_field(MR_mktag(0), Var_11, 15) = ((MR_Box) (Var_9));
      MR_hl_field(MR_mktag(0), Var_11, 16) = ((MR_Box) (Var_44));
      MR_hl_field(MR_mktag(0), Var_11, 17) = ((MR_Box) (Var_45));
      MR_hl_field(MR_mktag(0), Var_11, 18) = ((MR_Box) (Var_46));
      MR_hl_field(MR_mktag(0), Var_11, 19) = (MR_Box) ((MR_Unsigned) (Var_47));
      MR_hl_field(MR_mktag(0), Var_11, 20) = ((MR_Box) (Var_48));
      MR_hl_field(MR_mktag(0), Var_11, 21) = ((MR_Box) (Var_49));
      MR_hl_field(MR_mktag(0), Var_11, 22) = ((MR_Box) (Var_50));
      MR_hl_field(MR_mktag(0), Var_11, 23) = ((MR_Box) (Var_51));
      MR_hl_field(MR_mktag(0), Var_11, 24) = ((MR_Box) (Var_52));
      MR_hl_field(MR_mktag(0), Var_11, 25) = ((MR_Box) (Var_53));
      MR_hl_field(MR_mktag(0), Var_11, 26) = ((MR_Box) (Var_54));
      MR_hl_field(MR_mktag(0), Var_11, 27) = ((MR_Box) (Var_55));
      MR_hl_field(MR_mktag(0), Var_11, 28) = ((MR_Box) (Var_56));
      MR_hl_field(MR_mktag(0), Var_11, 29) = ((MR_Box) (Var_57));
      MR_hl_field(MR_mktag(0), Var_11, 30) = ((MR_Box) (Var_58));
      MR_hl_field(MR_mktag(0), Var_11, 31) = ((MR_Box) (Var_59));
      MR_hl_field(MR_mktag(0), Var_11, 32) = ((MR_Box) (Var_60));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_21));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_22));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(0), base, 13) = ((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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    MR_Word Var_10;
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_Word Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_21 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 0))));
    MR_Word Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 1))));
    MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 2))) & (MR_Integer) 1);
    MR_Word Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 3))));
    MR_Word Var_28 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 4))) & (MR_Integer) 3);
    MR_Word Var_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 5))));
    MR_Word Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 6))));
    MR_Word Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 7))));
    MR_Word Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 8))));
    MR_Word Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 9))));
    MR_Word Var_38 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 11))));
    MR_Word Var_39 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 12))));
    MR_Word Var_40 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 13))));
    MR_Word Var_42 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 15))));
    MR_Word Var_43 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 16))));
    MR_Word Var_44 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 17))));
    MR_Word Var_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 18))));
    MR_Word Var_46 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 19))) & (MR_Integer) 1);
    MR_Word Var_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 20))));
    MR_Word Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 21))));
    MR_Word Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 22))));
    MR_Word Var_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 23))));
    MR_Word Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 24))));
    MR_Word Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 25))));
    MR_Word Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 26))));
    MR_Word Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 27))));
    MR_Word Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 28))));
    MR_Word Var_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 29))));
    MR_Word Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 30))));
    MR_Word Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 31))));
    MR_Word Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 32))));
    MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 10)));

    {
      Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_10, 0) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(0), Var_10, 1) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_26));
      MR_hl_field(MR_mktag(0), Var_10, 3) = ((MR_Box) (Var_27));
      MR_hl_field(MR_mktag(0), Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_28));
      MR_hl_field(MR_mktag(0), Var_10, 5) = ((MR_Box) (Var_29));
      MR_hl_field(MR_mktag(0), Var_10, 6) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), Var_10, 7) = ((MR_Box) (Var_31));
      MR_hl_field(MR_mktag(0), Var_10, 8) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), Var_10, 9) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), Var_10, 10) = (MR_Box) (packed_word_3);
      MR_hl_field(MR_mktag(0), Var_10, 11) = ((MR_Box) (Var_38));
      MR_hl_field(MR_mktag(0), Var_10, 12) = ((MR_Box) (Var_39));
      MR_hl_field(MR_mktag(0), Var_10, 13) = ((MR_Box) (Var_40));
      MR_hl_field(MR_mktag(0), Var_10, 14) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), Var_10, 15) = ((MR_Box) (Var_42));
      MR_hl_field(MR_mktag(0), Var_10, 16) = ((MR_Box) (Var_43));
      MR_hl_field(MR_mktag(0), Var_10, 17) = ((MR_Box) (Var_44));
      MR_hl_field(MR_mktag(0), Var_10, 18) = ((MR_Box) (Var_45));
      MR_hl_field(MR_mktag(0), Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_46));
      MR_hl_field(MR_mktag(0), Var_10, 20) = ((MR_Box) (Var_47));
      MR_hl_field(MR_mktag(0), Var_10, 21) = ((MR_Box) (Var_48));
      MR_hl_field(MR_mktag(0), Var_10, 22) = ((MR_Box) (Var_49));
      MR_hl_field(MR_mktag(0), Var_10, 23) = ((MR_Box) (Var_50));
      MR_hl_field(MR_mktag(0), Var_10, 24) = ((MR_Box) (Var_51));
      MR_hl_field(MR_mktag(0), Var_10, 25) = ((MR_Box) (Var_52));
      MR_hl_field(MR_mktag(0), Var_10, 26) = ((MR_Box) (Var_53));
      MR_hl_field(MR_mktag(0), Var_10, 27) = ((MR_Box) (Var_54));
      MR_hl_field(MR_mktag(0), Var_10, 28) = ((MR_Box) (Var_55));
      MR_hl_field(MR_mktag(0), Var_10, 29) = ((MR_Box) (Var_56));
      MR_hl_field(MR_mktag(0), Var_10, 30) = ((MR_Box) (Var_57));
      MR_hl_field(MR_mktag(0), Var_10, 31) = ((MR_Box) (Var_58));
      MR_hl_field(MR_mktag(0), Var_10, 32) = ((MR_Box) (Var_59));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_21));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 13) = ((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_33;
    MR_Word Var_34;
    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_Word Var_59;
    MR_Word Var_60;
    MR_Unsigned packed_word_3;

    {
      Var_9 = (MR_Word) MR_mkword(MR_mktag(1), MR_new_object(MR_Word, (1 * sizeof(MR_Word)), NULL, NULL));
      MR_hl_field(MR_mktag(1), Var_9, 0) = ((MR_Box) (X_4));
    }
    Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))));
    Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    Var_21 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    Var_22 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    Var_10 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 0))));
    Var_26 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 1))));
    Var_27 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 2))) & (MR_Integer) 1);
    Var_28 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 3))));
    Var_29 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 4))) & (MR_Integer) 3);
    Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 5))));
    Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 6))));
    Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 7))));
    Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 8))));
    Var_34 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 9))));
    packed_word_3 = (MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 10)));
    Var_39 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 11))));
    Var_40 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 12))));
    Var_42 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 14))));
    Var_43 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 15))));
    Var_44 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 16))));
    Var_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 17))));
    Var_46 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 18))));
    Var_47 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 19))) & (MR_Integer) 1);
    Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 20))));
    Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 21))));
    Var_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 22))));
    Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 23))));
    Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 24))));
    Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 25))));
    Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 26))));
    Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 27))));
    Var_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 28))));
    Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 29))));
    Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 30))));
    Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 31))));
    Var_60 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 32))));
    {
      Var_11 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_11, 0) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), Var_11, 1) = ((MR_Box) (Var_26));
      MR_hl_field(MR_mktag(0), Var_11, 2) = (MR_Box) ((MR_Unsigned) (Var_27));
      MR_hl_field(MR_mktag(0), Var_11, 3) = ((MR_Box) (Var_28));
      MR_hl_field(MR_mktag(0), Var_11, 4) = (MR_Box) ((MR_Unsigned) (Var_29));
      MR_hl_field(MR_mktag(0), Var_11, 5) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), Var_11, 6) = ((MR_Box) (Var_31));
      MR_hl_field(MR_mktag(0), Var_11, 7) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), Var_11, 8) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), Var_11, 9) = ((MR_Box) (Var_34));
      MR_hl_field(MR_mktag(0), Var_11, 10) = (MR_Box) (packed_word_3);
      MR_hl_field(MR_mktag(0), Var_11, 11) = ((MR_Box) (Var_39));
      MR_hl_field(MR_mktag(0), Var_11, 12) = ((MR_Box) (Var_40));
      MR_hl_field(MR_mktag(0), Var_11, 13) = ((MR_Box) (Var_9));
      MR_hl_field(MR_mktag(0), Var_11, 14) = ((MR_Box) (Var_42));
      MR_hl_field(MR_mktag(0), Var_11, 15) = ((MR_Box) (Var_43));
      MR_hl_field(MR_mktag(0), Var_11, 16) = ((MR_Box) (Var_44));
      MR_hl_field(MR_mktag(0), Var_11, 17) = ((MR_Box) (Var_45));
      MR_hl_field(MR_mktag(0), Var_11, 18) = ((MR_Box) (Var_46));
      MR_hl_field(MR_mktag(0), Var_11, 19) = (MR_Box) ((MR_Unsigned) (Var_47));
      MR_hl_field(MR_mktag(0), Var_11, 20) = ((MR_Box) (Var_48));
      MR_hl_field(MR_mktag(0), Var_11, 21) = ((MR_Box) (Var_49));
      MR_hl_field(MR_mktag(0), Var_11, 22) = ((MR_Box) (Var_50));
      MR_hl_field(MR_mktag(0), Var_11, 23) = ((MR_Box) (Var_51));
      MR_hl_field(MR_mktag(0), Var_11, 24) = ((MR_Box) (Var_52));
      MR_hl_field(MR_mktag(0), Var_11, 25) = ((MR_Box) (Var_53));
      MR_hl_field(MR_mktag(0), Var_11, 26) = ((MR_Box) (Var_54));
      MR_hl_field(MR_mktag(0), Var_11, 27) = ((MR_Box) (Var_55));
      MR_hl_field(MR_mktag(0), Var_11, 28) = ((MR_Box) (Var_56));
      MR_hl_field(MR_mktag(0), Var_11, 29) = ((MR_Box) (Var_57));
      MR_hl_field(MR_mktag(0), Var_11, 30) = ((MR_Box) (Var_58));
      MR_hl_field(MR_mktag(0), Var_11, 31) = ((MR_Box) (Var_59));
      MR_hl_field(MR_mktag(0), Var_11, 32) = ((MR_Box) (Var_60));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_21));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_22));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(0), base, 13) = ((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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    MR_Word Var_10;
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_Word Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_21 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 0))));
    MR_Word Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 1))));
    MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 2))) & (MR_Integer) 1);
    MR_Word Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 3))));
    MR_Word Var_28 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 4))) & (MR_Integer) 3);
    MR_Word Var_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 5))));
    MR_Word Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 6))));
    MR_Word Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 7))));
    MR_Word Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 8))));
    MR_Word Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 9))));
    MR_Word Var_38 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 11))));
    MR_Word Var_40 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 13))));
    MR_Word Var_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 14))));
    MR_Word Var_42 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 15))));
    MR_Word Var_43 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 16))));
    MR_Word Var_44 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 17))));
    MR_Word Var_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 18))));
    MR_Word Var_46 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 19))) & (MR_Integer) 1);
    MR_Word Var_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 20))));
    MR_Word Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 21))));
    MR_Word Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 22))));
    MR_Word Var_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 23))));
    MR_Word Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 24))));
    MR_Word Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 25))));
    MR_Word Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 26))));
    MR_Word Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 27))));
    MR_Word Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 28))));
    MR_Word Var_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 29))));
    MR_Word Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 30))));
    MR_Word Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 31))));
    MR_Word Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 32))));
    MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 10)));

    {
      Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_10, 0) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(0), Var_10, 1) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_26));
      MR_hl_field(MR_mktag(0), Var_10, 3) = ((MR_Box) (Var_27));
      MR_hl_field(MR_mktag(0), Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_28));
      MR_hl_field(MR_mktag(0), Var_10, 5) = ((MR_Box) (Var_29));
      MR_hl_field(MR_mktag(0), Var_10, 6) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), Var_10, 7) = ((MR_Box) (Var_31));
      MR_hl_field(MR_mktag(0), Var_10, 8) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), Var_10, 9) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), Var_10, 10) = (MR_Box) (packed_word_3);
      MR_hl_field(MR_mktag(0), Var_10, 11) = ((MR_Box) (Var_38));
      MR_hl_field(MR_mktag(0), Var_10, 12) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), Var_10, 13) = ((MR_Box) (Var_40));
      MR_hl_field(MR_mktag(0), Var_10, 14) = ((MR_Box) (Var_41));
      MR_hl_field(MR_mktag(0), Var_10, 15) = ((MR_Box) (Var_42));
      MR_hl_field(MR_mktag(0), Var_10, 16) = ((MR_Box) (Var_43));
      MR_hl_field(MR_mktag(0), Var_10, 17) = ((MR_Box) (Var_44));
      MR_hl_field(MR_mktag(0), Var_10, 18) = ((MR_Box) (Var_45));
      MR_hl_field(MR_mktag(0), Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_46));
      MR_hl_field(MR_mktag(0), Var_10, 20) = ((MR_Box) (Var_47));
      MR_hl_field(MR_mktag(0), Var_10, 21) = ((MR_Box) (Var_48));
      MR_hl_field(MR_mktag(0), Var_10, 22) = ((MR_Box) (Var_49));
      MR_hl_field(MR_mktag(0), Var_10, 23) = ((MR_Box) (Var_50));
      MR_hl_field(MR_mktag(0), Var_10, 24) = ((MR_Box) (Var_51));
      MR_hl_field(MR_mktag(0), Var_10, 25) = ((MR_Box) (Var_52));
      MR_hl_field(MR_mktag(0), Var_10, 26) = ((MR_Box) (Var_53));
      MR_hl_field(MR_mktag(0), Var_10, 27) = ((MR_Box) (Var_54));
      MR_hl_field(MR_mktag(0), Var_10, 28) = ((MR_Box) (Var_55));
      MR_hl_field(MR_mktag(0), Var_10, 29) = ((MR_Box) (Var_56));
      MR_hl_field(MR_mktag(0), Var_10, 30) = ((MR_Box) (Var_57));
      MR_hl_field(MR_mktag(0), Var_10, 31) = ((MR_Box) (Var_58));
      MR_hl_field(MR_mktag(0), Var_10, 32) = ((MR_Box) (Var_59));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_21));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 13) = ((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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    MR_Word Var_10;
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_Word Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_21 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 0))));
    MR_Word Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 1))));
    MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 2))) & (MR_Integer) 1);
    MR_Word Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 3))));
    MR_Word Var_28 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 4))) & (MR_Integer) 3);
    MR_Word Var_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 5))));
    MR_Word Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 6))));
    MR_Word Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 7))));
    MR_Word Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 8))));
    MR_Word Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 9))));
    MR_Word Var_39 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 12))));
    MR_Word Var_40 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 13))));
    MR_Word Var_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 14))));
    MR_Word Var_42 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 15))));
    MR_Word Var_43 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 16))));
    MR_Word Var_44 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 17))));
    MR_Word Var_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 18))));
    MR_Word Var_46 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 19))) & (MR_Integer) 1);
    MR_Word Var_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 20))));
    MR_Word Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 21))));
    MR_Word Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 22))));
    MR_Word Var_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 23))));
    MR_Word Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 24))));
    MR_Word Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 25))));
    MR_Word Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 26))));
    MR_Word Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 27))));
    MR_Word Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 28))));
    MR_Word Var_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 29))));
    MR_Word Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 30))));
    MR_Word Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 31))));
    MR_Word Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 32))));
    MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 10)));

    {
      Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_10, 0) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(0), Var_10, 1) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_26));
      MR_hl_field(MR_mktag(0), Var_10, 3) = ((MR_Box) (Var_27));
      MR_hl_field(MR_mktag(0), Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_28));
      MR_hl_field(MR_mktag(0), Var_10, 5) = ((MR_Box) (Var_29));
      MR_hl_field(MR_mktag(0), Var_10, 6) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), Var_10, 7) = ((MR_Box) (Var_31));
      MR_hl_field(MR_mktag(0), Var_10, 8) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), Var_10, 9) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), Var_10, 10) = (MR_Box) (packed_word_3);
      MR_hl_field(MR_mktag(0), Var_10, 11) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), Var_10, 12) = ((MR_Box) (Var_39));
      MR_hl_field(MR_mktag(0), Var_10, 13) = ((MR_Box) (Var_40));
      MR_hl_field(MR_mktag(0), Var_10, 14) = ((MR_Box) (Var_41));
      MR_hl_field(MR_mktag(0), Var_10, 15) = ((MR_Box) (Var_42));
      MR_hl_field(MR_mktag(0), Var_10, 16) = ((MR_Box) (Var_43));
      MR_hl_field(MR_mktag(0), Var_10, 17) = ((MR_Box) (Var_44));
      MR_hl_field(MR_mktag(0), Var_10, 18) = ((MR_Box) (Var_45));
      MR_hl_field(MR_mktag(0), Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_46));
      MR_hl_field(MR_mktag(0), Var_10, 20) = ((MR_Box) (Var_47));
      MR_hl_field(MR_mktag(0), Var_10, 21) = ((MR_Box) (Var_48));
      MR_hl_field(MR_mktag(0), Var_10, 22) = ((MR_Box) (Var_49));
      MR_hl_field(MR_mktag(0), Var_10, 23) = ((MR_Box) (Var_50));
      MR_hl_field(MR_mktag(0), Var_10, 24) = ((MR_Box) (Var_51));
      MR_hl_field(MR_mktag(0), Var_10, 25) = ((MR_Box) (Var_52));
      MR_hl_field(MR_mktag(0), Var_10, 26) = ((MR_Box) (Var_53));
      MR_hl_field(MR_mktag(0), Var_10, 27) = ((MR_Box) (Var_54));
      MR_hl_field(MR_mktag(0), Var_10, 28) = ((MR_Box) (Var_55));
      MR_hl_field(MR_mktag(0), Var_10, 29) = ((MR_Box) (Var_56));
      MR_hl_field(MR_mktag(0), Var_10, 30) = ((MR_Box) (Var_57));
      MR_hl_field(MR_mktag(0), Var_10, 31) = ((MR_Box) (Var_58));
      MR_hl_field(MR_mktag(0), Var_10, 32) = ((MR_Box) (Var_59));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_21));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 13) = ((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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    MR_Word Var_10;
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_Word Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_21 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 0))));
    MR_Word Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 1))));
    MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 2))) & (MR_Integer) 1);
    MR_Word Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 3))));
    MR_Word Var_28 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 4))) & (MR_Integer) 3);
    MR_Word Var_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 5))));
    MR_Word Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 6))));
    MR_Word Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 7))));
    MR_Word Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 8))));
    MR_Word Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 9))));
    MR_Word Var_38 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 11))));
    MR_Word Var_39 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 12))));
    MR_Word Var_40 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 13))));
    MR_Word Var_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 14))));
    MR_Word Var_42 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 15))));
    MR_Word Var_43 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 16))));
    MR_Word Var_44 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 17))));
    MR_Word Var_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 18))));
    MR_Word Var_46 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 19))) & (MR_Integer) 1);
    MR_Word Var_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 20))));
    MR_Word Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 21))));
    MR_Word Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 22))));
    MR_Word Var_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 23))));
    MR_Word Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 24))));
    MR_Word Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 25))));
    MR_Word Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 26))));
    MR_Word Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 27))));
    MR_Word Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 28))));
    MR_Word Var_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 29))));
    MR_Word Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 30))));
    MR_Word Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 31))));
    MR_Word Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 32))));
    MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 10)));

    {
      Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_10, 0) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(0), Var_10, 1) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_26));
      MR_hl_field(MR_mktag(0), Var_10, 3) = ((MR_Box) (Var_27));
      MR_hl_field(MR_mktag(0), Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_28));
      MR_hl_field(MR_mktag(0), Var_10, 5) = ((MR_Box) (Var_29));
      MR_hl_field(MR_mktag(0), Var_10, 6) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), Var_10, 7) = ((MR_Box) (Var_31));
      MR_hl_field(MR_mktag(0), Var_10, 8) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), Var_10, 9) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), Var_10, 10) = (MR_Box) ((((packed_word_3 & (~((MR_Unsigned) 1U)))) | (MR_Unsigned) (X_4)));
      MR_hl_field(MR_mktag(0), Var_10, 11) = ((MR_Box) (Var_38));
      MR_hl_field(MR_mktag(0), Var_10, 12) = ((MR_Box) (Var_39));
      MR_hl_field(MR_mktag(0), Var_10, 13) = ((MR_Box) (Var_40));
      MR_hl_field(MR_mktag(0), Var_10, 14) = ((MR_Box) (Var_41));
      MR_hl_field(MR_mktag(0), Var_10, 15) = ((MR_Box) (Var_42));
      MR_hl_field(MR_mktag(0), Var_10, 16) = ((MR_Box) (Var_43));
      MR_hl_field(MR_mktag(0), Var_10, 17) = ((MR_Box) (Var_44));
      MR_hl_field(MR_mktag(0), Var_10, 18) = ((MR_Box) (Var_45));
      MR_hl_field(MR_mktag(0), Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_46));
      MR_hl_field(MR_mktag(0), Var_10, 20) = ((MR_Box) (Var_47));
      MR_hl_field(MR_mktag(0), Var_10, 21) = ((MR_Box) (Var_48));
      MR_hl_field(MR_mktag(0), Var_10, 22) = ((MR_Box) (Var_49));
      MR_hl_field(MR_mktag(0), Var_10, 23) = ((MR_Box) (Var_50));
      MR_hl_field(MR_mktag(0), Var_10, 24) = ((MR_Box) (Var_51));
      MR_hl_field(MR_mktag(0), Var_10, 25) = ((MR_Box) (Var_52));
      MR_hl_field(MR_mktag(0), Var_10, 26) = ((MR_Box) (Var_53));
      MR_hl_field(MR_mktag(0), Var_10, 27) = ((MR_Box) (Var_54));
      MR_hl_field(MR_mktag(0), Var_10, 28) = ((MR_Box) (Var_55));
      MR_hl_field(MR_mktag(0), Var_10, 29) = ((MR_Box) (Var_56));
      MR_hl_field(MR_mktag(0), Var_10, 30) = ((MR_Box) (Var_57));
      MR_hl_field(MR_mktag(0), Var_10, 31) = ((MR_Box) (Var_58));
      MR_hl_field(MR_mktag(0), Var_10, 32) = ((MR_Box) (Var_59));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_21));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 13) = ((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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    MR_Word Var_10;
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_Word Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_21 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 0))));
    MR_Word Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 1))));
    MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 2))) & (MR_Integer) 1);
    MR_Word Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 3))));
    MR_Word Var_28 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 4))) & (MR_Integer) 3);
    MR_Word Var_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 5))));
    MR_Word Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 6))));
    MR_Word Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 7))));
    MR_Word Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 8))));
    MR_Word Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 9))));
    MR_Word Var_38 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 11))));
    MR_Word Var_39 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 12))));
    MR_Word Var_40 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 13))));
    MR_Word Var_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 14))));
    MR_Word Var_42 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 15))));
    MR_Word Var_43 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 16))));
    MR_Word Var_44 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 17))));
    MR_Word Var_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 18))));
    MR_Word Var_46 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 19))) & (MR_Integer) 1);
    MR_Word Var_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 20))));
    MR_Word Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 21))));
    MR_Word Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 22))));
    MR_Word Var_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 23))));
    MR_Word Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 24))));
    MR_Word Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 25))));
    MR_Word Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 26))));
    MR_Word Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 27))));
    MR_Word Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 28))));
    MR_Word Var_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 29))));
    MR_Word Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 30))));
    MR_Word Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 31))));
    MR_Word Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 32))));
    MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 10)));

    {
      Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_10, 0) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(0), Var_10, 1) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_26));
      MR_hl_field(MR_mktag(0), Var_10, 3) = ((MR_Box) (Var_27));
      MR_hl_field(MR_mktag(0), Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_28));
      MR_hl_field(MR_mktag(0), Var_10, 5) = ((MR_Box) (Var_29));
      MR_hl_field(MR_mktag(0), Var_10, 6) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), Var_10, 7) = ((MR_Box) (Var_31));
      MR_hl_field(MR_mktag(0), Var_10, 8) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), Var_10, 9) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), Var_10, 10) = (MR_Box) ((((packed_word_3 & (~((MR_Unsigned) 2U)))) | (((MR_Unsigned) (X_4) << 1))));
      MR_hl_field(MR_mktag(0), Var_10, 11) = ((MR_Box) (Var_38));
      MR_hl_field(MR_mktag(0), Var_10, 12) = ((MR_Box) (Var_39));
      MR_hl_field(MR_mktag(0), Var_10, 13) = ((MR_Box) (Var_40));
      MR_hl_field(MR_mktag(0), Var_10, 14) = ((MR_Box) (Var_41));
      MR_hl_field(MR_mktag(0), Var_10, 15) = ((MR_Box) (Var_42));
      MR_hl_field(MR_mktag(0), Var_10, 16) = ((MR_Box) (Var_43));
      MR_hl_field(MR_mktag(0), Var_10, 17) = ((MR_Box) (Var_44));
      MR_hl_field(MR_mktag(0), Var_10, 18) = ((MR_Box) (Var_45));
      MR_hl_field(MR_mktag(0), Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_46));
      MR_hl_field(MR_mktag(0), Var_10, 20) = ((MR_Box) (Var_47));
      MR_hl_field(MR_mktag(0), Var_10, 21) = ((MR_Box) (Var_48));
      MR_hl_field(MR_mktag(0), Var_10, 22) = ((MR_Box) (Var_49));
      MR_hl_field(MR_mktag(0), Var_10, 23) = ((MR_Box) (Var_50));
      MR_hl_field(MR_mktag(0), Var_10, 24) = ((MR_Box) (Var_51));
      MR_hl_field(MR_mktag(0), Var_10, 25) = ((MR_Box) (Var_52));
      MR_hl_field(MR_mktag(0), Var_10, 26) = ((MR_Box) (Var_53));
      MR_hl_field(MR_mktag(0), Var_10, 27) = ((MR_Box) (Var_54));
      MR_hl_field(MR_mktag(0), Var_10, 28) = ((MR_Box) (Var_55));
      MR_hl_field(MR_mktag(0), Var_10, 29) = ((MR_Box) (Var_56));
      MR_hl_field(MR_mktag(0), Var_10, 30) = ((MR_Box) (Var_57));
      MR_hl_field(MR_mktag(0), Var_10, 31) = ((MR_Box) (Var_58));
      MR_hl_field(MR_mktag(0), Var_10, 32) = ((MR_Box) (Var_59));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_21));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 13) = ((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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    MR_Word Var_10;
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_Word Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_21 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 0))));
    MR_Word Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 1))));
    MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 2))) & (MR_Integer) 1);
    MR_Word Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 3))));
    MR_Word Var_28 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 4))) & (MR_Integer) 3);
    MR_Word Var_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 5))));
    MR_Word Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 6))));
    MR_Word Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 7))));
    MR_Word Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 8))));
    MR_Word Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 9))));
    MR_Word Var_38 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 11))));
    MR_Word Var_39 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 12))));
    MR_Word Var_40 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 13))));
    MR_Word Var_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 14))));
    MR_Word Var_42 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 15))));
    MR_Word Var_43 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 16))));
    MR_Word Var_44 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 17))));
    MR_Word Var_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 18))));
    MR_Word Var_46 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 19))) & (MR_Integer) 1);
    MR_Word Var_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 20))));
    MR_Word Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 21))));
    MR_Word Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 22))));
    MR_Word Var_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 23))));
    MR_Word Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 24))));
    MR_Word Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 25))));
    MR_Word Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 26))));
    MR_Word Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 27))));
    MR_Word Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 28))));
    MR_Word Var_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 29))));
    MR_Word Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 30))));
    MR_Word Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 31))));
    MR_Word Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 32))));
    MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 10)));

    {
      Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_10, 0) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(0), Var_10, 1) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_26));
      MR_hl_field(MR_mktag(0), Var_10, 3) = ((MR_Box) (Var_27));
      MR_hl_field(MR_mktag(0), Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_28));
      MR_hl_field(MR_mktag(0), Var_10, 5) = ((MR_Box) (Var_29));
      MR_hl_field(MR_mktag(0), Var_10, 6) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), Var_10, 7) = ((MR_Box) (Var_31));
      MR_hl_field(MR_mktag(0), Var_10, 8) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), Var_10, 9) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), Var_10, 10) = (MR_Box) ((((packed_word_3 & (~((MR_Unsigned) 4U)))) | (((MR_Unsigned) (X_4) << 2))));
      MR_hl_field(MR_mktag(0), Var_10, 11) = ((MR_Box) (Var_38));
      MR_hl_field(MR_mktag(0), Var_10, 12) = ((MR_Box) (Var_39));
      MR_hl_field(MR_mktag(0), Var_10, 13) = ((MR_Box) (Var_40));
      MR_hl_field(MR_mktag(0), Var_10, 14) = ((MR_Box) (Var_41));
      MR_hl_field(MR_mktag(0), Var_10, 15) = ((MR_Box) (Var_42));
      MR_hl_field(MR_mktag(0), Var_10, 16) = ((MR_Box) (Var_43));
      MR_hl_field(MR_mktag(0), Var_10, 17) = ((MR_Box) (Var_44));
      MR_hl_field(MR_mktag(0), Var_10, 18) = ((MR_Box) (Var_45));
      MR_hl_field(MR_mktag(0), Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_46));
      MR_hl_field(MR_mktag(0), Var_10, 20) = ((MR_Box) (Var_47));
      MR_hl_field(MR_mktag(0), Var_10, 21) = ((MR_Box) (Var_48));
      MR_hl_field(MR_mktag(0), Var_10, 22) = ((MR_Box) (Var_49));
      MR_hl_field(MR_mktag(0), Var_10, 23) = ((MR_Box) (Var_50));
      MR_hl_field(MR_mktag(0), Var_10, 24) = ((MR_Box) (Var_51));
      MR_hl_field(MR_mktag(0), Var_10, 25) = ((MR_Box) (Var_52));
      MR_hl_field(MR_mktag(0), Var_10, 26) = ((MR_Box) (Var_53));
      MR_hl_field(MR_mktag(0), Var_10, 27) = ((MR_Box) (Var_54));
      MR_hl_field(MR_mktag(0), Var_10, 28) = ((MR_Box) (Var_55));
      MR_hl_field(MR_mktag(0), Var_10, 29) = ((MR_Box) (Var_56));
      MR_hl_field(MR_mktag(0), Var_10, 30) = ((MR_Box) (Var_57));
      MR_hl_field(MR_mktag(0), Var_10, 31) = ((MR_Box) (Var_58));
      MR_hl_field(MR_mktag(0), Var_10, 32) = ((MR_Box) (Var_59));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_21));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 13) = ((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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    MR_Word Var_10;
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_Word Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_21 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 0))));
    MR_Word Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 1))));
    MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 2))) & (MR_Integer) 1);
    MR_Word Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 3))));
    MR_Word Var_28 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 4))) & (MR_Integer) 3);
    MR_Word Var_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 5))));
    MR_Word Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 6))));
    MR_Word Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 7))));
    MR_Word Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 8))));
    MR_Word Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 9))));
    MR_Word Var_38 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 11))));
    MR_Word Var_39 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 12))));
    MR_Word Var_40 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 13))));
    MR_Word Var_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 14))));
    MR_Word Var_42 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 15))));
    MR_Word Var_43 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 16))));
    MR_Word Var_44 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 17))));
    MR_Word Var_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 18))));
    MR_Word Var_46 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 19))) & (MR_Integer) 1);
    MR_Word Var_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 20))));
    MR_Word Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 21))));
    MR_Word Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 22))));
    MR_Word Var_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 23))));
    MR_Word Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 24))));
    MR_Word Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 25))));
    MR_Word Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 26))));
    MR_Word Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 27))));
    MR_Word Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 28))));
    MR_Word Var_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 29))));
    MR_Word Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 30))));
    MR_Word Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 31))));
    MR_Word Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 32))));
    MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 10)));

    {
      Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_10, 0) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(0), Var_10, 1) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_26));
      MR_hl_field(MR_mktag(0), Var_10, 3) = ((MR_Box) (Var_27));
      MR_hl_field(MR_mktag(0), Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_28));
      MR_hl_field(MR_mktag(0), Var_10, 5) = ((MR_Box) (Var_29));
      MR_hl_field(MR_mktag(0), Var_10, 6) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), Var_10, 7) = ((MR_Box) (Var_31));
      MR_hl_field(MR_mktag(0), Var_10, 8) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), Var_10, 9) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), Var_10, 10) = (MR_Box) ((((packed_word_3 & (~((MR_Unsigned) 8U)))) | (((MR_Unsigned) (X_4) << 3))));
      MR_hl_field(MR_mktag(0), Var_10, 11) = ((MR_Box) (Var_38));
      MR_hl_field(MR_mktag(0), Var_10, 12) = ((MR_Box) (Var_39));
      MR_hl_field(MR_mktag(0), Var_10, 13) = ((MR_Box) (Var_40));
      MR_hl_field(MR_mktag(0), Var_10, 14) = ((MR_Box) (Var_41));
      MR_hl_field(MR_mktag(0), Var_10, 15) = ((MR_Box) (Var_42));
      MR_hl_field(MR_mktag(0), Var_10, 16) = ((MR_Box) (Var_43));
      MR_hl_field(MR_mktag(0), Var_10, 17) = ((MR_Box) (Var_44));
      MR_hl_field(MR_mktag(0), Var_10, 18) = ((MR_Box) (Var_45));
      MR_hl_field(MR_mktag(0), Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_46));
      MR_hl_field(MR_mktag(0), Var_10, 20) = ((MR_Box) (Var_47));
      MR_hl_field(MR_mktag(0), Var_10, 21) = ((MR_Box) (Var_48));
      MR_hl_field(MR_mktag(0), Var_10, 22) = ((MR_Box) (Var_49));
      MR_hl_field(MR_mktag(0), Var_10, 23) = ((MR_Box) (Var_50));
      MR_hl_field(MR_mktag(0), Var_10, 24) = ((MR_Box) (Var_51));
      MR_hl_field(MR_mktag(0), Var_10, 25) = ((MR_Box) (Var_52));
      MR_hl_field(MR_mktag(0), Var_10, 26) = ((MR_Box) (Var_53));
      MR_hl_field(MR_mktag(0), Var_10, 27) = ((MR_Box) (Var_54));
      MR_hl_field(MR_mktag(0), Var_10, 28) = ((MR_Box) (Var_55));
      MR_hl_field(MR_mktag(0), Var_10, 29) = ((MR_Box) (Var_56));
      MR_hl_field(MR_mktag(0), Var_10, 30) = ((MR_Box) (Var_57));
      MR_hl_field(MR_mktag(0), Var_10, 31) = ((MR_Box) (Var_58));
      MR_hl_field(MR_mktag(0), Var_10, 32) = ((MR_Box) (Var_59));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_21));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 13) = ((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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    MR_Word Var_10;
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_Word Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_21 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 0))));
    MR_Word Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 1))));
    MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 2))) & (MR_Integer) 1);
    MR_Word Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 3))));
    MR_Word Var_28 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 4))) & (MR_Integer) 3);
    MR_Word Var_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 5))));
    MR_Word Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 6))));
    MR_Word Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 7))));
    MR_Word Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 8))));
    MR_Word Var_38 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 11))));
    MR_Word Var_39 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 12))));
    MR_Word Var_40 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 13))));
    MR_Word Var_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 14))));
    MR_Word Var_42 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 15))));
    MR_Word Var_43 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 16))));
    MR_Word Var_44 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 17))));
    MR_Word Var_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 18))));
    MR_Word Var_46 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 19))) & (MR_Integer) 1);
    MR_Word Var_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 20))));
    MR_Word Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 21))));
    MR_Word Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 22))));
    MR_Word Var_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 23))));
    MR_Word Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 24))));
    MR_Word Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 25))));
    MR_Word Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 26))));
    MR_Word Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 27))));
    MR_Word Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 28))));
    MR_Word Var_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 29))));
    MR_Word Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 30))));
    MR_Word Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 31))));
    MR_Word Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 32))));
    MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 10)));

    {
      Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_10, 0) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(0), Var_10, 1) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_26));
      MR_hl_field(MR_mktag(0), Var_10, 3) = ((MR_Box) (Var_27));
      MR_hl_field(MR_mktag(0), Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_28));
      MR_hl_field(MR_mktag(0), Var_10, 5) = ((MR_Box) (Var_29));
      MR_hl_field(MR_mktag(0), Var_10, 6) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), Var_10, 7) = ((MR_Box) (Var_31));
      MR_hl_field(MR_mktag(0), Var_10, 8) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), Var_10, 9) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), Var_10, 10) = (MR_Box) (packed_word_3);
      MR_hl_field(MR_mktag(0), Var_10, 11) = ((MR_Box) (Var_38));
      MR_hl_field(MR_mktag(0), Var_10, 12) = ((MR_Box) (Var_39));
      MR_hl_field(MR_mktag(0), Var_10, 13) = ((MR_Box) (Var_40));
      MR_hl_field(MR_mktag(0), Var_10, 14) = ((MR_Box) (Var_41));
      MR_hl_field(MR_mktag(0), Var_10, 15) = ((MR_Box) (Var_42));
      MR_hl_field(MR_mktag(0), Var_10, 16) = ((MR_Box) (Var_43));
      MR_hl_field(MR_mktag(0), Var_10, 17) = ((MR_Box) (Var_44));
      MR_hl_field(MR_mktag(0), Var_10, 18) = ((MR_Box) (Var_45));
      MR_hl_field(MR_mktag(0), Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_46));
      MR_hl_field(MR_mktag(0), Var_10, 20) = ((MR_Box) (Var_47));
      MR_hl_field(MR_mktag(0), Var_10, 21) = ((MR_Box) (Var_48));
      MR_hl_field(MR_mktag(0), Var_10, 22) = ((MR_Box) (Var_49));
      MR_hl_field(MR_mktag(0), Var_10, 23) = ((MR_Box) (Var_50));
      MR_hl_field(MR_mktag(0), Var_10, 24) = ((MR_Box) (Var_51));
      MR_hl_field(MR_mktag(0), Var_10, 25) = ((MR_Box) (Var_52));
      MR_hl_field(MR_mktag(0), Var_10, 26) = ((MR_Box) (Var_53));
      MR_hl_field(MR_mktag(0), Var_10, 27) = ((MR_Box) (Var_54));
      MR_hl_field(MR_mktag(0), Var_10, 28) = ((MR_Box) (Var_55));
      MR_hl_field(MR_mktag(0), Var_10, 29) = ((MR_Box) (Var_56));
      MR_hl_field(MR_mktag(0), Var_10, 30) = ((MR_Box) (Var_57));
      MR_hl_field(MR_mktag(0), Var_10, 31) = ((MR_Box) (Var_58));
      MR_hl_field(MR_mktag(0), Var_10, 32) = ((MR_Box) (Var_59));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_21));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 13) = ((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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    MR_Word Var_10;
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_Word Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_21 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 0))));
    MR_Word Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 1))));
    MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 2))) & (MR_Integer) 1);
    MR_Word Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 3))));
    MR_Word Var_28 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 4))) & (MR_Integer) 3);
    MR_Word Var_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 5))));
    MR_Word Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 6))));
    MR_Word Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 7))));
    MR_Word Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 9))));
    MR_Word Var_38 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 11))));
    MR_Word Var_39 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 12))));
    MR_Word Var_40 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 13))));
    MR_Word Var_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 14))));
    MR_Word Var_42 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 15))));
    MR_Word Var_43 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 16))));
    MR_Word Var_44 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 17))));
    MR_Word Var_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 18))));
    MR_Word Var_46 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 19))) & (MR_Integer) 1);
    MR_Word Var_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 20))));
    MR_Word Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 21))));
    MR_Word Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 22))));
    MR_Word Var_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 23))));
    MR_Word Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 24))));
    MR_Word Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 25))));
    MR_Word Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 26))));
    MR_Word Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 27))));
    MR_Word Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 28))));
    MR_Word Var_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 29))));
    MR_Word Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 30))));
    MR_Word Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 31))));
    MR_Word Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 32))));
    MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 10)));

    {
      Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_10, 0) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(0), Var_10, 1) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_26));
      MR_hl_field(MR_mktag(0), Var_10, 3) = ((MR_Box) (Var_27));
      MR_hl_field(MR_mktag(0), Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_28));
      MR_hl_field(MR_mktag(0), Var_10, 5) = ((MR_Box) (Var_29));
      MR_hl_field(MR_mktag(0), Var_10, 6) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), Var_10, 7) = ((MR_Box) (Var_31));
      MR_hl_field(MR_mktag(0), Var_10, 8) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), Var_10, 9) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), Var_10, 10) = (MR_Box) (packed_word_3);
      MR_hl_field(MR_mktag(0), Var_10, 11) = ((MR_Box) (Var_38));
      MR_hl_field(MR_mktag(0), Var_10, 12) = ((MR_Box) (Var_39));
      MR_hl_field(MR_mktag(0), Var_10, 13) = ((MR_Box) (Var_40));
      MR_hl_field(MR_mktag(0), Var_10, 14) = ((MR_Box) (Var_41));
      MR_hl_field(MR_mktag(0), Var_10, 15) = ((MR_Box) (Var_42));
      MR_hl_field(MR_mktag(0), Var_10, 16) = ((MR_Box) (Var_43));
      MR_hl_field(MR_mktag(0), Var_10, 17) = ((MR_Box) (Var_44));
      MR_hl_field(MR_mktag(0), Var_10, 18) = ((MR_Box) (Var_45));
      MR_hl_field(MR_mktag(0), Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_46));
      MR_hl_field(MR_mktag(0), Var_10, 20) = ((MR_Box) (Var_47));
      MR_hl_field(MR_mktag(0), Var_10, 21) = ((MR_Box) (Var_48));
      MR_hl_field(MR_mktag(0), Var_10, 22) = ((MR_Box) (Var_49));
      MR_hl_field(MR_mktag(0), Var_10, 23) = ((MR_Box) (Var_50));
      MR_hl_field(MR_mktag(0), Var_10, 24) = ((MR_Box) (Var_51));
      MR_hl_field(MR_mktag(0), Var_10, 25) = ((MR_Box) (Var_52));
      MR_hl_field(MR_mktag(0), Var_10, 26) = ((MR_Box) (Var_53));
      MR_hl_field(MR_mktag(0), Var_10, 27) = ((MR_Box) (Var_54));
      MR_hl_field(MR_mktag(0), Var_10, 28) = ((MR_Box) (Var_55));
      MR_hl_field(MR_mktag(0), Var_10, 29) = ((MR_Box) (Var_56));
      MR_hl_field(MR_mktag(0), Var_10, 30) = ((MR_Box) (Var_57));
      MR_hl_field(MR_mktag(0), Var_10, 31) = ((MR_Box) (Var_58));
      MR_hl_field(MR_mktag(0), Var_10, 32) = ((MR_Box) (Var_59));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_21));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 13) = ((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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    MR_Word Var_10;
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_Word Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_21 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 0))));
    MR_Word Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 1))));
    MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 2))) & (MR_Integer) 1);
    MR_Word Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 3))));
    MR_Word Var_28 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 4))) & (MR_Integer) 3);
    MR_Word Var_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 5))));
    MR_Word Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 6))));
    MR_Word Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 8))));
    MR_Word Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 9))));
    MR_Word Var_38 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 11))));
    MR_Word Var_39 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 12))));
    MR_Word Var_40 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 13))));
    MR_Word Var_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 14))));
    MR_Word Var_42 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 15))));
    MR_Word Var_43 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 16))));
    MR_Word Var_44 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 17))));
    MR_Word Var_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 18))));
    MR_Word Var_46 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 19))) & (MR_Integer) 1);
    MR_Word Var_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 20))));
    MR_Word Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 21))));
    MR_Word Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 22))));
    MR_Word Var_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 23))));
    MR_Word Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 24))));
    MR_Word Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 25))));
    MR_Word Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 26))));
    MR_Word Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 27))));
    MR_Word Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 28))));
    MR_Word Var_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 29))));
    MR_Word Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 30))));
    MR_Word Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 31))));
    MR_Word Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 32))));
    MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 10)));

    {
      Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_10, 0) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(0), Var_10, 1) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_26));
      MR_hl_field(MR_mktag(0), Var_10, 3) = ((MR_Box) (Var_27));
      MR_hl_field(MR_mktag(0), Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_28));
      MR_hl_field(MR_mktag(0), Var_10, 5) = ((MR_Box) (Var_29));
      MR_hl_field(MR_mktag(0), Var_10, 6) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), Var_10, 7) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), Var_10, 8) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), Var_10, 9) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), Var_10, 10) = (MR_Box) (packed_word_3);
      MR_hl_field(MR_mktag(0), Var_10, 11) = ((MR_Box) (Var_38));
      MR_hl_field(MR_mktag(0), Var_10, 12) = ((MR_Box) (Var_39));
      MR_hl_field(MR_mktag(0), Var_10, 13) = ((MR_Box) (Var_40));
      MR_hl_field(MR_mktag(0), Var_10, 14) = ((MR_Box) (Var_41));
      MR_hl_field(MR_mktag(0), Var_10, 15) = ((MR_Box) (Var_42));
      MR_hl_field(MR_mktag(0), Var_10, 16) = ((MR_Box) (Var_43));
      MR_hl_field(MR_mktag(0), Var_10, 17) = ((MR_Box) (Var_44));
      MR_hl_field(MR_mktag(0), Var_10, 18) = ((MR_Box) (Var_45));
      MR_hl_field(MR_mktag(0), Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_46));
      MR_hl_field(MR_mktag(0), Var_10, 20) = ((MR_Box) (Var_47));
      MR_hl_field(MR_mktag(0), Var_10, 21) = ((MR_Box) (Var_48));
      MR_hl_field(MR_mktag(0), Var_10, 22) = ((MR_Box) (Var_49));
      MR_hl_field(MR_mktag(0), Var_10, 23) = ((MR_Box) (Var_50));
      MR_hl_field(MR_mktag(0), Var_10, 24) = ((MR_Box) (Var_51));
      MR_hl_field(MR_mktag(0), Var_10, 25) = ((MR_Box) (Var_52));
      MR_hl_field(MR_mktag(0), Var_10, 26) = ((MR_Box) (Var_53));
      MR_hl_field(MR_mktag(0), Var_10, 27) = ((MR_Box) (Var_54));
      MR_hl_field(MR_mktag(0), Var_10, 28) = ((MR_Box) (Var_55));
      MR_hl_field(MR_mktag(0), Var_10, 29) = ((MR_Box) (Var_56));
      MR_hl_field(MR_mktag(0), Var_10, 30) = ((MR_Box) (Var_57));
      MR_hl_field(MR_mktag(0), Var_10, 31) = ((MR_Box) (Var_58));
      MR_hl_field(MR_mktag(0), Var_10, 32) = ((MR_Box) (Var_59));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_21));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 13) = ((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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    MR_Word Var_10;
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_Word Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_21 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 0))));
    MR_Word Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 1))));
    MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 2))) & (MR_Integer) 1);
    MR_Word Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 3))));
    MR_Word Var_28 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 4))) & (MR_Integer) 3);
    MR_Word Var_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 5))));
    MR_Word Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 7))));
    MR_Word Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 8))));
    MR_Word Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 9))));
    MR_Word Var_38 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 11))));
    MR_Word Var_39 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 12))));
    MR_Word Var_40 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 13))));
    MR_Word Var_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 14))));
    MR_Word Var_42 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 15))));
    MR_Word Var_43 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 16))));
    MR_Word Var_44 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 17))));
    MR_Word Var_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 18))));
    MR_Word Var_46 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 19))) & (MR_Integer) 1);
    MR_Word Var_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 20))));
    MR_Word Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 21))));
    MR_Word Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 22))));
    MR_Word Var_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 23))));
    MR_Word Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 24))));
    MR_Word Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 25))));
    MR_Word Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 26))));
    MR_Word Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 27))));
    MR_Word Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 28))));
    MR_Word Var_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 29))));
    MR_Word Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 30))));
    MR_Word Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 31))));
    MR_Word Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 32))));
    MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 10)));

    {
      Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_10, 0) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(0), Var_10, 1) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_26));
      MR_hl_field(MR_mktag(0), Var_10, 3) = ((MR_Box) (Var_27));
      MR_hl_field(MR_mktag(0), Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_28));
      MR_hl_field(MR_mktag(0), Var_10, 5) = ((MR_Box) (Var_29));
      MR_hl_field(MR_mktag(0), Var_10, 6) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), Var_10, 7) = ((MR_Box) (Var_31));
      MR_hl_field(MR_mktag(0), Var_10, 8) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), Var_10, 9) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), Var_10, 10) = (MR_Box) (packed_word_3);
      MR_hl_field(MR_mktag(0), Var_10, 11) = ((MR_Box) (Var_38));
      MR_hl_field(MR_mktag(0), Var_10, 12) = ((MR_Box) (Var_39));
      MR_hl_field(MR_mktag(0), Var_10, 13) = ((MR_Box) (Var_40));
      MR_hl_field(MR_mktag(0), Var_10, 14) = ((MR_Box) (Var_41));
      MR_hl_field(MR_mktag(0), Var_10, 15) = ((MR_Box) (Var_42));
      MR_hl_field(MR_mktag(0), Var_10, 16) = ((MR_Box) (Var_43));
      MR_hl_field(MR_mktag(0), Var_10, 17) = ((MR_Box) (Var_44));
      MR_hl_field(MR_mktag(0), Var_10, 18) = ((MR_Box) (Var_45));
      MR_hl_field(MR_mktag(0), Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_46));
      MR_hl_field(MR_mktag(0), Var_10, 20) = ((MR_Box) (Var_47));
      MR_hl_field(MR_mktag(0), Var_10, 21) = ((MR_Box) (Var_48));
      MR_hl_field(MR_mktag(0), Var_10, 22) = ((MR_Box) (Var_49));
      MR_hl_field(MR_mktag(0), Var_10, 23) = ((MR_Box) (Var_50));
      MR_hl_field(MR_mktag(0), Var_10, 24) = ((MR_Box) (Var_51));
      MR_hl_field(MR_mktag(0), Var_10, 25) = ((MR_Box) (Var_52));
      MR_hl_field(MR_mktag(0), Var_10, 26) = ((MR_Box) (Var_53));
      MR_hl_field(MR_mktag(0), Var_10, 27) = ((MR_Box) (Var_54));
      MR_hl_field(MR_mktag(0), Var_10, 28) = ((MR_Box) (Var_55));
      MR_hl_field(MR_mktag(0), Var_10, 29) = ((MR_Box) (Var_56));
      MR_hl_field(MR_mktag(0), Var_10, 30) = ((MR_Box) (Var_57));
      MR_hl_field(MR_mktag(0), Var_10, 31) = ((MR_Box) (Var_58));
      MR_hl_field(MR_mktag(0), Var_10, 32) = ((MR_Box) (Var_59));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_21));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 13) = ((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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    MR_Word Var_10;
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_Word Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_21 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 0))));
    MR_Word Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 1))));
    MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 2))) & (MR_Integer) 1);
    MR_Word Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 3))));
    MR_Word Var_28 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 4))) & (MR_Integer) 3);
    MR_Word Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 6))));
    MR_Word Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 7))));
    MR_Word Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 8))));
    MR_Word Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 9))));
    MR_Word Var_38 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 11))));
    MR_Word Var_39 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 12))));
    MR_Word Var_40 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 13))));
    MR_Word Var_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 14))));
    MR_Word Var_42 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 15))));
    MR_Word Var_43 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 16))));
    MR_Word Var_44 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 17))));
    MR_Word Var_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 18))));
    MR_Word Var_46 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 19))) & (MR_Integer) 1);
    MR_Word Var_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 20))));
    MR_Word Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 21))));
    MR_Word Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 22))));
    MR_Word Var_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 23))));
    MR_Word Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 24))));
    MR_Word Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 25))));
    MR_Word Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 26))));
    MR_Word Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 27))));
    MR_Word Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 28))));
    MR_Word Var_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 29))));
    MR_Word Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 30))));
    MR_Word Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 31))));
    MR_Word Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 32))));
    MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 10)));

    {
      Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_10, 0) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(0), Var_10, 1) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_26));
      MR_hl_field(MR_mktag(0), Var_10, 3) = ((MR_Box) (Var_27));
      MR_hl_field(MR_mktag(0), Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_28));
      MR_hl_field(MR_mktag(0), Var_10, 5) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), Var_10, 6) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), Var_10, 7) = ((MR_Box) (Var_31));
      MR_hl_field(MR_mktag(0), Var_10, 8) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), Var_10, 9) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), Var_10, 10) = (MR_Box) (packed_word_3);
      MR_hl_field(MR_mktag(0), Var_10, 11) = ((MR_Box) (Var_38));
      MR_hl_field(MR_mktag(0), Var_10, 12) = ((MR_Box) (Var_39));
      MR_hl_field(MR_mktag(0), Var_10, 13) = ((MR_Box) (Var_40));
      MR_hl_field(MR_mktag(0), Var_10, 14) = ((MR_Box) (Var_41));
      MR_hl_field(MR_mktag(0), Var_10, 15) = ((MR_Box) (Var_42));
      MR_hl_field(MR_mktag(0), Var_10, 16) = ((MR_Box) (Var_43));
      MR_hl_field(MR_mktag(0), Var_10, 17) = ((MR_Box) (Var_44));
      MR_hl_field(MR_mktag(0), Var_10, 18) = ((MR_Box) (Var_45));
      MR_hl_field(MR_mktag(0), Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_46));
      MR_hl_field(MR_mktag(0), Var_10, 20) = ((MR_Box) (Var_47));
      MR_hl_field(MR_mktag(0), Var_10, 21) = ((MR_Box) (Var_48));
      MR_hl_field(MR_mktag(0), Var_10, 22) = ((MR_Box) (Var_49));
      MR_hl_field(MR_mktag(0), Var_10, 23) = ((MR_Box) (Var_50));
      MR_hl_field(MR_mktag(0), Var_10, 24) = ((MR_Box) (Var_51));
      MR_hl_field(MR_mktag(0), Var_10, 25) = ((MR_Box) (Var_52));
      MR_hl_field(MR_mktag(0), Var_10, 26) = ((MR_Box) (Var_53));
      MR_hl_field(MR_mktag(0), Var_10, 27) = ((MR_Box) (Var_54));
      MR_hl_field(MR_mktag(0), Var_10, 28) = ((MR_Box) (Var_55));
      MR_hl_field(MR_mktag(0), Var_10, 29) = ((MR_Box) (Var_56));
      MR_hl_field(MR_mktag(0), Var_10, 30) = ((MR_Box) (Var_57));
      MR_hl_field(MR_mktag(0), Var_10, 31) = ((MR_Box) (Var_58));
      MR_hl_field(MR_mktag(0), Var_10, 32) = ((MR_Box) (Var_59));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_21));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 13) = ((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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    MR_Word Var_10;
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_Word Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_21 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 0))));
    MR_Word Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 1))));
    MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 2))) & (MR_Integer) 1);
    MR_Word Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 3))));
    MR_Word Var_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 5))));
    MR_Word Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 6))));
    MR_Word Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 7))));
    MR_Word Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 8))));
    MR_Word Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 9))));
    MR_Word Var_38 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 11))));
    MR_Word Var_39 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 12))));
    MR_Word Var_40 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 13))));
    MR_Word Var_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 14))));
    MR_Word Var_42 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 15))));
    MR_Word Var_43 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 16))));
    MR_Word Var_44 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 17))));
    MR_Word Var_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 18))));
    MR_Word Var_46 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 19))) & (MR_Integer) 1);
    MR_Word Var_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 20))));
    MR_Word Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 21))));
    MR_Word Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 22))));
    MR_Word Var_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 23))));
    MR_Word Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 24))));
    MR_Word Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 25))));
    MR_Word Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 26))));
    MR_Word Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 27))));
    MR_Word Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 28))));
    MR_Word Var_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 29))));
    MR_Word Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 30))));
    MR_Word Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 31))));
    MR_Word Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 32))));
    MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 10)));

    {
      Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_10, 0) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(0), Var_10, 1) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_26));
      MR_hl_field(MR_mktag(0), Var_10, 3) = ((MR_Box) (Var_27));
      MR_hl_field(MR_mktag(0), Var_10, 4) = (MR_Box) ((MR_Unsigned) (X_4));
      MR_hl_field(MR_mktag(0), Var_10, 5) = ((MR_Box) (Var_29));
      MR_hl_field(MR_mktag(0), Var_10, 6) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), Var_10, 7) = ((MR_Box) (Var_31));
      MR_hl_field(MR_mktag(0), Var_10, 8) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), Var_10, 9) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), Var_10, 10) = (MR_Box) (packed_word_3);
      MR_hl_field(MR_mktag(0), Var_10, 11) = ((MR_Box) (Var_38));
      MR_hl_field(MR_mktag(0), Var_10, 12) = ((MR_Box) (Var_39));
      MR_hl_field(MR_mktag(0), Var_10, 13) = ((MR_Box) (Var_40));
      MR_hl_field(MR_mktag(0), Var_10, 14) = ((MR_Box) (Var_41));
      MR_hl_field(MR_mktag(0), Var_10, 15) = ((MR_Box) (Var_42));
      MR_hl_field(MR_mktag(0), Var_10, 16) = ((MR_Box) (Var_43));
      MR_hl_field(MR_mktag(0), Var_10, 17) = ((MR_Box) (Var_44));
      MR_hl_field(MR_mktag(0), Var_10, 18) = ((MR_Box) (Var_45));
      MR_hl_field(MR_mktag(0), Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_46));
      MR_hl_field(MR_mktag(0), Var_10, 20) = ((MR_Box) (Var_47));
      MR_hl_field(MR_mktag(0), Var_10, 21) = ((MR_Box) (Var_48));
      MR_hl_field(MR_mktag(0), Var_10, 22) = ((MR_Box) (Var_49));
      MR_hl_field(MR_mktag(0), Var_10, 23) = ((MR_Box) (Var_50));
      MR_hl_field(MR_mktag(0), Var_10, 24) = ((MR_Box) (Var_51));
      MR_hl_field(MR_mktag(0), Var_10, 25) = ((MR_Box) (Var_52));
      MR_hl_field(MR_mktag(0), Var_10, 26) = ((MR_Box) (Var_53));
      MR_hl_field(MR_mktag(0), Var_10, 27) = ((MR_Box) (Var_54));
      MR_hl_field(MR_mktag(0), Var_10, 28) = ((MR_Box) (Var_55));
      MR_hl_field(MR_mktag(0), Var_10, 29) = ((MR_Box) (Var_56));
      MR_hl_field(MR_mktag(0), Var_10, 30) = ((MR_Box) (Var_57));
      MR_hl_field(MR_mktag(0), Var_10, 31) = ((MR_Box) (Var_58));
      MR_hl_field(MR_mktag(0), Var_10, 32) = ((MR_Box) (Var_59));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_21));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 13) = ((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_26;
    MR_Word Var_27;
    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_Word Var_60;
    MR_Unsigned packed_word_3;

    {
      Var_9 = (MR_Word) MR_mkword(MR_mktag(1), MR_new_object(MR_Word, (1 * sizeof(MR_Word)), NULL, NULL));
      MR_hl_field(MR_mktag(1), Var_9, 0) = ((MR_Box) (X_4));
    }
    Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))));
    Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    Var_21 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    Var_22 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    Var_10 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 0))));
    Var_26 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 1))));
    Var_27 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 2))) & (MR_Integer) 1);
    Var_29 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 4))) & (MR_Integer) 3);
    Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 5))));
    Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 6))));
    Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 7))));
    Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 8))));
    Var_34 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 9))));
    packed_word_3 = (MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 10)));
    Var_39 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 11))));
    Var_40 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 12))));
    Var_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 13))));
    Var_42 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 14))));
    Var_43 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 15))));
    Var_44 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 16))));
    Var_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 17))));
    Var_46 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 18))));
    Var_47 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 19))) & (MR_Integer) 1);
    Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 20))));
    Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 21))));
    Var_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 22))));
    Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 23))));
    Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 24))));
    Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 25))));
    Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 26))));
    Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 27))));
    Var_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 28))));
    Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 29))));
    Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 30))));
    Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 31))));
    Var_60 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_10, (MR_Integer) 32))));
    {
      Var_11 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_11, 0) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), Var_11, 1) = ((MR_Box) (Var_26));
      MR_hl_field(MR_mktag(0), Var_11, 2) = (MR_Box) ((MR_Unsigned) (Var_27));
      MR_hl_field(MR_mktag(0), Var_11, 3) = ((MR_Box) (Var_9));
      MR_hl_field(MR_mktag(0), Var_11, 4) = (MR_Box) ((MR_Unsigned) (Var_29));
      MR_hl_field(MR_mktag(0), Var_11, 5) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), Var_11, 6) = ((MR_Box) (Var_31));
      MR_hl_field(MR_mktag(0), Var_11, 7) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), Var_11, 8) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), Var_11, 9) = ((MR_Box) (Var_34));
      MR_hl_field(MR_mktag(0), Var_11, 10) = (MR_Box) (packed_word_3);
      MR_hl_field(MR_mktag(0), Var_11, 11) = ((MR_Box) (Var_39));
      MR_hl_field(MR_mktag(0), Var_11, 12) = ((MR_Box) (Var_40));
      MR_hl_field(MR_mktag(0), Var_11, 13) = ((MR_Box) (Var_41));
      MR_hl_field(MR_mktag(0), Var_11, 14) = ((MR_Box) (Var_42));
      MR_hl_field(MR_mktag(0), Var_11, 15) = ((MR_Box) (Var_43));
      MR_hl_field(MR_mktag(0), Var_11, 16) = ((MR_Box) (Var_44));
      MR_hl_field(MR_mktag(0), Var_11, 17) = ((MR_Box) (Var_45));
      MR_hl_field(MR_mktag(0), Var_11, 18) = ((MR_Box) (Var_46));
      MR_hl_field(MR_mktag(0), Var_11, 19) = (MR_Box) ((MR_Unsigned) (Var_47));
      MR_hl_field(MR_mktag(0), Var_11, 20) = ((MR_Box) (Var_48));
      MR_hl_field(MR_mktag(0), Var_11, 21) = ((MR_Box) (Var_49));
      MR_hl_field(MR_mktag(0), Var_11, 22) = ((MR_Box) (Var_50));
      MR_hl_field(MR_mktag(0), Var_11, 23) = ((MR_Box) (Var_51));
      MR_hl_field(MR_mktag(0), Var_11, 24) = ((MR_Box) (Var_52));
      MR_hl_field(MR_mktag(0), Var_11, 25) = ((MR_Box) (Var_53));
      MR_hl_field(MR_mktag(0), Var_11, 26) = ((MR_Box) (Var_54));
      MR_hl_field(MR_mktag(0), Var_11, 27) = ((MR_Box) (Var_55));
      MR_hl_field(MR_mktag(0), Var_11, 28) = ((MR_Box) (Var_56));
      MR_hl_field(MR_mktag(0), Var_11, 29) = ((MR_Box) (Var_57));
      MR_hl_field(MR_mktag(0), Var_11, 30) = ((MR_Box) (Var_58));
      MR_hl_field(MR_mktag(0), Var_11, 31) = ((MR_Box) (Var_59));
      MR_hl_field(MR_mktag(0), Var_11, 32) = ((MR_Box) (Var_60));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_21));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_22));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(0), base, 13) = ((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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    MR_Word Var_10;
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_Word Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_21 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 0))));
    MR_Word Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 1))));
    MR_Word Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 3))));
    MR_Word Var_28 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 4))) & (MR_Integer) 3);
    MR_Word Var_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 5))));
    MR_Word Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 6))));
    MR_Word Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 7))));
    MR_Word Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 8))));
    MR_Word Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 9))));
    MR_Word Var_38 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 11))));
    MR_Word Var_39 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 12))));
    MR_Word Var_40 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 13))));
    MR_Word Var_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 14))));
    MR_Word Var_42 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 15))));
    MR_Word Var_43 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 16))));
    MR_Word Var_44 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 17))));
    MR_Word Var_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 18))));
    MR_Word Var_46 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 19))) & (MR_Integer) 1);
    MR_Word Var_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 20))));
    MR_Word Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 21))));
    MR_Word Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 22))));
    MR_Word Var_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 23))));
    MR_Word Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 24))));
    MR_Word Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 25))));
    MR_Word Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 26))));
    MR_Word Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 27))));
    MR_Word Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 28))));
    MR_Word Var_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 29))));
    MR_Word Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 30))));
    MR_Word Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 31))));
    MR_Word Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 32))));
    MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 10)));

    {
      Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_10, 0) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(0), Var_10, 1) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), Var_10, 2) = (MR_Box) ((MR_Unsigned) (X_4));
      MR_hl_field(MR_mktag(0), Var_10, 3) = ((MR_Box) (Var_27));
      MR_hl_field(MR_mktag(0), Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_28));
      MR_hl_field(MR_mktag(0), Var_10, 5) = ((MR_Box) (Var_29));
      MR_hl_field(MR_mktag(0), Var_10, 6) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), Var_10, 7) = ((MR_Box) (Var_31));
      MR_hl_field(MR_mktag(0), Var_10, 8) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), Var_10, 9) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), Var_10, 10) = (MR_Box) (packed_word_3);
      MR_hl_field(MR_mktag(0), Var_10, 11) = ((MR_Box) (Var_38));
      MR_hl_field(MR_mktag(0), Var_10, 12) = ((MR_Box) (Var_39));
      MR_hl_field(MR_mktag(0), Var_10, 13) = ((MR_Box) (Var_40));
      MR_hl_field(MR_mktag(0), Var_10, 14) = ((MR_Box) (Var_41));
      MR_hl_field(MR_mktag(0), Var_10, 15) = ((MR_Box) (Var_42));
      MR_hl_field(MR_mktag(0), Var_10, 16) = ((MR_Box) (Var_43));
      MR_hl_field(MR_mktag(0), Var_10, 17) = ((MR_Box) (Var_44));
      MR_hl_field(MR_mktag(0), Var_10, 18) = ((MR_Box) (Var_45));
      MR_hl_field(MR_mktag(0), Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_46));
      MR_hl_field(MR_mktag(0), Var_10, 20) = ((MR_Box) (Var_47));
      MR_hl_field(MR_mktag(0), Var_10, 21) = ((MR_Box) (Var_48));
      MR_hl_field(MR_mktag(0), Var_10, 22) = ((MR_Box) (Var_49));
      MR_hl_field(MR_mktag(0), Var_10, 23) = ((MR_Box) (Var_50));
      MR_hl_field(MR_mktag(0), Var_10, 24) = ((MR_Box) (Var_51));
      MR_hl_field(MR_mktag(0), Var_10, 25) = ((MR_Box) (Var_52));
      MR_hl_field(MR_mktag(0), Var_10, 26) = ((MR_Box) (Var_53));
      MR_hl_field(MR_mktag(0), Var_10, 27) = ((MR_Box) (Var_54));
      MR_hl_field(MR_mktag(0), Var_10, 28) = ((MR_Box) (Var_55));
      MR_hl_field(MR_mktag(0), Var_10, 29) = ((MR_Box) (Var_56));
      MR_hl_field(MR_mktag(0), Var_10, 30) = ((MR_Box) (Var_57));
      MR_hl_field(MR_mktag(0), Var_10, 31) = ((MR_Box) (Var_58));
      MR_hl_field(MR_mktag(0), Var_10, 32) = ((MR_Box) (Var_59));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_21));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Var_10));
    }
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_mode_errors_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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_Word Var_10 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))));
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_19 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));

    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_9));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_10));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_19));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Var_22));
    }
  }
}

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_9 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_Word Var_10 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))));
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_19 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    MR_Word Var_21 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));

    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_9));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_10));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_19));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_21));
      MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Var_22));
    }
  }
}

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_9 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_Word Var_10 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))));
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_21 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));

    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_9));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_10));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (X_4));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_21));
      MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Var_22));
    }
  }
}

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_9 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_Word Var_10 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))));
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_19 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_21 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));

    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_9));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_10));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_19));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_21));
      MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Var_22));
    }
  }
}

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_9 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_Word Var_10 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))));
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_19 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_21 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));

    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_9));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_10));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_19));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_21));
      MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Var_22));
    }
  }
}

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_9 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_Word Var_10 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))));
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_19 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_21 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));

    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_9));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_10));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_19));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_21));
      MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Var_22));
    }
  }
}

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_9 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_Word Var_10 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))));
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_19 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_21 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));

    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_9));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_10));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_19));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_21));
      MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Var_22));
    }
  }
}

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_9 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_Word Var_10 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_19 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_21 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));

    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_9));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_10));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_19));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_21));
      MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Var_22));
    }
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_vartypes_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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_Word Var_10 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_19 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_21 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));

    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_9));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_10));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_19));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_21));
      MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Var_22));
    }
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_varset_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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_Word Var_10 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Word Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))));
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_19 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_21 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));

    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_9));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_10));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_19));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_21));
      MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Var_22));
    }
  }
}

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_9 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))));
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_19 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_21 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));

    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_9));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_19));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_21));
      MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Var_22));
    }
  }
}

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_10 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))));
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_19 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_21 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));

    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_10));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_19));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_21));
      MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Var_22));
    }
  }
}

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(MR_mktag(0), PI_3, (MR_Integer) 13))));

    *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_5, (MR_Integer) 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(MR_mktag(0), PI_3, (MR_Integer) 13))));

    *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_5, (MR_Integer) 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(MR_mktag(0), PI_3, (MR_Integer) 13))));

    *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_5, (MR_Integer) 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(MR_mktag(0), PI_3, (MR_Integer) 13))));

    *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_5, (MR_Integer) 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(MR_mktag(0), PI_3, (MR_Integer) 13))));

    *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_5, (MR_Integer) 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(MR_mktag(0), PI_3, (MR_Integer) 13))));

    *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_5, (MR_Integer) 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(MR_mktag(0), PI_3, (MR_Integer) 13))));

    *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_5, (MR_Integer) 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(MR_mktag(0), PI_3, (MR_Integer) 13))));

    *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_5, (MR_Integer) 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(MR_mktag(0), PI_3, (MR_Integer) 13))));

    *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_5, (MR_Integer) 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(MR_mktag(0), PI_3, (MR_Integer) 13))));

    *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_5, (MR_Integer) 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(MR_mktag(0), PI_3, (MR_Integer) 13))));

    *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_5, (MR_Integer) 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(MR_mktag(0), PI_3, (MR_Integer) 13))));

    *X_4 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_5, (MR_Integer) 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(MR_mktag(0), PI_3, (MR_Integer) 13))));

    *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_5, (MR_Integer) 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(MR_mktag(0), PI_3, (MR_Integer) 13))));

    *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_5, (MR_Integer) 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(MR_mktag(0), PI_3, (MR_Integer) 13))));

    *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_5, (MR_Integer) 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(MR_mktag(0), PI_3, (MR_Integer) 13))));

    *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_5, (MR_Integer) 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(MR_mktag(0), PI_3, (MR_Integer) 13))));

    *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_5, (MR_Integer) 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(MR_mktag(0), PI_3, (MR_Integer) 13))));

    *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_5, (MR_Integer) 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(MR_mktag(0), PI_3, (MR_Integer) 13))));

    *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_5, (MR_Integer) 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(MR_mktag(0), PI_3, (MR_Integer) 13))));

    *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_5, (MR_Integer) 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(MR_mktag(0), PI_3, (MR_Integer) 13))));

    *X_4 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_5, (MR_Integer) 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(MR_mktag(0), PI_3, (MR_Integer) 13))));

    *X_4 = ((((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_5, (MR_Integer) 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(MR_mktag(0), PI_3, (MR_Integer) 13))));

    *X_4 = ((((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_5, (MR_Integer) 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(MR_mktag(0), PI_3, (MR_Integer) 13))));

    *X_4 = ((((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_5, (MR_Integer) 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(MR_mktag(0), PI_3, (MR_Integer) 13))));

    *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_5, (MR_Integer) 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(MR_mktag(0), PI_3, (MR_Integer) 13))));

    *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_5, (MR_Integer) 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(MR_mktag(0), PI_3, (MR_Integer) 13))));

    *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_5, (MR_Integer) 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(MR_mktag(0), PI_3, (MR_Integer) 13))));

    *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_5, (MR_Integer) 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(MR_mktag(0), PI_3, (MR_Integer) 13))));

    *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_5, (MR_Integer) 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(MR_mktag(0), PI_3, (MR_Integer) 13))));

    *X_4 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_5, (MR_Integer) 4))) & (MR_Integer) 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(MR_mktag(0), PI_3, (MR_Integer) 13))));

    *X_4 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_5, (MR_Integer) 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(MR_mktag(0), PI_3, (MR_Integer) 13))));

    *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_5, (MR_Integer) 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(MR_mktag(0), PI_3, (MR_Integer) 13))));

    *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_5, (MR_Integer) 0))));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_mode_errors_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PI_3, (MR_Integer) 12))));
}

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(MR_mktag(0), PI_3, (MR_Integer) 11))));
}

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(MR_mktag(0), PI_3, (MR_Integer) 10))) & (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(MR_mktag(0), PI_3, (MR_Integer) 9))));
}

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(MR_mktag(0), PI_3, (MR_Integer) 8))));
}

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(MR_mktag(0), PI_3, (MR_Integer) 7))));
}

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(MR_mktag(0), PI_3, (MR_Integer) 6))));
}

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(MR_mktag(0), PI_3, (MR_Integer) 5))));
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_varset_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PI_3, (MR_Integer) 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(MR_mktag(0), PI_3, (MR_Integer) 1))));
}

void MR_CALL 
hlds__hlds_pred__proc_info_set_body_7_p_0(
  MR_Word VarSet_8,
  MR_Word VarTypes_9,
  MR_Word HeadVars_10,
  MR_Word Goal_11,
  MR_Word RttiVarMaps_12,
  MR_Word STATE_VARIABLE_ProcInfo_0_14,
  MR_Word * STATE_VARIABLE_ProcInfo_15)
{
  {
    MR_Word Var_26 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_14, (MR_Integer) 5))));
    MR_Word Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_14, (MR_Integer) 6))));
    MR_Word Var_28 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_14, (MR_Integer) 7))));
    MR_Word Var_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_14, (MR_Integer) 8))));
    MR_Word Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_14, (MR_Integer) 9))));
    MR_Word Var_31 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_14, (MR_Integer) 10))) & (MR_Integer) 7);
    MR_Word Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_14, (MR_Integer) 11))));
    MR_Word Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_14, (MR_Integer) 12))));
    MR_Word Var_34 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_ProcInfo_0_14, (MR_Integer) 13))));

    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_ProcInfo_15 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (HeadVars_10));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Goal_11));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (VarSet_8));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (VarTypes_9));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (RttiVarMaps_12));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_26));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_27));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_28));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_29));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_31));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Var_34));
    }
  }
}

void MR_CALL 
hlds__hlds_pred__proc_create_50_p_0(
  MR_Word HeadVars_51,
  MR_Word Goal_52,
  MR_Word VarSet_53,
  MR_Word VarTypes_54,
  MR_Word RttiVarMaps_55,
  MR_Word InstVarSet_56,
  MR_Word DeclaredModes_57,
  MR_Word Modes_58,
  MR_Word MaybeArgLives_59,
  MR_Word MaybeDeclaredDetism_60,
  MR_Word Detism_61,
  MR_Word EvalMethod_62,
  MR_Word ModeErrors_63,
  MR_Word MainContext_64,
  MR_Word ItemNumber_65,
  MR_Word CanProcess_66,
  MR_Word MaybeHeadModesConstr_67,
  MR_Word DetismDecl_68,
  MR_Word CseNopullContexts_69,
  MR_Word MaybeUntupleInfo_70,
  MR_Word VarNameRemap_71,
  MR_Word StateVarWarnings_72,
  MR_Word DeletedCallees_73,
  MR_Word IsAddressTaken_74,
  MR_Word HasForeignProcExports_75,
  MR_Word HasParallelConj_76,
  MR_Word HasUserEvent_77,
  MR_Word HasTailCallEvent_78,
  MR_Word OisuKinds_79,
  MR_Word MaybeRequireTailRecursion_80,
  MR_Word RegR_HeadVars_81,
  MR_Word MaybeArgPassInfo_82,
  MR_Word MaybeSpecialReturn_83,
  MR_Word InitialLiveness_84,
  MR_Word StackSlots_85,
  MR_Word NeedsMaxfrSlot_86,
  MR_Word MaybeCallTableTip_87,
  MR_Word MaybeTableIOInfo_88,
  MR_Word MaybeTableAttrs_89,
  MR_Word MaybeObsoleteInFavourOf_90,
  MR_Word MaybeDeepProfProcInfo_91,
  MR_Word MaybeArgSizes_92,
  MR_Word MaybeTermInfo_93,
  MR_Word Term2Info_94,
  MR_Word MaybeExceptionInfo_95,
  MR_Word MaybeTrailingInfo_96,
  MR_Word MaybeMMTablingInfo_97,
  MR_Word SharingInfo_98,
  MR_Word ReuseInfo_99,
  MR_Word * ProcInfo_100)
{
  {
    MR_Word ProcSubInfo_101;

    {
      ProcSubInfo_101 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), ProcSubInfo_101, 0) = ((MR_Box) (MainContext_64));
      MR_hl_field(MR_mktag(0), ProcSubInfo_101, 1) = ((MR_Box) (ItemNumber_65));
      MR_hl_field(MR_mktag(0), ProcSubInfo_101, 2) = (MR_Box) ((MR_Unsigned) (CanProcess_66));
      MR_hl_field(MR_mktag(0), ProcSubInfo_101, 3) = ((MR_Box) (MaybeHeadModesConstr_67));
      MR_hl_field(MR_mktag(0), ProcSubInfo_101, 4) = (MR_Box) ((MR_Unsigned) (DetismDecl_68));
      MR_hl_field(MR_mktag(0), ProcSubInfo_101, 5) = ((MR_Box) (CseNopullContexts_69));
      MR_hl_field(MR_mktag(0), ProcSubInfo_101, 6) = ((MR_Box) (MaybeUntupleInfo_70));
      MR_hl_field(MR_mktag(0), ProcSubInfo_101, 7) = ((MR_Box) (VarNameRemap_71));
      MR_hl_field(MR_mktag(0), ProcSubInfo_101, 8) = ((MR_Box) (StateVarWarnings_72));
      MR_hl_field(MR_mktag(0), ProcSubInfo_101, 9) = ((MR_Box) (DeletedCallees_73));
      MR_hl_field(MR_mktag(0), ProcSubInfo_101, 10) = (MR_Box) (((((MR_Unsigned) (IsAddressTaken_74) << 3)) | (((((MR_Unsigned) (HasForeignProcExports_75) << 2)) | (((((MR_Unsigned) (HasParallelConj_76) << 1)) | (MR_Unsigned) (HasUserEvent_77)))))));
      MR_hl_field(MR_mktag(0), ProcSubInfo_101, 11) = ((MR_Box) (HasTailCallEvent_78));
      MR_hl_field(MR_mktag(0), ProcSubInfo_101, 12) = ((MR_Box) (OisuKinds_79));
      MR_hl_field(MR_mktag(0), ProcSubInfo_101, 13) = ((MR_Box) (MaybeRequireTailRecursion_80));
      MR_hl_field(MR_mktag(0), ProcSubInfo_101, 14) = ((MR_Box) (RegR_HeadVars_81));
      MR_hl_field(MR_mktag(0), ProcSubInfo_101, 15) = ((MR_Box) (MaybeArgPassInfo_82));
      MR_hl_field(MR_mktag(0), ProcSubInfo_101, 16) = ((MR_Box) (MaybeSpecialReturn_83));
      MR_hl_field(MR_mktag(0), ProcSubInfo_101, 17) = ((MR_Box) (InitialLiveness_84));
      MR_hl_field(MR_mktag(0), ProcSubInfo_101, 18) = ((MR_Box) (StackSlots_85));
      MR_hl_field(MR_mktag(0), ProcSubInfo_101, 19) = (MR_Box) ((MR_Unsigned) (NeedsMaxfrSlot_86));
      MR_hl_field(MR_mktag(0), ProcSubInfo_101, 20) = ((MR_Box) (MaybeCallTableTip_87));
      MR_hl_field(MR_mktag(0), ProcSubInfo_101, 21) = ((MR_Box) (MaybeTableIOInfo_88));
      MR_hl_field(MR_mktag(0), ProcSubInfo_101, 22) = ((MR_Box) (MaybeTableAttrs_89));
      MR_hl_field(MR_mktag(0), ProcSubInfo_101, 23) = ((MR_Box) (MaybeObsoleteInFavourOf_90));
      MR_hl_field(MR_mktag(0), ProcSubInfo_101, 24) = ((MR_Box) (MaybeDeepProfProcInfo_91));
      MR_hl_field(MR_mktag(0), ProcSubInfo_101, 25) = ((MR_Box) (MaybeArgSizes_92));
      MR_hl_field(MR_mktag(0), ProcSubInfo_101, 26) = ((MR_Box) (MaybeTermInfo_93));
      MR_hl_field(MR_mktag(0), ProcSubInfo_101, 27) = ((MR_Box) (Term2Info_94));
      MR_hl_field(MR_mktag(0), ProcSubInfo_101, 28) = ((MR_Box) (MaybeExceptionInfo_95));
      MR_hl_field(MR_mktag(0), ProcSubInfo_101, 29) = ((MR_Box) (MaybeTrailingInfo_96));
      MR_hl_field(MR_mktag(0), ProcSubInfo_101, 30) = ((MR_Box) (MaybeMMTablingInfo_97));
      MR_hl_field(MR_mktag(0), ProcSubInfo_101, 31) = ((MR_Box) (SharingInfo_98));
      MR_hl_field(MR_mktag(0), ProcSubInfo_101, 32) = ((MR_Box) (ReuseInfo_99));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *ProcInfo_100 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (HeadVars_51));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Goal_52));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (VarSet_53));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (VarTypes_54));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (RttiVarMaps_55));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (InstVarSet_56));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (DeclaredModes_57));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Modes_58));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (MaybeArgLives_59));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (MaybeDeclaredDetism_60));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Detism_61));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (EvalMethod_62));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (ModeErrors_63));
      MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (ProcSubInfo_101));
    }
  }
}

void MR_CALL 
hlds__hlds_pred__proc_prepare_to_clone_50_p_0(
  MR_Word ProcInfo_51,
  MR_Word * HeadVars_52,
  MR_Word * Goal_53,
  MR_Word * VarSet_54,
  MR_Word * VarTypes_55,
  MR_Word * RttiVarMaps_56,
  MR_Word * InstVarSet_57,
  MR_Word * DeclaredModes_58,
  MR_Word * Modes_59,
  MR_Word * MaybeArgLives_60,
  MR_Word * MaybeDeclaredDetism_61,
  MR_Word * Detism_62,
  MR_Word * EvalMethod_63,
  MR_Word * ModeErrors_64,
  MR_Word * MainContext_65,
  MR_Word * ItemNumber_66,
  MR_Word * CanProcess_67,
  MR_Word * MaybeHeadModesConstr_68,
  MR_Word * DetismDecl_69,
  MR_Word * CseNopullContexts_70,
  MR_Word * MaybeUntupleInfo_71,
  MR_Word * VarNameRemap_72,
  MR_Word * StateVarWarnings_73,
  MR_Word * DeletedCallees_74,
  MR_Word * IsAddressTaken_75,
  MR_Word * HasForeignProcExports_76,
  MR_Word * HasParallelConj_77,
  MR_Word * HasUserEvent_78,
  MR_Word * HasTailCallEvent_79,
  MR_Word * OisuKinds_80,
  MR_Word * MaybeRequireTailRecursion_81,
  MR_Word * RegR_HeadVars_82,
  MR_Word * MaybeArgPassInfo_83,
  MR_Word * MaybeSpecialReturn_84,
  MR_Word * InitialLiveness_85,
  MR_Word * StackSlots_86,
  MR_Word * NeedsMaxfrSlot_87,
  MR_Word * MaybeCallTableTip_88,
  MR_Word * MaybeTableIOInfo_89,
  MR_Word * MaybeTableAttrs_90,
  MR_Word * MaybeObsoleteInFavourOf_91,
  MR_Word * MaybeDeepProfProcInfo_92,
  MR_Word * MaybeArgSizes_93,
  MR_Word * MaybeTermInfo_94,
  MR_Word * Term2Info_95,
  MR_Word * MaybeExceptionInfo_96,
  MR_Word * MaybeTrailingInfo_97,
  MR_Word * MaybeMMTablingInfo_98,
  MR_Word * SharingInfo_99,
  MR_Word * ReuseInfo_100)
{
  {
    MR_Word ProcSubInfo_101;

    *HeadVars_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcInfo_51, (MR_Integer) 0))));
    *Goal_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcInfo_51, (MR_Integer) 1))));
    *VarSet_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcInfo_51, (MR_Integer) 2))));
    *VarTypes_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcInfo_51, (MR_Integer) 3))));
    *RttiVarMaps_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcInfo_51, (MR_Integer) 4))));
    *InstVarSet_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcInfo_51, (MR_Integer) 5))));
    *DeclaredModes_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcInfo_51, (MR_Integer) 6))));
    *Modes_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcInfo_51, (MR_Integer) 7))));
    *MaybeArgLives_60 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcInfo_51, (MR_Integer) 8))));
    *MaybeDeclaredDetism_61 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcInfo_51, (MR_Integer) 9))));
    *Detism_62 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), ProcInfo_51, (MR_Integer) 10))) & (MR_Integer) 7);
    *EvalMethod_63 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcInfo_51, (MR_Integer) 11))));
    *ModeErrors_64 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcInfo_51, (MR_Integer) 12))));
    ProcSubInfo_101 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcInfo_51, (MR_Integer) 13))));
    *MainContext_65 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcSubInfo_101, (MR_Integer) 0))));
    *ItemNumber_66 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcSubInfo_101, (MR_Integer) 1))));
    *CanProcess_67 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), ProcSubInfo_101, (MR_Integer) 2))) & (MR_Integer) 1);
    *MaybeHeadModesConstr_68 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcSubInfo_101, (MR_Integer) 3))));
    *DetismDecl_69 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), ProcSubInfo_101, (MR_Integer) 4))) & (MR_Integer) 3);
    *CseNopullContexts_70 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcSubInfo_101, (MR_Integer) 5))));
    *MaybeUntupleInfo_71 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcSubInfo_101, (MR_Integer) 6))));
    *VarNameRemap_72 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcSubInfo_101, (MR_Integer) 7))));
    *StateVarWarnings_73 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcSubInfo_101, (MR_Integer) 8))));
    *DeletedCallees_74 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcSubInfo_101, (MR_Integer) 9))));
    *IsAddressTaken_75 = ((((MR_Unsigned) ((MR_hl_field(MR_mktag(0), ProcSubInfo_101, (MR_Integer) 10))) >> 3)) & (MR_Integer) 1);
    *HasForeignProcExports_76 = ((((MR_Unsigned) ((MR_hl_field(MR_mktag(0), ProcSubInfo_101, (MR_Integer) 10))) >> 2)) & (MR_Integer) 1);
    *HasParallelConj_77 = ((((MR_Unsigned) ((MR_hl_field(MR_mktag(0), ProcSubInfo_101, (MR_Integer) 10))) >> 1)) & (MR_Integer) 1);
    *HasUserEvent_78 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), ProcSubInfo_101, (MR_Integer) 10))) & (MR_Integer) 1);
    *HasTailCallEvent_79 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcSubInfo_101, (MR_Integer) 11))));
    *OisuKinds_80 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcSubInfo_101, (MR_Integer) 12))));
    *MaybeRequireTailRecursion_81 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcSubInfo_101, (MR_Integer) 13))));
    *RegR_HeadVars_82 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcSubInfo_101, (MR_Integer) 14))));
    *MaybeArgPassInfo_83 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcSubInfo_101, (MR_Integer) 15))));
    *MaybeSpecialReturn_84 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcSubInfo_101, (MR_Integer) 16))));
    *InitialLiveness_85 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcSubInfo_101, (MR_Integer) 17))));
    *StackSlots_86 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcSubInfo_101, (MR_Integer) 18))));
    *NeedsMaxfrSlot_87 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), ProcSubInfo_101, (MR_Integer) 19))) & (MR_Integer) 1);
    *MaybeCallTableTip_88 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcSubInfo_101, (MR_Integer) 20))));
    *MaybeTableIOInfo_89 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcSubInfo_101, (MR_Integer) 21))));
    *MaybeTableAttrs_90 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcSubInfo_101, (MR_Integer) 22))));
    *MaybeObsoleteInFavourOf_91 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcSubInfo_101, (MR_Integer) 23))));
    *MaybeDeepProfProcInfo_92 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcSubInfo_101, (MR_Integer) 24))));
    *MaybeArgSizes_93 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcSubInfo_101, (MR_Integer) 25))));
    *MaybeTermInfo_94 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcSubInfo_101, (MR_Integer) 26))));
    *Term2Info_95 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcSubInfo_101, (MR_Integer) 27))));
    *MaybeExceptionInfo_96 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcSubInfo_101, (MR_Integer) 28))));
    *MaybeTrailingInfo_97 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcSubInfo_101, (MR_Integer) 29))));
    *MaybeMMTablingInfo_98 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcSubInfo_101, (MR_Integer) 30))));
    *SharingInfo_99 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcSubInfo_101, (MR_Integer) 31))));
    *ReuseInfo_100 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcSubInfo_101, (MR_Integer) 32))));
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_create_15_p_0(
  MR_Word Context_16,
  MR_Word ItemNumber_17,
  MR_Word VarSet_18,
  MR_Word VarTypes_19,
  MR_Word HeadVars_20,
  MR_Word InstVarSet_21,
  MR_Word HeadModes_22,
  MR_Word DetismDecl_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 Var_31;

    {
      Var_31 = (MR_Word) MR_mkword(MR_mktag(1), MR_new_object(MR_Word, (1 * sizeof(MR_Word)), NULL, NULL));
      MR_hl_field(MR_mktag(1), Var_31, 0) = ((MR_Box) (Detism_24));
    }
    hlds__hlds_pred__proc_info_create_with_declared_detism_16_p_0(Context_16, ItemNumber_17, VarSet_18, VarTypes_19, HeadVars_20, InstVarSet_21, HeadModes_22, DetismDecl_23, Var_31, Detism_24, Goal_25, RttiVarMaps_26, IsAddressTaken_27, HasParallelConj_28, VarNameRemap_29, ProcInfo_30);
  }
}

void MR_CALL 
hlds__hlds_pred__proc_info_init_13_p_0(
  MR_Word MainContext_14,
  MR_Word ItemNumber_15,
  MR_Integer Arity_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 HeadVars_58;
    MR_Word BodyVarSet_59;
    MR_Word GoalInfo_60;
    MR_Word BodyGoal_61;
    MR_Word BodyTypes_62;
    MR_Word RttiVarMaps_63;
    MR_Word InstVarSet_64;
    MR_Word Var_71;

    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();
    Var_71 = mercury__varset__init_0_f_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_var_type_0));
    parse_tree__prog_util__make_n_fresh_vars_5_p_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_var_type_0), (MR_String) "HeadVar__", Arity_16, &HeadVars_58, Var_71, &BodyVarSet_59);
    hlds__hlds_goal__goal_info_init_1_p_0(&GoalInfo_60);
    {
      BodyGoal_61 = (MR_Word) MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), BodyGoal_61, 0) = ((MR_Box) (MR_mkword(MR_mktag(3), &hlds__hlds_pred_scalar_common_1[15])));
      MR_hl_field(MR_mktag(0), BodyGoal_61, 1) = ((MR_Box) (GoalInfo_60));
    }
    hlds__vartypes__vartypes_from_corresponding_lists_3_p_0(HeadVars_58, Types_17, &BodyTypes_62);
    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(MR_mktag(0), ProcSubInfo_56, 0) = ((MR_Box) (MainContext_14));
      MR_hl_field(MR_mktag(0), ProcSubInfo_56, 1) = ((MR_Box) (ItemNumber_15));
      MR_hl_field(MR_mktag(0), ProcSubInfo_56, 2) = (MR_Box) ((MR_Unsigned) ((MR_Integer) 1));
      MR_hl_field(MR_mktag(0), ProcSubInfo_56, 3) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), ProcSubInfo_56, 4) = (MR_Box) ((MR_Unsigned) (DetismDecl_21));
      MR_hl_field(MR_mktag(0), ProcSubInfo_56, 5) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), ProcSubInfo_56, 6) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), ProcSubInfo_56, 7) = ((MR_Box) (VarNameRemap_25));
      MR_hl_field(MR_mktag(0), ProcSubInfo_56, 8) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), ProcSubInfo_56, 9) = ((MR_Box) (DeletedCallees_31));
      MR_hl_field(MR_mktag(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(MR_mktag(0), ProcSubInfo_56, 11) = ((MR_Box) (&hlds__hlds_pred_scalar_common_3[5]));
      MR_hl_field(MR_mktag(0), ProcSubInfo_56, 12) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), ProcSubInfo_56, 13) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), ProcSubInfo_56, 14) = ((MR_Box) (RegR_HeadVars_37));
      MR_hl_field(MR_mktag(0), ProcSubInfo_56, 15) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), ProcSubInfo_56, 16) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), ProcSubInfo_56, 17) = ((MR_Box) (InitialLiveness_40));
      MR_hl_field(MR_mktag(0), ProcSubInfo_56, 18) = ((MR_Box) (StackSlots_41));
      MR_hl_field(MR_mktag(0), ProcSubInfo_56, 19) = (MR_Box) ((MR_Unsigned) ((MR_Integer) 1));
      MR_hl_field(MR_mktag(0), ProcSubInfo_56, 20) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), ProcSubInfo_56, 21) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), ProcSubInfo_56, 22) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), ProcSubInfo_56, 23) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), ProcSubInfo_56, 24) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), ProcSubInfo_56, 25) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), ProcSubInfo_56, 26) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), ProcSubInfo_56, 27) = ((MR_Box) (Term2Info_50));
      MR_hl_field(MR_mktag(0), ProcSubInfo_56, 28) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), ProcSubInfo_56, 29) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), ProcSubInfo_56, 30) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), ProcSubInfo_56, 31) = ((MR_Box) (&hlds__hlds_pred_scalar_common_2[65]));
      MR_hl_field(MR_mktag(0), ProcSubInfo_56, 32) = ((MR_Box) (&hlds__hlds_pred_scalar_common_2[66]));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *ProcInfo_26 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (HeadVars_58));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (BodyGoal_61));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (BodyVarSet_59));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (BodyTypes_62));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (RttiVarMaps_63));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (InstVarSet_64));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (DeclaredModes_18));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Modes_19));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (MaybeArgLives_20));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (MaybeDeclaredDetism_22));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) ((MR_Integer) 6));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (ProcSubInfo_56));
    }
  }
}

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(MR_mktag(3), Step_3, (MR_Integer) 1))) >> 1)) & (MR_Integer) 1);
          MR_Word ValueOrAddr_9 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(3), Step_3, (MR_Integer) 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__marker_list_to_markers_2_p_0(
  MR_Word Markers_3,
  MR_Word * MarkerSet_4)
{
  mercury__set__list_to_set_2_p_0((MR_Word) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_marker_0), Markers_3, MarkerSet_4);
}

void MR_CALL 
hlds__hlds_pred__markers_to_marker_list_2_p_0(
  MR_Word MarkerSet_3,
  MR_Word * Markers_4)
{
  mercury__set__to_sorted_list_2_p_0((MR_Word) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_marker_0), MarkerSet_3, Markers_4);
}

void MR_CALL 
hlds__hlds_pred__remove_marker_3_p_0(
  MR_Word Marker_4,
  MR_Word STATE_VARIABLE_MarkerSet_0_6,
  MR_Word * STATE_VARIABLE_MarkerSet_7)
{
  mercury__set__delete_3_p_0((MR_Word) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_marker_0), ((MR_Box) (Marker_4)), STATE_VARIABLE_MarkerSet_0_6, STATE_VARIABLE_MarkerSet_7);
}

void MR_CALL 
hlds__hlds_pred__add_markers_3_p_0(
  MR_Word Markers_4,
  MR_Word STATE_VARIABLE_MarkerSet_0_6,
  MR_Word * STATE_VARIABLE_MarkerSet_7)
{
  mercury__set__insert_list_3_p_0((MR_Word) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_marker_0), Markers_4, STATE_VARIABLE_MarkerSet_0_6, STATE_VARIABLE_MarkerSet_7);
}

void MR_CALL 
hlds__hlds_pred__add_marker_3_p_0(
  MR_Word Marker_4,
  MR_Word STATE_VARIABLE_MarkerSet_0_6,
  MR_Word * STATE_VARIABLE_MarkerSet_7)
{
  mercury__set__insert_3_p_0((MR_Word) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_marker_0), ((MR_Box) (Marker_4)), STATE_VARIABLE_MarkerSet_0_6, STATE_VARIABLE_MarkerSet_7);
}

MR_bool MR_CALL 
hlds__hlds_pred__check_marker_2_p_0(
  MR_Word MarkerSet_3,
  MR_Word Marker_4)
{
  {
    MR_bool succeeded;

    succeeded = mercury__set__member_2_p_0((MR_Word) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_marker_0), ((MR_Box) (Marker_4)), MarkerSet_3);
    return succeeded;
  }
}

void MR_CALL 
hlds__hlds_pred__init_markers_1_p_0(
  MR_Word * HeadVar__1_1)
{
  *HeadVar__1_1 = mercury__set__init_0_f_0((MR_Word) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_marker_0));
}

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(MR_mktag(0), PredInfo_3, (MR_Integer) 0))));
    MR_String Name_6 = ((MR_String) ((MR_hl_field(MR_mktag(0), PredInfo_3, (MR_Integer) 1))));

    {
      MR_Word base;
      base = (MR_Word) MR_mkword(MR_mktag(1), MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
      *SymName_4 = base;
      MR_hl_field(MR_mktag(1), base, 0) = ((MR_Box) (Module_5));
      MR_hl_field(MR_mktag(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(MR_mktag(0), PredInfo_3, (MR_Integer) 3))) & (MR_Integer) 1);
    MR_Word SymName_6;
    MR_Integer Arity_7 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), PredInfo_3, (MR_Integer) 2))));
    MR_Word Module_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PredInfo_3, (MR_Integer) 0))));
    MR_String Name_30 = ((MR_String) ((MR_hl_field(MR_mktag(0), PredInfo_3, (MR_Integer) 1))));

    {
      SymName_6 = (MR_Word) MR_mkword(MR_mktag(1), MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
      MR_hl_field(MR_mktag(1), SymName_6, 0) = ((MR_Box) (Module_29));
      MR_hl_field(MR_mktag(1), SymName_6, 1) = ((MR_Box) (Name_30));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (3 * sizeof(MR_Word)), NULL, NULL);
      *PFSymNameArity_4 = base;
      MR_hl_field(MR_mktag(0), base, 0) = (MR_Box) ((MR_Unsigned) (PredOrFunc_5));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (SymName_6));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Arity_7));
    }
  }
}

void MR_CALL 
hlds__hlds_pred__purity_to_markers_2_p_0(
  MR_Word HeadVar__1_1,
  MR_Word * HeadVar__2_2)
{
  switch (HeadVar__1_1) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 2:
      *HeadVar__2_2 = (MR_Word) (MR_mkword(MR_mktag(1), &hlds__hlds_pred_scalar_common_2[63]));
      break;
    case (MR_Integer) 0:
      *HeadVar__2_2 = (MR_Word) ((MR_Unsigned) 0U);
      break;
    case (MR_Integer) 1:
      *HeadVar__2_2 = (MR_Word) (MR_mkword(MR_mktag(1), &hlds__hlds_pred_scalar_common_2[64]));
      break;
  }
}

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(MR_mktag(0), PredInfo_2, (MR_Integer) 6))));

    succeeded = mercury__set__member_2_p_0((MR_Word) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_marker_0), ((MR_Box) ((MR_Integer) 3)), Markers_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(MR_mktag(0), PredInfo0_3, (MR_Integer) 6))));

    succeeded = mercury__set__member_2_p_0((MR_Word) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_marker_0), ((MR_Box) ((MR_Integer) 15)), Markers_5);
    if (succeeded)
      *MaybePromisedPurity_4 = (MR_Word) (MR_mkword(MR_mktag(1), &hlds__hlds_pred_scalar_common_3[3]));
    else
    {
      succeeded = mercury__set__member_2_p_0((MR_Word) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_marker_0), ((MR_Box) ((MR_Integer) 16)), Markers_5);
      if (succeeded)
        *MaybePromisedPurity_4 = (MR_Word) (MR_mkword(MR_mktag(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(MR_mktag(0), PredInfo0_3, (MR_Integer) 6))));

    succeeded = mercury__set__member_2_p_0((MR_Word) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_marker_0), ((MR_Box) ((MR_Integer) 13)), Markers_5);
    if (succeeded)
      *Purity_4 = (MR_Integer) 2;
    else
    {
      succeeded = mercury__set__member_2_p_0((MR_Word) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_marker_0), ((MR_Box) ((MR_Integer) 14)), Markers_5);
      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(MR_mktag(0), PredInfo0_2, (MR_Integer) 6))));

    succeeded = mercury__set__member_2_p_0((MR_Word) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_marker_0), ((MR_Box) ((MR_Integer) 7)), Markers_3);
    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(MR_mktag(0), PredInfo0_2, (MR_Integer) 6))));

    succeeded = mercury__set__member_2_p_0((MR_Word) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_marker_0), ((MR_Box) ((MR_Integer) 6)), Markers_3);
    if (!(succeeded))
      succeeded = mercury__set__member_2_p_0((MR_Word) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_marker_0), ((MR_Box) ((MR_Integer) 8)), Markers_3);
    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 GoalType_9;
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_11, (MR_Integer) 14))));

    GoalType0_6 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_19, (MR_Integer) 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(MR_mktag(0), GoalType0_6, (MR_Integer) 0))) & (MR_Integer) 3);
      MR_Word NPGoalType_8;

      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(MR_mktag(0), GoalType_9, 0) = (MR_Box) ((MR_Unsigned) (NPGoalType_8));
      }
    }
    hlds__hlds_pred__pred_info_set_goal_type_3_p_0(GoalType_9, STATE_VARIABLE_PredInfo_0_11, STATE_VARIABLE_PredInfo_12);
  }
}

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_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PredInfo_2, (MR_Integer) 14))));

    GoalType_3 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 2))));
    succeeded = ((MR_tag((MR_Word) GoalType_3)) == (MR_Integer) 0);
    if (succeeded)
    {
      NPGoalType_4 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), GoalType_3, (MR_Integer) 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_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PredInfo_2, (MR_Integer) 14))));

    GoalType_3 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_8, (MR_Integer) 2))));
    succeeded = ((MR_tag((MR_Word) GoalType_3)) == (MR_Integer) 0);
    if (succeeded)
    {
      NPGoalType_4 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), GoalType_3, (MR_Integer) 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(MR_mktag(0), STATE_VARIABLE_PredInfo_0_7, (MR_Integer) 5))));
    MR_Word OldImportStatus0_5 = (MR_Word) (PredStatus0_4);
    MR_Word PredStatus_6;
    MR_Word Var_9;
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_7, (MR_Integer) 0))));
    MR_String Var_15 = ((MR_String) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_7, (MR_Integer) 1))));
    MR_Integer Var_16 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_7, (MR_Integer) 2))));
    MR_Word Var_17 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_7, (MR_Integer) 3))) & (MR_Integer) 1);
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_7, (MR_Integer) 4))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_7, (MR_Integer) 6))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_7, (MR_Integer) 7))));
    MR_Word Var_21 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_7, (MR_Integer) 8))));
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_7, (MR_Integer) 9))));
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_7, (MR_Integer) 10))));
    MR_Word Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_7, (MR_Integer) 11))));
    MR_Word Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_7, (MR_Integer) 12))));
    MR_Word Var_26 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_7, (MR_Integer) 13))));
    MR_Word Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_7, (MR_Integer) 14))));

    {
      Var_9 = (MR_Word) MR_mkword(MR_mktag(1), MR_new_object(MR_Word, (1 * sizeof(MR_Word)), NULL, NULL));
      MR_hl_field(MR_mktag(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(MR_mktag(0), base, 0) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 3) = (MR_Box) ((MR_Unsigned) (Var_17));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (PredStatus_6));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_21));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 10) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Var_26));
      MR_hl_field(MR_mktag(0), base, 14) = ((MR_Box) (Var_27));
    }
  }
}

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(MR_mktag(0), PredInfo_5, (MR_Integer) 5))));
      MR_Word Var_23 = (MR_Word) (PredStatus_22);

      succeeded = (Var_23 == (MR_Word) ((MR_Unsigned) 12U));
    }
    if (!(succeeded))
    {
      {
        MR_Word PredStatus_42 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PredInfo_5, (MR_Integer) 5))));
        MR_Word Var_43 = (MR_Word) (PredStatus_42);

        succeeded = (Var_43 == (MR_Word) ((MR_Unsigned) 16U));
      }
      if (!(succeeded))
      {
        {
          MR_Word PredStatus_62 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PredInfo_5, (MR_Integer) 5))));
          MR_Word Var_63 = (MR_Word) (PredStatus_62);

          succeeded = (Var_63 == (MR_Word) ((MR_Unsigned) 28U));
        }
        if (!(succeeded))
        {
          {
            MR_Integer Var_98;

            succeeded = hlds__hlds_pred__pred_info_is_pseudo_exported_1_p_0(PredInfo_5);
            if (succeeded)
            {
              Var_98 = (MR_Integer) 0;
              succeeded = (ProcId_6 == Var_98);
            }
          }
          if (!(succeeded))
          {
            {
              MR_Word PredStatus_7 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PredInfo_5, (MR_Integer) 5))));
              MR_Word ExternalImportStatus_8;
              MR_Word Var_15 = (MR_Word) (PredStatus_7);
              MR_Word Var_16;
              MR_Word Var_17;

              succeeded = ((MR_tag((MR_Word) Var_15)) == (MR_Integer) 1);
              if (succeeded)
              {
                ExternalImportStatus_8 = ((MR_Word) ((MR_hl_field(MR_mktag(1), Var_15, (MR_Integer) 0))));
                Var_17 = (MR_Word) (ExternalImportStatus_8);
                Var_16 = hlds__status__pred_status_is_exported_1_f_0(Var_17);
                succeeded = (Var_16 == (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_14;
              MR_Word Var_19;

              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)
              {
                SpecialPredId_10 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(1), Origin_9, (MR_Integer) 0))) & (MR_Integer) 3);
                TypeCtor_11 = ((MR_Word) ((MR_hl_field(MR_mktag(1), Origin_9, (MR_Integer) 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_14 = (MR_Integer) 1;
                  hlds__hlds_data__get_type_defn_in_exported_eqv_2_p_0(TypeDefn_13, &Var_19);
                  succeeded = (Var_14 == Var_19);
                  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(MR_mktag(0), PredInfo_2, (MR_Integer) 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(MR_mktag(0), PredInfo_2, (MR_Integer) 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(MR_mktag(0), PredInfo_2, (MR_Integer) 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(MR_mktag(0), PredInfo_2, (MR_Integer) 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(MR_mktag(0), PredInfo_2, (MR_Integer) 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(MR_mktag(0), PredInfo_2, (MR_Integer) 5))));
    MR_Word Var_5 = (MR_Word) (PredStatus_3);

    succeeded = ((MR_tag((MR_Word) Var_5)) == (MR_Integer) 2);
    if (succeeded)
    {
    }
    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(MR_mktag(0), PredInfo_2, (MR_Integer) 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 Procedures0_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_10, (MR_Integer) 13))));
    MR_Word Procedures_9;
    MR_Word Var_37;
    MR_String Var_38;
    MR_Integer 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_51;

    mercury__map__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_115_101_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_5, ((MR_Box) (ProcInfo_6)), Procedures0_8, &Procedures_9);
    Var_37 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_10, (MR_Integer) 0))));
    Var_38 = ((MR_String) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_10, (MR_Integer) 1))));
    Var_39 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_10, (MR_Integer) 2))));
    Var_40 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_10, (MR_Integer) 3))) & (MR_Integer) 1);
    Var_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_10, (MR_Integer) 4))));
    Var_42 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_10, (MR_Integer) 5))));
    Var_43 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_10, (MR_Integer) 6))));
    Var_44 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_10, (MR_Integer) 7))));
    Var_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_10, (MR_Integer) 8))));
    Var_46 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_10, (MR_Integer) 9))));
    Var_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_10, (MR_Integer) 10))));
    Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_10, (MR_Integer) 11))));
    Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_10, (MR_Integer) 12))));
    Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_10, (MR_Integer) 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(MR_mktag(0), base, 0) = ((MR_Box) (Var_37));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_38));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_39));
      MR_hl_field(MR_mktag(0), base, 3) = (MR_Box) ((MR_Unsigned) (Var_40));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_41));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_42));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_43));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_44));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_45));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_46));
      MR_hl_field(MR_mktag(0), base, 10) = ((MR_Box) (Var_47));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_48));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_49));
      MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Procedures_9));
      MR_hl_field(MR_mktag(0), base, 14) = ((MR_Box) (Var_51));
    }
  }
}

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(MR_mktag(0), PredInfo_4, (MR_Integer) 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(MR_mktag(0), PredInfo_3, (MR_Integer) 7))));
    MR_Word ArgTypeVars0_6;
    MR_Word ArgTypeVars_7;
    MR_Word ExistQVars_8;

    parse_tree__prog_type__type_vars_list_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(MR_mktag(0), PredInfo_3, (MR_Integer) 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_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_10, (MR_Integer) 0))));
    MR_String Var_16 = ((MR_String) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_10, (MR_Integer) 1))));
    MR_Integer Var_17 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_10, (MR_Integer) 2))));
    MR_Word Var_18 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_10, (MR_Integer) 3))) & (MR_Integer) 1);
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_10, (MR_Integer) 4))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_10, (MR_Integer) 5))));
    MR_Word Var_21 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_10, (MR_Integer) 6))));
    MR_Word Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_10, (MR_Integer) 9))));
    MR_Word Var_26 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_10, (MR_Integer) 11))));
    MR_Word Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_10, (MR_Integer) 12))));
    MR_Word Var_28 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_10, (MR_Integer) 13))));
    MR_Word Var_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_10, (MR_Integer) 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(MR_mktag(0), base, 0) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 3) = (MR_Box) ((MR_Unsigned) (Var_18));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_21));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Z_8));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (X_6));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(0), base, 10) = ((MR_Box) (Y_7));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_26));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_27));
      MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Var_28));
      MR_hl_field(MR_mktag(0), base, 14) = ((MR_Box) (Var_29));
    }
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_arg_types_4_p_0(
  MR_Word STATE_VARIABLE_PredInfo_0_9,
  MR_Word * X_6,
  MR_Word * Y_7,
  MR_Word * Z_8)
{
  {
    *Z_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_9, (MR_Integer) 7))));
    *X_6 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_9, (MR_Integer) 8))));
    *Y_7 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_9, (MR_Integer) 10))));
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_remove_procid_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(MR_mktag(0), STATE_VARIABLE_PredInfo_0_8, (MR_Integer) 13))));
    MR_Word Procs_7;
    MR_Word Var_35;
    MR_String Var_36;
    MR_Integer 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_49;

    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_35 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_8, (MR_Integer) 0))));
    Var_36 = ((MR_String) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_8, (MR_Integer) 1))));
    Var_37 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_8, (MR_Integer) 2))));
    Var_38 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_8, (MR_Integer) 3))) & (MR_Integer) 1);
    Var_39 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_8, (MR_Integer) 4))));
    Var_40 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_8, (MR_Integer) 5))));
    Var_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_8, (MR_Integer) 6))));
    Var_42 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_8, (MR_Integer) 7))));
    Var_43 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_8, (MR_Integer) 8))));
    Var_44 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_8, (MR_Integer) 9))));
    Var_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_8, (MR_Integer) 10))));
    Var_46 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_8, (MR_Integer) 11))));
    Var_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_8, (MR_Integer) 12))));
    Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PredInfo_0_8, (MR_Integer) 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(MR_mktag(0), base, 0) = ((MR_Box) (Var_35));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_36));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_37));
      MR_hl_field(MR_mktag(0), base, 3) = (MR_Box) ((MR_Unsigned) (Var_38));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_39));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_40));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_41));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_42));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_43));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_44));
      MR_hl_field(MR_mktag(0), base, 10) = ((MR_Box) (Var_45));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_46));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_47));
      MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Procs_7));
      MR_hl_field(MR_mktag(0), base, 14) = ((MR_Box) (Var_49));
    }
  }
}

MR_Word MR_CALL 
hlds__hlds_pred__pred_info_valid_exported_procids_1_f_0(
  MR_Word PredInfo_3)
{
  {
    MR_Word ProcIds_4;
    MR_Word OldImportStatus_5;
    MR_Word Var_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PredInfo_3, (MR_Integer) 5))));

    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:
            ProcIds_4 = hlds__hlds_pred__pred_info_valid_procids_1_f_0(PredInfo_3);
            break;
          case (MR_Integer) 6:
            ProcIds_4 = (MR_Word) (MR_mkword(MR_mktag(1), &hlds__hlds_pred_scalar_common_2[62]));
            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_non_imported_procids_1_f_0(
  MR_Word PredInfo_3)
{
  {
    MR_Word ProcIds_4;
    MR_Word OldImportStatus_5;
    MR_Word Var_9 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PredInfo_3, (MR_Integer) 5))));
    MR_Word Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PredInfo_3, (MR_Integer) 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) 1:
          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_27, &ProcIds_4);
            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_27, &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_valid_non_imported_procids_1_f_0(
  MR_Word PredInfo_3)
{
  {
    MR_Word ProcIds_4;
    MR_Word OldImportStatus_5;
    MR_Word Var_9 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PredInfo_3, (MR_Integer) 5))));

    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) 1:
          case (MR_Integer) 3:
          case (MR_Integer) 4:
          case (MR_Integer) 5:
          case (MR_Integer) 6:
          case (MR_Integer) 7:
          case (MR_Integer) 8:
            ProcIds_4 = hlds__hlds_pred__pred_info_valid_procids_1_f_0(PredInfo_3);
            break;
          case (MR_Integer) 2:
            {
              MR_Word ProcIds0_8;

              ProcIds0_8 = hlds__hlds_pred__pred_info_valid_procids_1_f_0(PredInfo_3);
              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_procids_1_f_0(
  MR_Word PredInfo_3)
{
  {
    MR_Word ProcIds_4;
    MR_Word ProcTable_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PredInfo_3, (MR_Integer) 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;
  }
}

static MR_bool MR_CALL 
hlds__hlds_pred__pred_info_valid_procids_1_f_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1)
{
  {
    MR_bool succeeded;
    MR_Box closure = closure_arg;

    succeeded = hlds__hlds_pred__IntroducedFrom__pred__pred_info_valid_procids__1675__1_2_p_0(((MR_Word) ((MR_hl_field(MR_mktag(0), closure, (MR_Integer) 3)))), ((MR_Integer) (wrapper_arg_1)));
    return succeeded;
  }
}

MR_Word MR_CALL 
hlds__hlds_pred__pred_info_valid_procids_1_f_0(
  MR_Word PredInfo_3)
{
  {
    MR_bool succeeded;
    MR_Word ValidProcIds_4;
    MR_Word AllProcIds_5;
    MR_Word ProcTable_6;
    MR_Word IsValid_7;
    MR_Word ProcTable_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PredInfo_3, (MR_Integer) 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_17, &AllProcIds_5);
    ProcTable_6 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PredInfo_3, (MR_Integer) 13))));
    {
      IsValid_7 = (MR_Word) MR_new_object(MR_Word, (4 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), IsValid_7, 0) = ((MR_Box) (&hlds__hlds_pred_scalar_common_5[0]));
      MR_hl_field(MR_mktag(0), IsValid_7, 1) = ((MR_Box) (hlds__hlds_pred__pred_info_valid_procids_1_f_0_1));
      MR_hl_field(MR_mktag(0), IsValid_7, 2) = ((MR_Box) ((MR_Integer) 1));
      MR_hl_field(MR_mktag(0), IsValid_7, 3) = ((MR_Box) (ProcTable_6));
    }
    mercury__list__filter_3_p_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_int_0), IsValid_7, AllProcIds_5, &ValidProcIds_4);
    return ValidProcIds_4;
  }
}

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_9 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_String Var_10 = ((MR_String) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Integer Var_11 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_12 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))) & (MR_Integer) 1);
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_21 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 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(MR_mktag(0), base, 0) = ((MR_Box) (Var_9));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_10));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 3) = (MR_Box) ((MR_Unsigned) (Var_12));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 10) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_21));
      MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), base, 14) = ((MR_Box) (Var_23));
    }
  }
}

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_9 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_String Var_10 = ((MR_String) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Integer Var_11 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_12 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))) & (MR_Integer) 1);
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 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(MR_mktag(0), base, 0) = ((MR_Box) (Var_9));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_10));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 3) = (MR_Box) ((MR_Unsigned) (Var_12));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 10) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 14) = ((MR_Box) (Var_23));
    }
  }
}

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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 14))));
    MR_Word Var_10;
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_String Var_12 = ((MR_String) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Integer Var_13 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_14 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))) & (MR_Integer) 1);
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_21 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))));
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    MR_Word Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 0))));
    MR_Word Var_26 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 1))));
    MR_Word Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 2))));
    MR_Word Var_28 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 3))));
    MR_Word Var_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 4))));
    MR_Word Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 5))));
    MR_Word Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 6))));
    MR_Word Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 7))));
    MR_Word Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 8))));
    MR_Word Var_34 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 9))));
    MR_Word Var_35 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 10))));
    MR_Word Var_36 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 11))));
    MR_Word Var_37 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 12))));
    MR_Word Var_38 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 13))));

    {
      Var_10 = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_10, 0) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), Var_10, 1) = ((MR_Box) (Var_26));
      MR_hl_field(MR_mktag(0), Var_10, 2) = ((MR_Box) (Var_27));
      MR_hl_field(MR_mktag(0), Var_10, 3) = ((MR_Box) (Var_28));
      MR_hl_field(MR_mktag(0), Var_10, 4) = ((MR_Box) (Var_29));
      MR_hl_field(MR_mktag(0), Var_10, 5) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), Var_10, 6) = ((MR_Box) (Var_31));
      MR_hl_field(MR_mktag(0), Var_10, 7) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), Var_10, 8) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), Var_10, 9) = ((MR_Box) (Var_34));
      MR_hl_field(MR_mktag(0), Var_10, 10) = ((MR_Box) (Var_35));
      MR_hl_field(MR_mktag(0), Var_10, 11) = ((MR_Box) (Var_36));
      MR_hl_field(MR_mktag(0), Var_10, 12) = ((MR_Box) (Var_37));
      MR_hl_field(MR_mktag(0), Var_10, 13) = ((MR_Box) (Var_38));
      MR_hl_field(MR_mktag(0), Var_10, 14) = ((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(MR_mktag(0), base, 0) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 3) = (MR_Box) ((MR_Unsigned) (Var_14));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 10) = ((MR_Box) (Var_21));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 14))));
    MR_Word Var_10;
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_String Var_12 = ((MR_String) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Integer Var_13 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_14 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))) & (MR_Integer) 1);
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_21 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))));
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    MR_Word Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 0))));
    MR_Word Var_26 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 1))));
    MR_Word Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 2))));
    MR_Word Var_28 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 3))));
    MR_Word Var_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 4))));
    MR_Word Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 5))));
    MR_Word Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 6))));
    MR_Word Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 7))));
    MR_Word Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 8))));
    MR_Word Var_34 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 9))));
    MR_Word Var_35 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 10))));
    MR_Word Var_36 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 11))));
    MR_Word Var_37 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 12))));
    MR_Word Var_39 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 14))));

    {
      Var_10 = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_10, 0) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), Var_10, 1) = ((MR_Box) (Var_26));
      MR_hl_field(MR_mktag(0), Var_10, 2) = ((MR_Box) (Var_27));
      MR_hl_field(MR_mktag(0), Var_10, 3) = ((MR_Box) (Var_28));
      MR_hl_field(MR_mktag(0), Var_10, 4) = ((MR_Box) (Var_29));
      MR_hl_field(MR_mktag(0), Var_10, 5) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), Var_10, 6) = ((MR_Box) (Var_31));
      MR_hl_field(MR_mktag(0), Var_10, 7) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), Var_10, 8) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), Var_10, 9) = ((MR_Box) (Var_34));
      MR_hl_field(MR_mktag(0), Var_10, 10) = ((MR_Box) (Var_35));
      MR_hl_field(MR_mktag(0), Var_10, 11) = ((MR_Box) (Var_36));
      MR_hl_field(MR_mktag(0), Var_10, 12) = ((MR_Box) (Var_37));
      MR_hl_field(MR_mktag(0), Var_10, 13) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), Var_10, 14) = ((MR_Box) (Var_39));
    }
    {
      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(MR_mktag(0), base, 0) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 3) = (MR_Box) ((MR_Unsigned) (Var_14));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 10) = ((MR_Box) (Var_21));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 14))));
    MR_Word Var_10;
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_String Var_12 = ((MR_String) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Integer Var_13 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_14 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))) & (MR_Integer) 1);
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_21 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))));
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    MR_Word Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 0))));
    MR_Word Var_26 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 1))));
    MR_Word Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 2))));
    MR_Word Var_28 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 3))));
    MR_Word Var_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 4))));
    MR_Word Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 5))));
    MR_Word Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 6))));
    MR_Word Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 7))));
    MR_Word Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 8))));
    MR_Word Var_34 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 9))));
    MR_Word Var_35 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 10))));
    MR_Word Var_36 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 11))));
    MR_Word Var_38 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 13))));
    MR_Word Var_39 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 14))));

    {
      Var_10 = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_10, 0) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), Var_10, 1) = ((MR_Box) (Var_26));
      MR_hl_field(MR_mktag(0), Var_10, 2) = ((MR_Box) (Var_27));
      MR_hl_field(MR_mktag(0), Var_10, 3) = ((MR_Box) (Var_28));
      MR_hl_field(MR_mktag(0), Var_10, 4) = ((MR_Box) (Var_29));
      MR_hl_field(MR_mktag(0), Var_10, 5) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), Var_10, 6) = ((MR_Box) (Var_31));
      MR_hl_field(MR_mktag(0), Var_10, 7) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), Var_10, 8) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), Var_10, 9) = ((MR_Box) (Var_34));
      MR_hl_field(MR_mktag(0), Var_10, 10) = ((MR_Box) (Var_35));
      MR_hl_field(MR_mktag(0), Var_10, 11) = ((MR_Box) (Var_36));
      MR_hl_field(MR_mktag(0), Var_10, 12) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), Var_10, 13) = ((MR_Box) (Var_38));
      MR_hl_field(MR_mktag(0), Var_10, 14) = ((MR_Box) (Var_39));
    }
    {
      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(MR_mktag(0), base, 0) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 3) = (MR_Box) ((MR_Unsigned) (Var_14));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 10) = ((MR_Box) (Var_21));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 14))));

    Var_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 11))));
    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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 14))));
      MR_Word Var_12;
      MR_Word Var_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
      MR_String Var_42 = ((MR_String) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
      MR_Integer Var_43 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
      MR_Word Var_44 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))) & (MR_Integer) 1);
      MR_Word Var_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
      MR_Word Var_46 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
      MR_Word Var_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
      MR_Word Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
      MR_Word Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
      MR_Word Var_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
      MR_Word Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))));
      MR_Word Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
      MR_Word Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
      MR_Word Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
      MR_Word Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 0))));
      MR_Word Var_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 1))));
      MR_Word Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 2))));
      MR_Word Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 3))));
      MR_Word Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 4))));
      MR_Word Var_60 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 5))));
      MR_Word Var_61 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 6))));
      MR_Word Var_62 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 7))));
      MR_Word Var_63 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 8))));
      MR_Word Var_64 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 9))));
      MR_Word Var_65 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 10))));
      MR_Word Var_67 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 12))));
      MR_Word Var_68 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 13))));
      MR_Word Var_69 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 14))));

      {
        Var_12 = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
        MR_hl_field(MR_mktag(0), Var_12, 0) = ((MR_Box) (Var_55));
        MR_hl_field(MR_mktag(0), Var_12, 1) = ((MR_Box) (Var_56));
        MR_hl_field(MR_mktag(0), Var_12, 2) = ((MR_Box) (Var_57));
        MR_hl_field(MR_mktag(0), Var_12, 3) = ((MR_Box) (Var_58));
        MR_hl_field(MR_mktag(0), Var_12, 4) = ((MR_Box) (Var_59));
        MR_hl_field(MR_mktag(0), Var_12, 5) = ((MR_Box) (Var_60));
        MR_hl_field(MR_mktag(0), Var_12, 6) = ((MR_Box) (Var_61));
        MR_hl_field(MR_mktag(0), Var_12, 7) = ((MR_Box) (Var_62));
        MR_hl_field(MR_mktag(0), Var_12, 8) = ((MR_Box) (Var_63));
        MR_hl_field(MR_mktag(0), Var_12, 9) = ((MR_Box) (Var_64));
        MR_hl_field(MR_mktag(0), Var_12, 10) = ((MR_Box) (Var_65));
        MR_hl_field(MR_mktag(0), Var_12, 11) = ((MR_Box) (X_4));
        MR_hl_field(MR_mktag(0), Var_12, 12) = ((MR_Box) (Var_67));
        MR_hl_field(MR_mktag(0), Var_12, 13) = ((MR_Box) (Var_68));
        MR_hl_field(MR_mktag(0), Var_12, 14) = ((MR_Box) (Var_69));
      }
      {
        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(MR_mktag(0), base, 0) = ((MR_Box) (Var_41));
        MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_42));
        MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_43));
        MR_hl_field(MR_mktag(0), base, 3) = (MR_Box) ((MR_Unsigned) (Var_44));
        MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_45));
        MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_46));
        MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_47));
        MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_48));
        MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_49));
        MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_50));
        MR_hl_field(MR_mktag(0), base, 10) = ((MR_Box) (Var_51));
        MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_52));
        MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_53));
        MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Var_54));
        MR_hl_field(MR_mktag(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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 14))));
    MR_Word Var_10;
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_String Var_12 = ((MR_String) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Integer Var_13 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_14 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))) & (MR_Integer) 1);
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_21 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))));
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    MR_Word Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 0))));
    MR_Word Var_26 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 1))));
    MR_Word Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 2))));
    MR_Word Var_28 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 3))));
    MR_Word Var_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 4))));
    MR_Word Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 5))));
    MR_Word Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 6))));
    MR_Word Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 7))));
    MR_Word Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 8))));
    MR_Word Var_34 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 9))));
    MR_Word Var_36 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 11))));
    MR_Word Var_37 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 12))));
    MR_Word Var_38 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 13))));
    MR_Word Var_39 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 14))));

    {
      Var_10 = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_10, 0) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), Var_10, 1) = ((MR_Box) (Var_26));
      MR_hl_field(MR_mktag(0), Var_10, 2) = ((MR_Box) (Var_27));
      MR_hl_field(MR_mktag(0), Var_10, 3) = ((MR_Box) (Var_28));
      MR_hl_field(MR_mktag(0), Var_10, 4) = ((MR_Box) (Var_29));
      MR_hl_field(MR_mktag(0), Var_10, 5) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), Var_10, 6) = ((MR_Box) (Var_31));
      MR_hl_field(MR_mktag(0), Var_10, 7) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), Var_10, 8) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), Var_10, 9) = ((MR_Box) (Var_34));
      MR_hl_field(MR_mktag(0), Var_10, 10) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), Var_10, 11) = ((MR_Box) (Var_36));
      MR_hl_field(MR_mktag(0), Var_10, 12) = ((MR_Box) (Var_37));
      MR_hl_field(MR_mktag(0), Var_10, 13) = ((MR_Box) (Var_38));
      MR_hl_field(MR_mktag(0), Var_10, 14) = ((MR_Box) (Var_39));
    }
    {
      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(MR_mktag(0), base, 0) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 3) = (MR_Box) ((MR_Unsigned) (Var_14));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 10) = ((MR_Box) (Var_21));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 14))));
    MR_Word Var_10;
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_String Var_12 = ((MR_String) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Integer Var_13 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_14 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))) & (MR_Integer) 1);
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_21 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))));
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    MR_Word Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 0))));
    MR_Word Var_26 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 1))));
    MR_Word Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 2))));
    MR_Word Var_28 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 3))));
    MR_Word Var_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 4))));
    MR_Word Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 5))));
    MR_Word Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 6))));
    MR_Word Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 7))));
    MR_Word Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 8))));
    MR_Word Var_35 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 10))));
    MR_Word Var_36 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 11))));
    MR_Word Var_37 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 12))));
    MR_Word Var_38 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 13))));
    MR_Word Var_39 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 14))));

    {
      Var_10 = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_10, 0) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), Var_10, 1) = ((MR_Box) (Var_26));
      MR_hl_field(MR_mktag(0), Var_10, 2) = ((MR_Box) (Var_27));
      MR_hl_field(MR_mktag(0), Var_10, 3) = ((MR_Box) (Var_28));
      MR_hl_field(MR_mktag(0), Var_10, 4) = ((MR_Box) (Var_29));
      MR_hl_field(MR_mktag(0), Var_10, 5) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), Var_10, 6) = ((MR_Box) (Var_31));
      MR_hl_field(MR_mktag(0), Var_10, 7) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), Var_10, 8) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), Var_10, 9) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), Var_10, 10) = ((MR_Box) (Var_35));
      MR_hl_field(MR_mktag(0), Var_10, 11) = ((MR_Box) (Var_36));
      MR_hl_field(MR_mktag(0), Var_10, 12) = ((MR_Box) (Var_37));
      MR_hl_field(MR_mktag(0), Var_10, 13) = ((MR_Box) (Var_38));
      MR_hl_field(MR_mktag(0), Var_10, 14) = ((MR_Box) (Var_39));
    }
    {
      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(MR_mktag(0), base, 0) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 3) = (MR_Box) ((MR_Unsigned) (Var_14));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 10) = ((MR_Box) (Var_21));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 14))));

    Var_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 14))));
      MR_Word Var_12;
      MR_Word Var_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
      MR_String Var_42 = ((MR_String) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
      MR_Integer Var_43 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
      MR_Word Var_44 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))) & (MR_Integer) 1);
      MR_Word Var_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
      MR_Word Var_46 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
      MR_Word Var_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
      MR_Word Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
      MR_Word Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
      MR_Word Var_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
      MR_Word Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))));
      MR_Word Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
      MR_Word Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
      MR_Word Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
      MR_Word Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 0))));
      MR_Word Var_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 1))));
      MR_Word Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 2))));
      MR_Word Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 3))));
      MR_Word Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 4))));
      MR_Word Var_60 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 5))));
      MR_Word Var_61 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 6))));
      MR_Word Var_62 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 7))));
      MR_Word Var_64 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 9))));
      MR_Word Var_65 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 10))));
      MR_Word Var_66 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 11))));
      MR_Word Var_67 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 12))));
      MR_Word Var_68 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 13))));
      MR_Word Var_69 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 14))));

      {
        Var_12 = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
        MR_hl_field(MR_mktag(0), Var_12, 0) = ((MR_Box) (Var_55));
        MR_hl_field(MR_mktag(0), Var_12, 1) = ((MR_Box) (Var_56));
        MR_hl_field(MR_mktag(0), Var_12, 2) = ((MR_Box) (Var_57));
        MR_hl_field(MR_mktag(0), Var_12, 3) = ((MR_Box) (Var_58));
        MR_hl_field(MR_mktag(0), Var_12, 4) = ((MR_Box) (Var_59));
        MR_hl_field(MR_mktag(0), Var_12, 5) = ((MR_Box) (Var_60));
        MR_hl_field(MR_mktag(0), Var_12, 6) = ((MR_Box) (Var_61));
        MR_hl_field(MR_mktag(0), Var_12, 7) = ((MR_Box) (Var_62));
        MR_hl_field(MR_mktag(0), Var_12, 8) = ((MR_Box) (X_4));
        MR_hl_field(MR_mktag(0), Var_12, 9) = ((MR_Box) (Var_64));
        MR_hl_field(MR_mktag(0), Var_12, 10) = ((MR_Box) (Var_65));
        MR_hl_field(MR_mktag(0), Var_12, 11) = ((MR_Box) (Var_66));
        MR_hl_field(MR_mktag(0), Var_12, 12) = ((MR_Box) (Var_67));
        MR_hl_field(MR_mktag(0), Var_12, 13) = ((MR_Box) (Var_68));
        MR_hl_field(MR_mktag(0), Var_12, 14) = ((MR_Box) (Var_69));
      }
      {
        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(MR_mktag(0), base, 0) = ((MR_Box) (Var_41));
        MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_42));
        MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_43));
        MR_hl_field(MR_mktag(0), base, 3) = (MR_Box) ((MR_Unsigned) (Var_44));
        MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_45));
        MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_46));
        MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_47));
        MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_48));
        MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_49));
        MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_50));
        MR_hl_field(MR_mktag(0), base, 10) = ((MR_Box) (Var_51));
        MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_52));
        MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_53));
        MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Var_54));
        MR_hl_field(MR_mktag(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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 14))));

    Var_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 14))));
      MR_Word Var_12;
      MR_Word Var_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
      MR_String Var_42 = ((MR_String) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
      MR_Integer Var_43 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
      MR_Word Var_44 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))) & (MR_Integer) 1);
      MR_Word Var_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
      MR_Word Var_46 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
      MR_Word Var_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
      MR_Word Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
      MR_Word Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
      MR_Word Var_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
      MR_Word Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))));
      MR_Word Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
      MR_Word Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
      MR_Word Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
      MR_Word Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 0))));
      MR_Word Var_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 1))));
      MR_Word Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 2))));
      MR_Word Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 3))));
      MR_Word Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 4))));
      MR_Word Var_60 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 5))));
      MR_Word Var_61 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 6))));
      MR_Word Var_63 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 8))));
      MR_Word Var_64 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 9))));
      MR_Word Var_65 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 10))));
      MR_Word Var_66 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 11))));
      MR_Word Var_67 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 12))));
      MR_Word Var_68 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 13))));
      MR_Word Var_69 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 14))));

      {
        Var_12 = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
        MR_hl_field(MR_mktag(0), Var_12, 0) = ((MR_Box) (Var_55));
        MR_hl_field(MR_mktag(0), Var_12, 1) = ((MR_Box) (Var_56));
        MR_hl_field(MR_mktag(0), Var_12, 2) = ((MR_Box) (Var_57));
        MR_hl_field(MR_mktag(0), Var_12, 3) = ((MR_Box) (Var_58));
        MR_hl_field(MR_mktag(0), Var_12, 4) = ((MR_Box) (Var_59));
        MR_hl_field(MR_mktag(0), Var_12, 5) = ((MR_Box) (Var_60));
        MR_hl_field(MR_mktag(0), Var_12, 6) = ((MR_Box) (Var_61));
        MR_hl_field(MR_mktag(0), Var_12, 7) = ((MR_Box) (X_4));
        MR_hl_field(MR_mktag(0), Var_12, 8) = ((MR_Box) (Var_63));
        MR_hl_field(MR_mktag(0), Var_12, 9) = ((MR_Box) (Var_64));
        MR_hl_field(MR_mktag(0), Var_12, 10) = ((MR_Box) (Var_65));
        MR_hl_field(MR_mktag(0), Var_12, 11) = ((MR_Box) (Var_66));
        MR_hl_field(MR_mktag(0), Var_12, 12) = ((MR_Box) (Var_67));
        MR_hl_field(MR_mktag(0), Var_12, 13) = ((MR_Box) (Var_68));
        MR_hl_field(MR_mktag(0), Var_12, 14) = ((MR_Box) (Var_69));
      }
      {
        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(MR_mktag(0), base, 0) = ((MR_Box) (Var_41));
        MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_42));
        MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_43));
        MR_hl_field(MR_mktag(0), base, 3) = (MR_Box) ((MR_Unsigned) (Var_44));
        MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_45));
        MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_46));
        MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_47));
        MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_48));
        MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_49));
        MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_50));
        MR_hl_field(MR_mktag(0), base, 10) = ((MR_Box) (Var_51));
        MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_52));
        MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_53));
        MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Var_54));
        MR_hl_field(MR_mktag(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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 14))));

    Var_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 14))));
      MR_Word Var_12;
      MR_Word Var_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
      MR_String Var_42 = ((MR_String) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
      MR_Integer Var_43 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
      MR_Word Var_44 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))) & (MR_Integer) 1);
      MR_Word Var_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
      MR_Word Var_46 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
      MR_Word Var_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
      MR_Word Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
      MR_Word Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
      MR_Word Var_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
      MR_Word Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))));
      MR_Word Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
      MR_Word Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
      MR_Word Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
      MR_Word Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 0))));
      MR_Word Var_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 1))));
      MR_Word Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 2))));
      MR_Word Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 3))));
      MR_Word Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 4))));
      MR_Word Var_60 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 5))));
      MR_Word Var_62 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 7))));
      MR_Word Var_63 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 8))));
      MR_Word Var_64 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 9))));
      MR_Word Var_65 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 10))));
      MR_Word Var_66 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 11))));
      MR_Word Var_67 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 12))));
      MR_Word Var_68 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 13))));
      MR_Word Var_69 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 14))));

      {
        Var_12 = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
        MR_hl_field(MR_mktag(0), Var_12, 0) = ((MR_Box) (Var_55));
        MR_hl_field(MR_mktag(0), Var_12, 1) = ((MR_Box) (Var_56));
        MR_hl_field(MR_mktag(0), Var_12, 2) = ((MR_Box) (Var_57));
        MR_hl_field(MR_mktag(0), Var_12, 3) = ((MR_Box) (Var_58));
        MR_hl_field(MR_mktag(0), Var_12, 4) = ((MR_Box) (Var_59));
        MR_hl_field(MR_mktag(0), Var_12, 5) = ((MR_Box) (Var_60));
        MR_hl_field(MR_mktag(0), Var_12, 6) = ((MR_Box) (X_4));
        MR_hl_field(MR_mktag(0), Var_12, 7) = ((MR_Box) (Var_62));
        MR_hl_field(MR_mktag(0), Var_12, 8) = ((MR_Box) (Var_63));
        MR_hl_field(MR_mktag(0), Var_12, 9) = ((MR_Box) (Var_64));
        MR_hl_field(MR_mktag(0), Var_12, 10) = ((MR_Box) (Var_65));
        MR_hl_field(MR_mktag(0), Var_12, 11) = ((MR_Box) (Var_66));
        MR_hl_field(MR_mktag(0), Var_12, 12) = ((MR_Box) (Var_67));
        MR_hl_field(MR_mktag(0), Var_12, 13) = ((MR_Box) (Var_68));
        MR_hl_field(MR_mktag(0), Var_12, 14) = ((MR_Box) (Var_69));
      }
      {
        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(MR_mktag(0), base, 0) = ((MR_Box) (Var_41));
        MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_42));
        MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_43));
        MR_hl_field(MR_mktag(0), base, 3) = (MR_Box) ((MR_Unsigned) (Var_44));
        MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_45));
        MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_46));
        MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_47));
        MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_48));
        MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_49));
        MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_50));
        MR_hl_field(MR_mktag(0), base, 10) = ((MR_Box) (Var_51));
        MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_52));
        MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_53));
        MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Var_54));
        MR_hl_field(MR_mktag(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_9 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_String Var_10 = ((MR_String) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Integer Var_11 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_12 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))) & (MR_Integer) 1);
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))));
    MR_Word Var_21 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 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(MR_mktag(0), base, 0) = ((MR_Box) (Var_9));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_10));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 3) = (MR_Box) ((MR_Unsigned) (Var_12));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 10) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_21));
      MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 14) = ((MR_Box) (Var_23));
    }
  }
}

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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 14))));

    Var_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 5))));
    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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 14))));
      MR_Word Var_12;
      MR_Word Var_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
      MR_String Var_42 = ((MR_String) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
      MR_Integer Var_43 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
      MR_Word Var_44 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))) & (MR_Integer) 1);
      MR_Word Var_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
      MR_Word Var_46 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
      MR_Word Var_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
      MR_Word Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
      MR_Word Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
      MR_Word Var_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
      MR_Word Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))));
      MR_Word Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
      MR_Word Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
      MR_Word Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
      MR_Word Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 0))));
      MR_Word Var_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 1))));
      MR_Word Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 2))));
      MR_Word Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 3))));
      MR_Word Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 4))));
      MR_Word Var_61 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 6))));
      MR_Word Var_62 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 7))));
      MR_Word Var_63 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 8))));
      MR_Word Var_64 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 9))));
      MR_Word Var_65 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 10))));
      MR_Word Var_66 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 11))));
      MR_Word Var_67 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 12))));
      MR_Word Var_68 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 13))));
      MR_Word Var_69 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 14))));

      {
        Var_12 = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
        MR_hl_field(MR_mktag(0), Var_12, 0) = ((MR_Box) (Var_55));
        MR_hl_field(MR_mktag(0), Var_12, 1) = ((MR_Box) (Var_56));
        MR_hl_field(MR_mktag(0), Var_12, 2) = ((MR_Box) (Var_57));
        MR_hl_field(MR_mktag(0), Var_12, 3) = ((MR_Box) (Var_58));
        MR_hl_field(MR_mktag(0), Var_12, 4) = ((MR_Box) (Var_59));
        MR_hl_field(MR_mktag(0), Var_12, 5) = ((MR_Box) (X_4));
        MR_hl_field(MR_mktag(0), Var_12, 6) = ((MR_Box) (Var_61));
        MR_hl_field(MR_mktag(0), Var_12, 7) = ((MR_Box) (Var_62));
        MR_hl_field(MR_mktag(0), Var_12, 8) = ((MR_Box) (Var_63));
        MR_hl_field(MR_mktag(0), Var_12, 9) = ((MR_Box) (Var_64));
        MR_hl_field(MR_mktag(0), Var_12, 10) = ((MR_Box) (Var_65));
        MR_hl_field(MR_mktag(0), Var_12, 11) = ((MR_Box) (Var_66));
        MR_hl_field(MR_mktag(0), Var_12, 12) = ((MR_Box) (Var_67));
        MR_hl_field(MR_mktag(0), Var_12, 13) = ((MR_Box) (Var_68));
        MR_hl_field(MR_mktag(0), Var_12, 14) = ((MR_Box) (Var_69));
      }
      {
        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(MR_mktag(0), base, 0) = ((MR_Box) (Var_41));
        MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_42));
        MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_43));
        MR_hl_field(MR_mktag(0), base, 3) = (MR_Box) ((MR_Unsigned) (Var_44));
        MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_45));
        MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_46));
        MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_47));
        MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_48));
        MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_49));
        MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_50));
        MR_hl_field(MR_mktag(0), base, 10) = ((MR_Box) (Var_51));
        MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_52));
        MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_53));
        MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Var_54));
        MR_hl_field(MR_mktag(0), base, 14) = ((MR_Box) (Var_12));
      }
    }
  }
}

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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 14))));
    MR_Word Var_10;
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_String Var_12 = ((MR_String) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Integer Var_13 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_14 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))) & (MR_Integer) 1);
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_21 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))));
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    MR_Word Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 0))));
    MR_Word Var_26 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 1))));
    MR_Word Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 2))));
    MR_Word Var_28 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 3))));
    MR_Word Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 5))));
    MR_Word Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 6))));
    MR_Word Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 7))));
    MR_Word Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 8))));
    MR_Word Var_34 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 9))));
    MR_Word Var_35 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 10))));
    MR_Word Var_36 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 11))));
    MR_Word Var_37 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 12))));
    MR_Word Var_38 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 13))));
    MR_Word Var_39 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 14))));

    {
      Var_10 = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_10, 0) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), Var_10, 1) = ((MR_Box) (Var_26));
      MR_hl_field(MR_mktag(0), Var_10, 2) = ((MR_Box) (Var_27));
      MR_hl_field(MR_mktag(0), Var_10, 3) = ((MR_Box) (Var_28));
      MR_hl_field(MR_mktag(0), Var_10, 4) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), Var_10, 5) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), Var_10, 6) = ((MR_Box) (Var_31));
      MR_hl_field(MR_mktag(0), Var_10, 7) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), Var_10, 8) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), Var_10, 9) = ((MR_Box) (Var_34));
      MR_hl_field(MR_mktag(0), Var_10, 10) = ((MR_Box) (Var_35));
      MR_hl_field(MR_mktag(0), Var_10, 11) = ((MR_Box) (Var_36));
      MR_hl_field(MR_mktag(0), Var_10, 12) = ((MR_Box) (Var_37));
      MR_hl_field(MR_mktag(0), Var_10, 13) = ((MR_Box) (Var_38));
      MR_hl_field(MR_mktag(0), Var_10, 14) = ((MR_Box) (Var_39));
    }
    {
      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(MR_mktag(0), base, 0) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 3) = (MR_Box) ((MR_Unsigned) (Var_14));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 10) = ((MR_Box) (Var_21));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 14))));

    Var_8 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 14))));
      MR_Word Var_12;
      MR_Word Var_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
      MR_String Var_42 = ((MR_String) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
      MR_Integer Var_43 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
      MR_Word Var_44 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))) & (MR_Integer) 1);
      MR_Word Var_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
      MR_Word Var_46 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
      MR_Word Var_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
      MR_Word Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
      MR_Word Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
      MR_Word Var_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
      MR_Word Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))));
      MR_Word Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
      MR_Word Var_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
      MR_Word Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
      MR_Word Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 0))));
      MR_Word Var_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 1))));
      MR_Word Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 2))));
      MR_Word Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 4))));
      MR_Word Var_60 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 5))));
      MR_Word Var_61 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 6))));
      MR_Word Var_62 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 7))));
      MR_Word Var_63 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 8))));
      MR_Word Var_64 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 9))));
      MR_Word Var_65 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 10))));
      MR_Word Var_66 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 11))));
      MR_Word Var_67 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 12))));
      MR_Word Var_68 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 13))));
      MR_Word Var_69 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_11, (MR_Integer) 14))));

      {
        Var_12 = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
        MR_hl_field(MR_mktag(0), Var_12, 0) = ((MR_Box) (Var_55));
        MR_hl_field(MR_mktag(0), Var_12, 1) = ((MR_Box) (Var_56));
        MR_hl_field(MR_mktag(0), Var_12, 2) = ((MR_Box) (Var_57));
        MR_hl_field(MR_mktag(0), Var_12, 3) = ((MR_Box) (X_4));
        MR_hl_field(MR_mktag(0), Var_12, 4) = ((MR_Box) (Var_59));
        MR_hl_field(MR_mktag(0), Var_12, 5) = ((MR_Box) (Var_60));
        MR_hl_field(MR_mktag(0), Var_12, 6) = ((MR_Box) (Var_61));
        MR_hl_field(MR_mktag(0), Var_12, 7) = ((MR_Box) (Var_62));
        MR_hl_field(MR_mktag(0), Var_12, 8) = ((MR_Box) (Var_63));
        MR_hl_field(MR_mktag(0), Var_12, 9) = ((MR_Box) (Var_64));
        MR_hl_field(MR_mktag(0), Var_12, 10) = ((MR_Box) (Var_65));
        MR_hl_field(MR_mktag(0), Var_12, 11) = ((MR_Box) (Var_66));
        MR_hl_field(MR_mktag(0), Var_12, 12) = ((MR_Box) (Var_67));
        MR_hl_field(MR_mktag(0), Var_12, 13) = ((MR_Box) (Var_68));
        MR_hl_field(MR_mktag(0), Var_12, 14) = ((MR_Box) (Var_69));
      }
      {
        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(MR_mktag(0), base, 0) = ((MR_Box) (Var_41));
        MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_42));
        MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_43));
        MR_hl_field(MR_mktag(0), base, 3) = (MR_Box) ((MR_Unsigned) (Var_44));
        MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_45));
        MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_46));
        MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_47));
        MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_48));
        MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_49));
        MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_50));
        MR_hl_field(MR_mktag(0), base, 10) = ((MR_Box) (Var_51));
        MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_52));
        MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_53));
        MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Var_54));
        MR_hl_field(MR_mktag(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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 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_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
      MR_String Var_25 = ((MR_String) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
      MR_Integer Var_26 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
      MR_Word Var_27 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))) & (MR_Integer) 1);
      MR_Word Var_28 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
      MR_Word Var_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
      MR_Word Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
      MR_Word Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
      MR_Word Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
      MR_Word Var_34 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))));
      MR_Word Var_35 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
      MR_Word Var_36 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
      MR_Word Var_37 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
      MR_Word Var_38 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 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(MR_mktag(0), base, 0) = ((MR_Box) (Var_24));
        MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_25));
        MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_26));
        MR_hl_field(MR_mktag(0), base, 3) = (MR_Box) ((MR_Unsigned) (Var_27));
        MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_28));
        MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_29));
        MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_30));
        MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_31));
        MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_32));
        MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (X_4));
        MR_hl_field(MR_mktag(0), base, 10) = ((MR_Box) (Var_34));
        MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_35));
        MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_36));
        MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Var_37));
        MR_hl_field(MR_mktag(0), base, 14) = ((MR_Box) (Var_38));
      }
    }
  }
}

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_9 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_String Var_10 = ((MR_String) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Integer Var_11 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_12 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))) & (MR_Integer) 1);
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_21 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 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(MR_mktag(0), base, 0) = ((MR_Box) (Var_9));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_10));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 3) = (MR_Box) ((MR_Unsigned) (Var_12));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 10) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_21));
      MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 14) = ((MR_Box) (Var_23));
    }
  }
}

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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 14))));
    MR_Word Var_10;
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_String Var_12 = ((MR_String) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Integer Var_13 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_14 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))) & (MR_Integer) 1);
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_21 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))));
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    MR_Word Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 0))));
    MR_Word Var_26 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 1))));
    MR_Word Var_28 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 3))));
    MR_Word Var_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 4))));
    MR_Word Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 5))));
    MR_Word Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 6))));
    MR_Word Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 7))));
    MR_Word Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 8))));
    MR_Word Var_34 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 9))));
    MR_Word Var_35 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 10))));
    MR_Word Var_36 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 11))));
    MR_Word Var_37 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 12))));
    MR_Word Var_38 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 13))));
    MR_Word Var_39 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 14))));

    {
      Var_10 = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_10, 0) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), Var_10, 1) = ((MR_Box) (Var_26));
      MR_hl_field(MR_mktag(0), Var_10, 2) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), Var_10, 3) = ((MR_Box) (Var_28));
      MR_hl_field(MR_mktag(0), Var_10, 4) = ((MR_Box) (Var_29));
      MR_hl_field(MR_mktag(0), Var_10, 5) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), Var_10, 6) = ((MR_Box) (Var_31));
      MR_hl_field(MR_mktag(0), Var_10, 7) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), Var_10, 8) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), Var_10, 9) = ((MR_Box) (Var_34));
      MR_hl_field(MR_mktag(0), Var_10, 10) = ((MR_Box) (Var_35));
      MR_hl_field(MR_mktag(0), Var_10, 11) = ((MR_Box) (Var_36));
      MR_hl_field(MR_mktag(0), Var_10, 12) = ((MR_Box) (Var_37));
      MR_hl_field(MR_mktag(0), Var_10, 13) = ((MR_Box) (Var_38));
      MR_hl_field(MR_mktag(0), Var_10, 14) = ((MR_Box) (Var_39));
    }
    {
      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(MR_mktag(0), base, 0) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 3) = (MR_Box) ((MR_Unsigned) (Var_14));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 10) = ((MR_Box) (Var_21));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(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_9 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_String Var_10 = ((MR_String) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Integer Var_11 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_12 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))) & (MR_Integer) 1);
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_21 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 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(MR_mktag(0), base, 0) = ((MR_Box) (Var_9));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_10));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 3) = (MR_Box) ((MR_Unsigned) (Var_12));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 10) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_21));
      MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 14) = ((MR_Box) (Var_23));
    }
  }
}

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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 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_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
      MR_String Var_25 = ((MR_String) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
      MR_Integer Var_26 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
      MR_Word Var_27 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))) & (MR_Integer) 1);
      MR_Word Var_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
      MR_Word Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
      MR_Word Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
      MR_Word Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
      MR_Word Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
      MR_Word Var_34 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))));
      MR_Word Var_35 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
      MR_Word Var_36 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
      MR_Word Var_37 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
      MR_Word Var_38 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 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(MR_mktag(0), base, 0) = ((MR_Box) (Var_24));
        MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_25));
        MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_26));
        MR_hl_field(MR_mktag(0), base, 3) = (MR_Box) ((MR_Unsigned) (Var_27));
        MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (X_4));
        MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_29));
        MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_30));
        MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_31));
        MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_32));
        MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_33));
        MR_hl_field(MR_mktag(0), base, 10) = ((MR_Box) (Var_34));
        MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_35));
        MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_36));
        MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Var_37));
        MR_hl_field(MR_mktag(0), base, 14) = ((MR_Box) (Var_38));
      }
    }
  }
}

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_38 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))) & (MR_Integer) 1);

    succeeded = (X_4 == Var_38);
    if (succeeded)
      *STATE_VARIABLE_PI_7 = STATE_VARIABLE_PI_0_6;
    else
    {
      MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
      MR_String Var_24 = ((MR_String) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
      MR_Integer Var_25 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
      MR_Word Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
      MR_Word Var_28 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
      MR_Word Var_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
      MR_Word Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
      MR_Word Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
      MR_Word Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
      MR_Word Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))));
      MR_Word Var_34 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
      MR_Word Var_35 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
      MR_Word Var_36 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
      MR_Word Var_37 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 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(MR_mktag(0), base, 0) = ((MR_Box) (Var_23));
        MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_24));
        MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_25));
        MR_hl_field(MR_mktag(0), base, 3) = (MR_Box) ((MR_Unsigned) (X_4));
        MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_27));
        MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_28));
        MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_29));
        MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_30));
        MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_31));
        MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_32));
        MR_hl_field(MR_mktag(0), base, 10) = ((MR_Box) (Var_33));
        MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_34));
        MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_35));
        MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Var_36));
        MR_hl_field(MR_mktag(0), base, 14) = ((MR_Box) (Var_37));
      }
    }
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_set_orig_arity_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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_String Var_10 = ((MR_String) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Word Var_12 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))) & (MR_Integer) 1);
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_21 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 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(MR_mktag(0), base, 0) = ((MR_Box) (Var_9));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_10));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), base, 3) = (MR_Box) ((MR_Unsigned) (Var_12));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 10) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_21));
      MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 14) = ((MR_Box) (Var_23));
    }
  }
}

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_9 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_Integer Var_11 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_12 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))) & (MR_Integer) 1);
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_21 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 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(MR_mktag(0), base, 0) = ((MR_Box) (Var_9));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 3) = (MR_Box) ((MR_Unsigned) (Var_12));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 10) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_21));
      MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 14) = ((MR_Box) (Var_23));
    }
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_proc_table_2_p_0(
  MR_Word STATE_VARIABLE_PI_0_5,
  MR_Word * X_4)
{
  *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_5, (MR_Integer) 13))));
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_clauses_info_2_p_0(
  MR_Word STATE_VARIABLE_PI_0_5,
  MR_Word * X_4)
{
  *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_5, (MR_Integer) 12))));
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_instance_method_arg_types_2_p_0(
  MR_Word STATE_VARIABLE_PI_0_5,
  MR_Word * X_4)
{
  {
    MR_Word Var_6 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_5, (MR_Integer) 14))));

    *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_6, (MR_Integer) 14))));
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_obsolete_in_favour_of_2_p_0(
  MR_Word STATE_VARIABLE_PI_0_5,
  MR_Word * X_4)
{
  {
    MR_Word Var_6 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_5, (MR_Integer) 14))));

    *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_6, (MR_Integer) 13))));
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_assertions_2_p_0(
  MR_Word STATE_VARIABLE_PI_0_5,
  MR_Word * X_4)
{
  {
    MR_Word Var_6 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_5, (MR_Integer) 14))));

    *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_6, (MR_Integer) 12))));
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_var_name_remap_2_p_0(
  MR_Word STATE_VARIABLE_PI_0_5,
  MR_Word * X_4)
{
  {
    MR_Word Var_6 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_5, (MR_Integer) 14))));

    *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_6, (MR_Integer) 11))));
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_arg_modes_maps_2_p_0(
  MR_Word STATE_VARIABLE_PI_0_5,
  MR_Word * X_4)
{
  {
    MR_Word Var_6 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_5, (MR_Integer) 14))));

    *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_6, (MR_Integer) 10))));
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_inst_graph_info_2_p_0(
  MR_Word STATE_VARIABLE_PI_0_5,
  MR_Word * X_4)
{
  {
    MR_Word Var_6 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_5, (MR_Integer) 14))));

    *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_6, (MR_Integer) 9))));
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_unproven_body_constraints_2_p_0(
  MR_Word STATE_VARIABLE_PI_0_5,
  MR_Word * X_4)
{
  {
    MR_Word Var_6 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_5, (MR_Integer) 14))));

    *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_6, (MR_Integer) 8))));
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_constraint_map_2_p_0(
  MR_Word STATE_VARIABLE_PI_0_5,
  MR_Word * X_4)
{
  {
    MR_Word Var_6 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_5, (MR_Integer) 14))));

    *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_6, (MR_Integer) 7))));
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_constraint_proof_map_2_p_0(
  MR_Word STATE_VARIABLE_PI_0_5,
  MR_Word * X_4)
{
  {
    MR_Word Var_6 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_5, (MR_Integer) 14))));

    *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_6, (MR_Integer) 6))));
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_class_context_2_p_0(
  MR_Word STATE_VARIABLE_PI_0_5,
  MR_Word * X_4)
{
  *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_5, (MR_Integer) 11))));
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_external_type_params_2_p_0(
  MR_Word STATE_VARIABLE_PI_0_5,
  MR_Word * X_4)
{
  {
    MR_Word Var_6 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_5, (MR_Integer) 14))));

    *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_6, (MR_Integer) 5))));
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_existq_tvar_binding_2_p_0(
  MR_Word STATE_VARIABLE_PI_0_5,
  MR_Word * X_4)
{
  {
    MR_Word Var_6 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_5, (MR_Integer) 14))));

    *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_6, (MR_Integer) 4))));
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_exist_quant_tvars_2_p_0(
  MR_Word STATE_VARIABLE_PI_0_5,
  MR_Word * X_4)
{
  *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_5, (MR_Integer) 10))));
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_tvar_kind_map_2_p_0(
  MR_Word STATE_VARIABLE_PI_0_5,
  MR_Word * X_4)
{
  {
    MR_Word Var_6 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_5, (MR_Integer) 14))));

    *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_6, (MR_Integer) 3))));
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_typevarset_2_p_0(
  MR_Word STATE_VARIABLE_PI_0_5,
  MR_Word * X_4)
{
  *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_5, (MR_Integer) 9))));
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_arg_types_2_p_0(
  MR_Word STATE_VARIABLE_PI_0_5,
  MR_Word * X_4)
{
  *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_5, (MR_Integer) 7))));
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_markers_2_p_0(
  MR_Word STATE_VARIABLE_PI_0_5,
  MR_Word * X_4)
{
  *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_5, (MR_Integer) 6))));
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_goal_type_2_p_0(
  MR_Word STATE_VARIABLE_PI_0_5,
  MR_Word * X_4)
{
  {
    MR_Word Var_6 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_5, (MR_Integer) 14))));

    *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_6, (MR_Integer) 2))));
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_status_2_p_0(
  MR_Word STATE_VARIABLE_PI_0_5,
  MR_Word * X_4)
{
  *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_5, (MR_Integer) 5))));
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_origin_2_p_0(
  MR_Word STATE_VARIABLE_PI_0_5,
  MR_Word * X_4)
{
  *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_5, (MR_Integer) 4))));
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_cur_user_decl_info_2_p_0(
  MR_Word STATE_VARIABLE_PI_0_5,
  MR_Word * X_4)
{
  {
    MR_Word Var_6 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_5, (MR_Integer) 14))));

    *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_6, (MR_Integer) 1))));
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_context_2_p_0(
  MR_Word STATE_VARIABLE_PI_0_5,
  MR_Word * X_4)
{
  {
    MR_Word Var_6 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_5, (MR_Integer) 14))));

    *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_6, (MR_Integer) 0))));
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_is_pred_or_func_2_p_0(
  MR_Word STATE_VARIABLE_PI_0_5,
  MR_Word * X_4)
{
  *X_4 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_5, (MR_Integer) 3))) & (MR_Integer) 1);
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_orig_arity_2_p_0(
  MR_Word STATE_VARIABLE_PI_0_5,
  MR_Integer * X_4)
{
  *X_4 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_5, (MR_Integer) 2))));
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_name_2_p_0(
  MR_Word STATE_VARIABLE_PI_0_5,
  MR_String * X_4)
{
  *X_4 = ((MR_String) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_5, (MR_Integer) 1))));
}

void MR_CALL 
hlds__hlds_pred__pred_info_get_module_name_2_p_0(
  MR_Word STATE_VARIABLE_PI_0_5,
  MR_Word * X_4)
{
  *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_5, (MR_Integer) 0))));
}

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(MR_mktag(0), PI_3, (MR_Integer) 3))) & (MR_Integer) 1);

    return X_4;
  }
}

MR_Integer MR_CALL 
hlds__hlds_pred__pred_info_orig_arity_1_f_0(
  MR_Word PI_3)
{
  {
    MR_Integer X_4 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), PI_3, (MR_Integer) 2))));

    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(MR_mktag(0), PI_3, (MR_Integer) 1))));

    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(MR_mktag(0), PI_3, (MR_Integer) 0))));

    return X_4;
  }
}

void MR_CALL 
hlds__hlds_pred__define_new_pred_20_p_0(
  MR_Word Origin_21,
  MR_Word Goal0_22,
  MR_Word * Goal_23,
  MR_Word ArgVars0_24,
  MR_Word * ExtraTiTcis_25,
  MR_Word InstMap0_26,
  MR_Word SymName_27,
  MR_Word TVarSet_28,
  MR_Word VarTypes0_29,
  MR_Word ClassContext_30,
  MR_Word RttiVarMaps_31,
  MR_Word VarSet0_32,
  MR_Word InstVarSet_33,
  MR_Word Markers_34,
  MR_Word IsAddressTaken_35,
  MR_Word HasParallelConj_36,
  MR_Word VarNameRemap_37,
  MR_Word ModuleInfo0_38,
  MR_Word * ModuleInfo_39,
  MR_Word * PredProcId_40)
{
  {
    MR_bool succeeded;
    MR_Word GoalInfo_42 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Goal0_22, (MR_Integer) 1))));
    MR_Word InstMapDelta_43;
    MR_Word InstMap_44;
    MR_Word Globals_46;
    MR_Word PredStatus_47;
    MR_Word TypeInfoLiveness_48;
    MR_Word ArgVars_52;
    MR_Word Context_53;
    MR_Word Detism_55;
    MR_Word ArgTypes_56;
    MR_Word ArgModes_57;
    MR_Word ModuleName_58;
    MR_Word SymNameModule_59;
    MR_Word GoalVars0_60;
    MR_Word GoalVars_61;
    MR_Word GoalVarsSet_62;
    MR_Word VarTypes_63;
    MR_Word VarSet_64;
    MR_Word TermInfo_65;
    MR_Word ProcInfo0_67;
    MR_Word ProcInfo_68;
    MR_Word Assertions_69;
    MR_Integer ProcId_71;
    MR_Word PredInfo_72;
    MR_Word PredTable0_73;
    MR_Word PredId_74;
    MR_Word PredTable_75;
    MR_Word GoalExpr_76;

    InstMapDelta_43 = hlds__hlds_goal__goal_info_get_instmap_delta_1_f_0(GoalInfo_42);
    hlds__instmap__apply_instmap_delta_3_p_0(InstMapDelta_43, InstMap0_26, &InstMap_44);
    hlds__hlds_module__module_info_get_globals_2_p_0(ModuleInfo0_38, &Globals_46);
    PredStatus_47 = (MR_Word) (((MR_Box) ((MR_Unsigned) 32U)));
    hlds__hlds_pred__non_special_interface_should_use_typeinfo_liveness_4_p_0(PredStatus_47, IsAddressTaken_35, Globals_46, &TypeInfoLiveness_48);
    switch (TypeInfoLiveness_48) {
      default: /*NOTREACHED*/ MR_assert(0);
      case (MR_Integer) 0:
        {
          ArgVars_52 = ArgVars0_24;
          *ExtraTiTcis_25 = (MR_Word) ((MR_Unsigned) 0U);
        }
        break;
      case (MR_Integer) 1:
        {
          MR_Word NonLocals_49;
          MR_Word ExtraTiTcis0_50;
          MR_Word ExtraTiTcis1_51;

          NonLocals_49 = hlds__hlds_goal__goal_info_get_nonlocals_1_f_0(GoalInfo_42);
          hlds__goal_util__extra_nonlocal_typeinfos_typeclass_infos_5_p_0(RttiVarMaps_31, VarTypes0_29, (MR_Word) ((MR_Unsigned) 0U), NonLocals_49, &ExtraTiTcis0_50);
          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_24, ExtraTiTcis0_50, &ExtraTiTcis1_51);
          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_51, ExtraTiTcis_25);
          ArgVars_52 = mercury__list__f_43_43_2_f_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[1]), *ExtraTiTcis_25, ArgVars0_24);
        }
        break;
    }
    Context_53 = hlds__hlds_goal__goal_info_get_context_1_f_0(GoalInfo_42);
    Detism_55 = hlds__hlds_goal__goal_info_get_determinism_1_f_0(GoalInfo_42);
    hlds__hlds_pred__compute_arg_types_modes_6_p_0(ArgVars_52, VarTypes0_29, InstMap0_26, InstMap_44, &ArgTypes_56, &ArgModes_57);
    hlds__hlds_module__module_info_get_name_2_p_0(ModuleInfo0_38, &ModuleName_58);
    mdbcomp__sym_name__sym_name_get_module_name_default_3_p_0(SymName_27, ModuleName_58, &SymNameModule_59);
    hlds__goal_util__goal_vars_2_p_0(Goal0_22, &GoalVars0_60);
    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_52, GoalVars0_60, &GoalVars_61);
    GoalVarsSet_62 = 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_61);
    hlds__vartypes__vartypes_select_3_p_0(GoalVarsSet_62, VarTypes0_29, &VarTypes_63);
    mercury__varset__select_3_p_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_var_type_0), GoalVarsSet_62, VarSet0_32, &VarSet_64);
    succeeded = hlds__goal_form__goal_cannot_loop_2_p_0(ModuleInfo0_38, Goal0_22);
    if (succeeded)
      TermInfo_65 = (MR_Word) (MR_mkword(MR_mktag(1), &hlds__hlds_pred_scalar_common_3[1]));
    else
      TermInfo_65 = (MR_Word) ((MR_Unsigned) 0U);
    hlds__hlds_pred__proc_info_create_with_declared_detism_16_p_0(Context_53, (MR_Word) ((MR_Unsigned) 0U), VarSet_64, VarTypes_63, ArgVars_52, InstVarSet_33, ArgModes_57, (MR_Integer) 2, (MR_Word) ((MR_Unsigned) 0U), Detism_55, Goal0_22, RttiVarMaps_31, IsAddressTaken_35, HasParallelConj_36, VarNameRemap_37, &ProcInfo0_67);
    hlds__hlds_pred__proc_info_set_maybe_termination_info_3_p_0(TermInfo_65, ProcInfo0_67, &ProcInfo_68);
    mercury__set__init_1_p_0((MR_Word) (&hlds__hlds_promise__hlds__hlds_promise__type_ctor_info_assert_id_0), &Assertions_69);
    hlds__hlds_pred__pred_info_create_17_p_0(SymNameModule_59, SymName_27, (MR_Integer) 0, Context_53, Origin_21, PredStatus_47, Markers_34, ArgTypes_56, TVarSet_28, (MR_Word) ((MR_Unsigned) 0U), ClassContext_30, Assertions_69, VarNameRemap_37, (MR_Word) (&hlds__hlds_pred_scalar_common_3[2]), ProcInfo_68, &ProcId_71, &PredInfo_72);
    hlds__hlds_module__module_info_get_predicate_table_2_p_0(ModuleInfo0_38, &PredTable0_73);
    hlds__pred_table__predicate_table_insert_4_p_0(PredInfo_72, &PredId_74, PredTable0_73, &PredTable_75);
    hlds__hlds_module__module_info_set_predicate_table_3_p_0(PredTable_75, ModuleInfo0_38, ModuleInfo_39);
    {
      GoalExpr_76 = (MR_Word) MR_mkword(MR_mktag(2), MR_new_object(MR_Word, (6 * sizeof(MR_Word)), NULL, NULL));
      MR_hl_field(MR_mktag(2), GoalExpr_76, 0) = ((MR_Box) (PredId_74));
      MR_hl_field(MR_mktag(2), GoalExpr_76, 1) = ((MR_Box) (ProcId_71));
      MR_hl_field(MR_mktag(2), GoalExpr_76, 2) = ((MR_Box) (ArgVars_52));
      MR_hl_field(MR_mktag(2), GoalExpr_76, 3) = (MR_Box) ((MR_Unsigned) ((MR_Integer) 1));
      MR_hl_field(MR_mktag(2), GoalExpr_76, 4) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(2), GoalExpr_76, 5) = ((MR_Box) (SymName_27));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL);
      *Goal_23 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (GoalExpr_76));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (GoalInfo_42));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL);
      *PredProcId_40 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (PredId_74));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (ProcId_71));
    }
  }
}

static void MR_CALL 
hlds__hlds_pred__non_special_interface_should_use_typeinfo_liveness_4_p_0(
  MR_Word PredStatus_5,
  MR_Word IsAddressTaken_6,
  MR_Word Globals_7,
  MR_Word * InterfaceTypeInfoLiveness_8)
{
  {
    MR_bool succeeded = (IsAddressTaken_6 == (MR_Integer) 0);

    if (!(succeeded))
    {
      {
        MR_Word Var_14 = (MR_Word) (PredStatus_5);

        succeeded = (Var_14 != (MR_Word) ((MR_Unsigned) 32U));
      }
      if (!(succeeded))
      {
        succeeded = libs__globals__lookup_bool_option_3_p_1(Globals_7, (MR_Integer) 254, (MR_Integer) 1);
        if (!(succeeded))
        {
          succeeded = libs__globals__lookup_bool_option_3_p_1(Globals_7, (MR_Integer) 255, (MR_Integer) 1);
          if (!(succeeded))
          {
            MR_Word Var_15;

            libs__globals__lookup_bool_option_3_p_0(Globals_7, (MR_Integer) 313, &Var_15);
            succeeded = ((MR_Integer) 1 == Var_15);
          }
        }
      }
    }
    if (succeeded)
      *InterfaceTypeInfoLiveness_8 = (MR_Integer) 1;
    else
      *InterfaceTypeInfoLiveness_8 = (MR_Integer) 0;
  }
}

static void MR_CALL 
hlds__hlds_pred__proc_info_create_with_declared_detism_16_p_0(
  MR_Word MainContext_17,
  MR_Word ItemNumber_18,
  MR_Word VarSet_19,
  MR_Word VarTypes_20,
  MR_Word HeadVars_21,
  MR_Word InstVarSet_22,
  MR_Word Modes_23,
  MR_Word DetismDecl_24,
  MR_Word MaybeDeclaredDetism_25,
  MR_Word Detism_26,
  MR_Word Goal_27,
  MR_Word RttiVarMaps_28,
  MR_Word IsAddressTaken_29,
  MR_Word HasParallelConj_30,
  MR_Word VarNameRemap_31,
  MR_Word * ProcInfo_32)
{
  {
    MR_Word DeletedCallees_37;
    MR_Word RegR_HeadVars_43;
    MR_Word InitialLiveness_46;
    MR_Word StackSlots_47;
    MR_Word Term2Info_56;
    MR_Word ProcSubInfo_62;

    mercury__set__init_1_p_0((MR_Word) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_proc_id_0), &DeletedCallees_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), &RegR_HeadVars_43);
    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_46);
    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_47);
    Term2Info_56 = transform_hlds__term_constr_main_types__term2_info_init_0_f_0();
    {
      ProcSubInfo_62 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), ProcSubInfo_62, 0) = ((MR_Box) (MainContext_17));
      MR_hl_field(MR_mktag(0), ProcSubInfo_62, 1) = ((MR_Box) (ItemNumber_18));
      MR_hl_field(MR_mktag(0), ProcSubInfo_62, 2) = (MR_Box) ((MR_Unsigned) ((MR_Integer) 1));
      MR_hl_field(MR_mktag(0), ProcSubInfo_62, 3) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), ProcSubInfo_62, 4) = (MR_Box) ((MR_Unsigned) (DetismDecl_24));
      MR_hl_field(MR_mktag(0), ProcSubInfo_62, 5) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), ProcSubInfo_62, 6) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), ProcSubInfo_62, 7) = ((MR_Box) (VarNameRemap_31));
      MR_hl_field(MR_mktag(0), ProcSubInfo_62, 8) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), ProcSubInfo_62, 9) = ((MR_Box) (DeletedCallees_37));
      MR_hl_field(MR_mktag(0), ProcSubInfo_62, 10) = (MR_Box) (((((MR_Unsigned) (IsAddressTaken_29) << 3)) | (((((MR_Unsigned) ((MR_Integer) 0) << 2)) | (((((MR_Unsigned) (HasParallelConj_30) << 1)) | (MR_Unsigned) ((MR_Integer) 1)))))));
      MR_hl_field(MR_mktag(0), ProcSubInfo_62, 11) = ((MR_Box) (&hlds__hlds_pred_scalar_common_3[5]));
      MR_hl_field(MR_mktag(0), ProcSubInfo_62, 12) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), ProcSubInfo_62, 13) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), ProcSubInfo_62, 14) = ((MR_Box) (RegR_HeadVars_43));
      MR_hl_field(MR_mktag(0), ProcSubInfo_62, 15) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), ProcSubInfo_62, 16) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), ProcSubInfo_62, 17) = ((MR_Box) (InitialLiveness_46));
      MR_hl_field(MR_mktag(0), ProcSubInfo_62, 18) = ((MR_Box) (StackSlots_47));
      MR_hl_field(MR_mktag(0), ProcSubInfo_62, 19) = (MR_Box) ((MR_Unsigned) ((MR_Integer) 1));
      MR_hl_field(MR_mktag(0), ProcSubInfo_62, 20) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), ProcSubInfo_62, 21) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), ProcSubInfo_62, 22) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), ProcSubInfo_62, 23) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), ProcSubInfo_62, 24) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), ProcSubInfo_62, 25) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), ProcSubInfo_62, 26) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), ProcSubInfo_62, 27) = ((MR_Box) (Term2Info_56));
      MR_hl_field(MR_mktag(0), ProcSubInfo_62, 28) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), ProcSubInfo_62, 29) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), ProcSubInfo_62, 30) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), ProcSubInfo_62, 31) = ((MR_Box) (&hlds__hlds_pred_scalar_common_2[65]));
      MR_hl_field(MR_mktag(0), ProcSubInfo_62, 32) = ((MR_Box) (&hlds__hlds_pred_scalar_common_2[66]));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *ProcInfo_32 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (HeadVars_21));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Goal_27));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (VarSet_19));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (VarTypes_20));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (RttiVarMaps_28));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (InstVarSet_22));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Modes_23));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (MaybeDeclaredDetism_25));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Detism_26));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (ProcSubInfo_62));
    }
  }
}

static void MR_CALL 
hlds__hlds_pred__compute_arg_types_modes_6_p_0(
  MR_Word HeadVar__1_1,
  MR_Word VarTypes_2,
  MR_Word InstMapInit_3,
  MR_Word InstMapFinal_4,
  MR_Word * HeadVar__5_5,
  MR_Word * HeadVar__6_6)
{
  if ((HeadVar__1_1 == (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_10 = ((MR_Word) ((MR_hl_field(MR_mktag(1), HeadVar__1_1, (MR_Integer) 0))));
    MR_Word Vars_11 = ((MR_Word) ((MR_hl_field(MR_mktag(1), HeadVar__1_1, (MR_Integer) 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;

    hlds__vartypes__lookup_var_type_3_p_0(VarTypes_2, Var_10, &Type_15);
    hlds__instmap__instmap_lookup_var_3_p_0(InstMapInit_3, Var_10, &InstInit_19);
    hlds__instmap__instmap_lookup_var_3_p_0(InstMapFinal_4, Var_10, &InstFinal_20);
    {
      Mode_17 = (MR_Word) MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Mode_17, 0) = ((MR_Box) (InstInit_19));
      MR_hl_field(MR_mktag(0), Mode_17, 1) = ((MR_Box) (InstFinal_20));
    }
    hlds__hlds_pred__compute_arg_types_modes_6_p_0(Vars_11, VarTypes_2, InstMapInit_3, InstMapFinal_4, &Types_16, &Modes_18);
    {
      MR_Word base;
      base = (MR_Word) MR_mkword(MR_mktag(1), MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
      *HeadVar__5_5 = base;
      MR_hl_field(MR_mktag(1), base, 0) = ((MR_Box) (Type_15));
      MR_hl_field(MR_mktag(1), base, 1) = ((MR_Box) (Types_16));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_mkword(MR_mktag(1), MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
      *HeadVar__6_6 = base;
      MR_hl_field(MR_mktag(1), base, 0) = ((MR_Box) (Mode_17));
      MR_hl_field(MR_mktag(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(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 13))));
    MR_Word Var_10;
    MR_Word Var_11 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 0))));
    MR_Word Var_12 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 1))));
    MR_Word Var_13 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 2))));
    MR_Word Var_14 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 3))));
    MR_Word Var_15 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 4))));
    MR_Word Var_16 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 5))));
    MR_Word Var_17 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 6))));
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 7))));
    MR_Word Var_19 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 8))));
    MR_Word Var_20 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 9))));
    MR_Word Var_21 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 10))) & (MR_Integer) 7);
    MR_Word Var_22 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 11))));
    MR_Word Var_23 = ((MR_Word) ((MR_hl_field(MR_mktag(0), STATE_VARIABLE_PI_0_6, (MR_Integer) 12))));
    MR_Word Var_24 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 0))));
    MR_Word Var_25 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 1))));
    MR_Word Var_26 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 2))) & (MR_Integer) 1);
    MR_Word Var_27 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 3))));
    MR_Word Var_28 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 4))) & (MR_Integer) 3);
    MR_Word Var_29 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 5))));
    MR_Word Var_30 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 6))));
    MR_Word Var_31 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 7))));
    MR_Word Var_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 8))));
    MR_Word Var_33 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 9))));
    MR_Word Var_38 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 11))));
    MR_Word Var_39 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 12))));
    MR_Word Var_40 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 13))));
    MR_Word Var_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 14))));
    MR_Word Var_42 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 15))));
    MR_Word Var_43 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 16))));
    MR_Word Var_44 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 17))));
    MR_Word Var_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 18))));
    MR_Word Var_46 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 19))) & (MR_Integer) 1);
    MR_Word Var_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 20))));
    MR_Word Var_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 21))));
    MR_Word Var_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 22))));
    MR_Word Var_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 23))));
    MR_Word Var_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 24))));
    MR_Word Var_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 25))));
    MR_Word Var_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 27))));
    MR_Word Var_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 28))));
    MR_Word Var_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 29))));
    MR_Word Var_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 30))));
    MR_Word Var_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 31))));
    MR_Word Var_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 32))));
    MR_Unsigned packed_word_3 = (MR_Unsigned) ((MR_hl_field(MR_mktag(0), Var_9, (MR_Integer) 10)));

    {
      Var_10 = (MR_Word) MR_new_object(MR_Word, (33 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), Var_10, 0) = ((MR_Box) (Var_24));
      MR_hl_field(MR_mktag(0), Var_10, 1) = ((MR_Box) (Var_25));
      MR_hl_field(MR_mktag(0), Var_10, 2) = (MR_Box) ((MR_Unsigned) (Var_26));
      MR_hl_field(MR_mktag(0), Var_10, 3) = ((MR_Box) (Var_27));
      MR_hl_field(MR_mktag(0), Var_10, 4) = (MR_Box) ((MR_Unsigned) (Var_28));
      MR_hl_field(MR_mktag(0), Var_10, 5) = ((MR_Box) (Var_29));
      MR_hl_field(MR_mktag(0), Var_10, 6) = ((MR_Box) (Var_30));
      MR_hl_field(MR_mktag(0), Var_10, 7) = ((MR_Box) (Var_31));
      MR_hl_field(MR_mktag(0), Var_10, 8) = ((MR_Box) (Var_32));
      MR_hl_field(MR_mktag(0), Var_10, 9) = ((MR_Box) (Var_33));
      MR_hl_field(MR_mktag(0), Var_10, 10) = (MR_Box) (packed_word_3);
      MR_hl_field(MR_mktag(0), Var_10, 11) = ((MR_Box) (Var_38));
      MR_hl_field(MR_mktag(0), Var_10, 12) = ((MR_Box) (Var_39));
      MR_hl_field(MR_mktag(0), Var_10, 13) = ((MR_Box) (Var_40));
      MR_hl_field(MR_mktag(0), Var_10, 14) = ((MR_Box) (Var_41));
      MR_hl_field(MR_mktag(0), Var_10, 15) = ((MR_Box) (Var_42));
      MR_hl_field(MR_mktag(0), Var_10, 16) = ((MR_Box) (Var_43));
      MR_hl_field(MR_mktag(0), Var_10, 17) = ((MR_Box) (Var_44));
      MR_hl_field(MR_mktag(0), Var_10, 18) = ((MR_Box) (Var_45));
      MR_hl_field(MR_mktag(0), Var_10, 19) = (MR_Box) ((MR_Unsigned) (Var_46));
      MR_hl_field(MR_mktag(0), Var_10, 20) = ((MR_Box) (Var_47));
      MR_hl_field(MR_mktag(0), Var_10, 21) = ((MR_Box) (Var_48));
      MR_hl_field(MR_mktag(0), Var_10, 22) = ((MR_Box) (Var_49));
      MR_hl_field(MR_mktag(0), Var_10, 23) = ((MR_Box) (Var_50));
      MR_hl_field(MR_mktag(0), Var_10, 24) = ((MR_Box) (Var_51));
      MR_hl_field(MR_mktag(0), Var_10, 25) = ((MR_Box) (Var_52));
      MR_hl_field(MR_mktag(0), Var_10, 26) = ((MR_Box) (X_4));
      MR_hl_field(MR_mktag(0), Var_10, 27) = ((MR_Box) (Var_54));
      MR_hl_field(MR_mktag(0), Var_10, 28) = ((MR_Box) (Var_55));
      MR_hl_field(MR_mktag(0), Var_10, 29) = ((MR_Box) (Var_56));
      MR_hl_field(MR_mktag(0), Var_10, 30) = ((MR_Box) (Var_57));
      MR_hl_field(MR_mktag(0), Var_10, 31) = ((MR_Box) (Var_58));
      MR_hl_field(MR_mktag(0), Var_10, 32) = ((MR_Box) (Var_59));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (14 * sizeof(MR_Word)), NULL, NULL);
      *STATE_VARIABLE_PI_7 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (Var_11));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (Var_12));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Var_13));
      MR_hl_field(MR_mktag(0), base, 3) = ((MR_Box) (Var_14));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Var_15));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Var_16));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Var_17));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (Var_18));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (Var_19));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (Var_20));
      MR_hl_field(MR_mktag(0), base, 10) = (MR_Box) ((MR_Unsigned) (Var_21));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (Var_22));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (Var_23));
      MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (Var_10));
    }
  }
}

void MR_CALL 
hlds__hlds_pred__pred_create_30_p_0(
  MR_Word ModuleName_31,
  MR_String PredName_32,
  MR_Integer Arity_33,
  MR_Word PredOrFunc_34,
  MR_Word Origin_35,
  MR_Word Status_36,
  MR_Word Markers_37,
  MR_Word ArgTypes_38,
  MR_Word DeclTypeVarSet_39,
  MR_Word TypeVarSet_40,
  MR_Word ExistQVars_41,
  MR_Word ClassContext_42,
  MR_Word ClausesInfo_43,
  MR_Word ProcTable_44,
  MR_Word Context_45,
  MR_Word CurUserDecl_46,
  MR_Word GoalType_47,
  MR_Word Kinds_48,
  MR_Word ExistQVarBindings_49,
  MR_Word HeadTypeParams_50,
  MR_Word ClassProofs_51,
  MR_Word ClassConstraintMap_52,
  MR_Word UnprovenBodyConstraints_53,
  MR_Word InstGraphInfo_54,
  MR_Word ArgModesMaps_55,
  MR_Word VarNameRemap_56,
  MR_Word Assertions_57,
  MR_Word ObsoleteInFavourOf_58,
  MR_Word InstanceMethodArgTypes_59,
  MR_Word * PredInfo_60)
{
  {
    MR_Word PredSubInfo_61;

    {
      PredSubInfo_61 = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), PredSubInfo_61, 0) = ((MR_Box) (Context_45));
      MR_hl_field(MR_mktag(0), PredSubInfo_61, 1) = ((MR_Box) (CurUserDecl_46));
      MR_hl_field(MR_mktag(0), PredSubInfo_61, 2) = ((MR_Box) (GoalType_47));
      MR_hl_field(MR_mktag(0), PredSubInfo_61, 3) = ((MR_Box) (Kinds_48));
      MR_hl_field(MR_mktag(0), PredSubInfo_61, 4) = ((MR_Box) (ExistQVarBindings_49));
      MR_hl_field(MR_mktag(0), PredSubInfo_61, 5) = ((MR_Box) (HeadTypeParams_50));
      MR_hl_field(MR_mktag(0), PredSubInfo_61, 6) = ((MR_Box) (ClassProofs_51));
      MR_hl_field(MR_mktag(0), PredSubInfo_61, 7) = ((MR_Box) (ClassConstraintMap_52));
      MR_hl_field(MR_mktag(0), PredSubInfo_61, 8) = ((MR_Box) (UnprovenBodyConstraints_53));
      MR_hl_field(MR_mktag(0), PredSubInfo_61, 9) = ((MR_Box) (InstGraphInfo_54));
      MR_hl_field(MR_mktag(0), PredSubInfo_61, 10) = ((MR_Box) (ArgModesMaps_55));
      MR_hl_field(MR_mktag(0), PredSubInfo_61, 11) = ((MR_Box) (VarNameRemap_56));
      MR_hl_field(MR_mktag(0), PredSubInfo_61, 12) = ((MR_Box) (Assertions_57));
      MR_hl_field(MR_mktag(0), PredSubInfo_61, 13) = ((MR_Box) (ObsoleteInFavourOf_58));
      MR_hl_field(MR_mktag(0), PredSubInfo_61, 14) = ((MR_Box) (InstanceMethodArgTypes_59));
    }
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
      *PredInfo_60 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (ModuleName_31));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (PredName_32));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Arity_33));
      MR_hl_field(MR_mktag(0), base, 3) = (MR_Box) ((MR_Unsigned) (PredOrFunc_34));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Origin_35));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Status_36));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Markers_37));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (ArgTypes_38));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (DeclTypeVarSet_39));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (TypeVarSet_40));
      MR_hl_field(MR_mktag(0), base, 10) = ((MR_Box) (ExistQVars_41));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (ClassContext_42));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (ClausesInfo_43));
      MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (ProcTable_44));
      MR_hl_field(MR_mktag(0), base, 14) = ((MR_Box) (PredSubInfo_61));
    }
  }
}

void MR_CALL 
hlds__hlds_pred__pred_prepare_to_clone_30_p_0(
  MR_Word PredInfo_31,
  MR_Word * ModuleName_32,
  MR_String * PredName_33,
  MR_Integer * Arity_34,
  MR_Word * PredOrFunc_35,
  MR_Word * Origin_36,
  MR_Word * Status_37,
  MR_Word * Markers_38,
  MR_Word * ArgTypes_39,
  MR_Word * DeclTypeVarSet_40,
  MR_Word * TypeVarSet_41,
  MR_Word * ExistQVars_42,
  MR_Word * ClassContext_43,
  MR_Word * ClausesInfo_44,
  MR_Word * ProcTable_45,
  MR_Word * Context_46,
  MR_Word * CurUserDecl_47,
  MR_Word * GoalType_48,
  MR_Word * Kinds_49,
  MR_Word * ExistQVarBindings_50,
  MR_Word * HeadTypeParams_51,
  MR_Word * ClassProofs_52,
  MR_Word * ClassConstraintMap_53,
  MR_Word * UnprovenBodyConstraints_54,
  MR_Word * InstGraphInfo_55,
  MR_Word * ArgModesMaps_56,
  MR_Word * VarNameRemap_57,
  MR_Word * Assertions_58,
  MR_Word * ObsoleteInFavourOf_59,
  MR_Word * InstanceMethodArgTypes_60)
{
  {
    MR_Word PredSubInfo_61;

    *ModuleName_32 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PredInfo_31, (MR_Integer) 0))));
    *PredName_33 = ((MR_String) ((MR_hl_field(MR_mktag(0), PredInfo_31, (MR_Integer) 1))));
    *Arity_34 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), PredInfo_31, (MR_Integer) 2))));
    *PredOrFunc_35 = ((MR_Unsigned) ((MR_hl_field(MR_mktag(0), PredInfo_31, (MR_Integer) 3))) & (MR_Integer) 1);
    *Origin_36 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PredInfo_31, (MR_Integer) 4))));
    *Status_37 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PredInfo_31, (MR_Integer) 5))));
    *Markers_38 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PredInfo_31, (MR_Integer) 6))));
    *ArgTypes_39 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PredInfo_31, (MR_Integer) 7))));
    *DeclTypeVarSet_40 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PredInfo_31, (MR_Integer) 8))));
    *TypeVarSet_41 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PredInfo_31, (MR_Integer) 9))));
    *ExistQVars_42 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PredInfo_31, (MR_Integer) 10))));
    *ClassContext_43 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PredInfo_31, (MR_Integer) 11))));
    *ClausesInfo_44 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PredInfo_31, (MR_Integer) 12))));
    *ProcTable_45 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PredInfo_31, (MR_Integer) 13))));
    PredSubInfo_61 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PredInfo_31, (MR_Integer) 14))));
    *Context_46 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PredSubInfo_61, (MR_Integer) 0))));
    *CurUserDecl_47 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PredSubInfo_61, (MR_Integer) 1))));
    *GoalType_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PredSubInfo_61, (MR_Integer) 2))));
    *Kinds_49 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PredSubInfo_61, (MR_Integer) 3))));
    *ExistQVarBindings_50 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PredSubInfo_61, (MR_Integer) 4))));
    *HeadTypeParams_51 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PredSubInfo_61, (MR_Integer) 5))));
    *ClassProofs_52 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PredSubInfo_61, (MR_Integer) 6))));
    *ClassConstraintMap_53 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PredSubInfo_61, (MR_Integer) 7))));
    *UnprovenBodyConstraints_54 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PredSubInfo_61, (MR_Integer) 8))));
    *InstGraphInfo_55 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PredSubInfo_61, (MR_Integer) 9))));
    *ArgModesMaps_56 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PredSubInfo_61, (MR_Integer) 10))));
    *VarNameRemap_57 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PredSubInfo_61, (MR_Integer) 11))));
    *Assertions_58 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PredSubInfo_61, (MR_Integer) 12))));
    *ObsoleteInFavourOf_59 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PredSubInfo_61, (MR_Integer) 13))));
    *InstanceMethodArgTypes_60 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PredSubInfo_61, (MR_Integer) 14))));
  }
}

void MR_CALL 
hlds__hlds_pred__pred_info_create_17_p_0(
  MR_Word ModuleName_18,
  MR_Word PredSymName_19,
  MR_Word PredOrFunc_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_38;
    MR_Word HeadTypeParams_39;
    MR_Word ClassProofs_40;
    MR_Word ClassConstraintMap_41;
    MR_Word InstGraphInfo_43;
    MR_Word PredSubInfo_47;
    MR_Word VarSet_48;
    MR_Word VarTypes_49;
    MR_Word TVarNameMap_50;
    MR_Word HeadVars_51;
    MR_Word HeadVarVec_52;
    MR_Word ClausesRep_53;
    MR_Word ItemNumbers_54;
    MR_Word RttiVarMaps_55;
    MR_Word ClausesInfo_56;
    MR_String PredName_57;
    MR_Integer Arity_58;
    MR_Word ProcTable0_59;
    MR_Word ProcTable_60;
    MR_Word List_92;

    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__type_vars_list_2_p_0(ArgTypes_25, &TVars_38);
    mercury__list__delete_elems_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[0]), TVars_38, ExistQVars_27, &HeadTypeParams_39);
    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_40);
    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_41);
    InstGraphInfo_43 = hlds__inst_graph__inst_graph_info_init_0_f_0();
    {
      PredSubInfo_47 = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), PredSubInfo_47, 0) = ((MR_Box) (Context_21));
      MR_hl_field(MR_mktag(0), PredSubInfo_47, 1) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), PredSubInfo_47, 2) = ((MR_Box) (GoalType_31));
      MR_hl_field(MR_mktag(0), PredSubInfo_47, 3) = ((MR_Box) (Kinds_36));
      MR_hl_field(MR_mktag(0), PredSubInfo_47, 4) = ((MR_Box) (ExistQVarBindings_37));
      MR_hl_field(MR_mktag(0), PredSubInfo_47, 5) = ((MR_Box) (HeadTypeParams_39));
      MR_hl_field(MR_mktag(0), PredSubInfo_47, 6) = ((MR_Box) (ClassProofs_40));
      MR_hl_field(MR_mktag(0), PredSubInfo_47, 7) = ((MR_Box) (ClassConstraintMap_41));
      MR_hl_field(MR_mktag(0), PredSubInfo_47, 8) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), PredSubInfo_47, 9) = ((MR_Box) (InstGraphInfo_43));
      MR_hl_field(MR_mktag(0), PredSubInfo_47, 10) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), PredSubInfo_47, 11) = ((MR_Box) (VarNameRemap_30));
      MR_hl_field(MR_mktag(0), PredSubInfo_47, 12) = ((MR_Box) (Assertions_29));
      MR_hl_field(MR_mktag(0), PredSubInfo_47, 13) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), PredSubInfo_47, 14) = ((MR_Box) ((MR_Unsigned) 0U));
    }
    VarSet_48 = ((MR_Word) ((MR_hl_field(MR_mktag(0), ProcInfo_32, (MR_Integer) 2))));
    hlds__hlds_pred__proc_info_get_vartypes_2_p_0(ProcInfo_32, &VarTypes_49);
    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_50);
    hlds__hlds_pred__proc_info_get_headvars_2_p_0(ProcInfo_32, &HeadVars_51);
    HeadVarVec_52 = hlds__hlds_args__proc_arg_vector_init_2_f_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[1]), PredOrFunc_20, HeadVars_51);
    ClausesRep_53 = hlds__hlds_clauses__init_clauses_rep_0_f_0();
    ItemNumbers_54 = hlds__hlds_clauses__init_clause_item_numbers_user_0_f_0();
    hlds__hlds_pred__proc_info_get_rtti_varmaps_2_p_0(ProcInfo_32, &RttiVarMaps_55);
    {
      ClausesInfo_56 = (MR_Word) MR_new_object(MR_Word, (9 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), ClausesInfo_56, 0) = ((MR_Box) (VarSet_48));
      MR_hl_field(MR_mktag(0), ClausesInfo_56, 1) = ((MR_Box) (TVarNameMap_50));
      MR_hl_field(MR_mktag(0), ClausesInfo_56, 2) = ((MR_Box) (VarTypes_49));
      MR_hl_field(MR_mktag(0), ClausesInfo_56, 3) = ((MR_Box) (VarTypes_49));
      MR_hl_field(MR_mktag(0), ClausesInfo_56, 4) = ((MR_Box) (HeadVarVec_52));
      MR_hl_field(MR_mktag(0), ClausesInfo_56, 5) = ((MR_Box) (ClausesRep_53));
      MR_hl_field(MR_mktag(0), ClausesInfo_56, 6) = ((MR_Box) (ItemNumbers_54));
      MR_hl_field(MR_mktag(0), ClausesInfo_56, 7) = ((MR_Box) (RttiVarMaps_55));
      MR_hl_field(MR_mktag(0), ClausesInfo_56, 8) = (MR_Box) (((((MR_Unsigned) ((MR_Integer) 0) << 1)) | (MR_Unsigned) ((MR_Integer) 0)));
    }
    PredName_57 = mdbcomp__sym_name__unqualify_name_1_f_0(PredSymName_19);
    mercury__list__length_2_p_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_type_0), ArgTypes_25, &Arity_58);
    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_59);
    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_59, &List_92);
    mercury__list__length_2_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_1[0]), List_92, 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_59, &ProcTable_60);
    {
      MR_Word base;
      base = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
      *PredInfo_34 = base;
      MR_hl_field(MR_mktag(0), base, 0) = ((MR_Box) (ModuleName_18));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (PredName_57));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Arity_58));
      MR_hl_field(MR_mktag(0), base, 3) = (MR_Box) ((MR_Unsigned) (PredOrFunc_20));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Origin_22));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Status_23));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Markers_24));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (ArgTypes_25));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (TypeVarSet_26));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (TypeVarSet_26));
      MR_hl_field(MR_mktag(0), base, 10) = ((MR_Box) (ExistQVars_27));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (ClassContext_28));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (ClausesInfo_56));
      MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (ProcTable_60));
      MR_hl_field(MR_mktag(0), base, 14) = ((MR_Box) (PredSubInfo_47));
    }
  }
}

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(MR_mktag(0), PI_3, (MR_Integer) 4))));
}

void MR_CALL 
hlds__hlds_pred__proc_info_get_vartypes_2_p_0(
  MR_Word PI_3,
  MR_Word * X_4)
{
  *X_4 = ((MR_Word) ((MR_hl_field(MR_mktag(0), PI_3, (MR_Integer) 3))));
}

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(MR_mktag(0), PI_3, (MR_Integer) 0))));
}

void MR_CALL 
hlds__hlds_pred__pred_info_init_19_p_0(
  MR_Word ModuleName_20,
  MR_Word PredSymName_21,
  MR_Integer Arity_22,
  MR_Word PredOrFunc_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_41;
    MR_Word HeadTypeParams_42;
    MR_Word InstGraphInfo_44;
    MR_Word Assertions_46;
    MR_Word PredSubInfo_49;
    MR_Word PredModuleName_50;
    MR_String PredName_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__type_vars_list_2_p_0(ArgTypes_30, &TVars_41);
    mercury__list__delete_elems_3_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_2[0]), TVars_41, ExistQVars_32, &HeadTypeParams_42);
    InstGraphInfo_44 = 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_46);
    {
      PredSubInfo_49 = (MR_Word) MR_new_object(MR_Word, (15 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(MR_mktag(0), PredSubInfo_49, 0) = ((MR_Box) (Context_24));
      MR_hl_field(MR_mktag(0), PredSubInfo_49, 1) = ((MR_Box) (CurUserDecl_27));
      MR_hl_field(MR_mktag(0), PredSubInfo_49, 2) = ((MR_Box) (GoalType_28));
      MR_hl_field(MR_mktag(0), PredSubInfo_49, 3) = ((MR_Box) (Kinds_39));
      MR_hl_field(MR_mktag(0), PredSubInfo_49, 4) = ((MR_Box) (ExistQVarBindings_40));
      MR_hl_field(MR_mktag(0), PredSubInfo_49, 5) = ((MR_Box) (HeadTypeParams_42));
      MR_hl_field(MR_mktag(0), PredSubInfo_49, 6) = ((MR_Box) (ClassProofs_34));
      MR_hl_field(MR_mktag(0), PredSubInfo_49, 7) = ((MR_Box) (ClassConstraintMap_35));
      MR_hl_field(MR_mktag(0), PredSubInfo_49, 8) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), PredSubInfo_49, 9) = ((MR_Box) (InstGraphInfo_44));
      MR_hl_field(MR_mktag(0), PredSubInfo_49, 10) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), PredSubInfo_49, 11) = ((MR_Box) (VarNameRemap_37));
      MR_hl_field(MR_mktag(0), PredSubInfo_49, 12) = ((MR_Box) (Assertions_46));
      MR_hl_field(MR_mktag(0), PredSubInfo_49, 13) = ((MR_Box) ((MR_Unsigned) 0U));
      MR_hl_field(MR_mktag(0), PredSubInfo_49, 14) = ((MR_Box) ((MR_Unsigned) 0U));
    }
    mdbcomp__sym_name__sym_name_get_module_name_default_3_p_0(PredSymName_21, ModuleName_20, &PredModuleName_50);
    PredName_51 = mdbcomp__sym_name__unqualify_name_1_f_0(PredSymName_21);
    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(MR_mktag(0), base, 0) = ((MR_Box) (PredModuleName_50));
      MR_hl_field(MR_mktag(0), base, 1) = ((MR_Box) (PredName_51));
      MR_hl_field(MR_mktag(0), base, 2) = ((MR_Box) (Arity_22));
      MR_hl_field(MR_mktag(0), base, 3) = (MR_Box) ((MR_Unsigned) (PredOrFunc_23));
      MR_hl_field(MR_mktag(0), base, 4) = ((MR_Box) (Origin_25));
      MR_hl_field(MR_mktag(0), base, 5) = ((MR_Box) (Status_26));
      MR_hl_field(MR_mktag(0), base, 6) = ((MR_Box) (Markers_29));
      MR_hl_field(MR_mktag(0), base, 7) = ((MR_Box) (ArgTypes_30));
      MR_hl_field(MR_mktag(0), base, 8) = ((MR_Box) (TypeVarSet_31));
      MR_hl_field(MR_mktag(0), base, 9) = ((MR_Box) (TypeVarSet_31));
      MR_hl_field(MR_mktag(0), base, 10) = ((MR_Box) (ExistQVars_32));
      MR_hl_field(MR_mktag(0), base, 11) = ((MR_Box) (ClassContext_33));
      MR_hl_field(MR_mktag(0), base, 12) = ((MR_Box) (ClausesInfo_36));
      MR_hl_field(MR_mktag(0), base, 13) = ((MR_Box) (ProcTable_52));
      MR_hl_field(MR_mktag(0), base, 14) = ((MR_Box) (PredSubInfo_49));
    }
  }
}

void MR_CALL 
hlds__hlds_pred__marker_name_2_p_0(
  MR_Word HeadVar__1_1,
  MR_String * HeadVar__2_2)
{
  *HeadVar__2_2 = ((&hlds__hlds_pred_vector_common_4[0 + HeadVar__1_1]))->hlds__hlds_pred__vector_common_type_4_0__vct_4_f_0;
}

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 = mercury__set__member_2_p_0((MR_Word) (&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_marker_0), ((MR_Box) ((MR_Integer) 21)), Markers_3);
    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_mode_id_2_p_0(
  MR_Word Procs_3,
  MR_Integer * ModeId_4)
{
  {
    MR_Word List_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), Procs_3, &List_5);
    mercury__list__length_2_p_0((MR_Word) (&hlds__hlds_pred_scalar_common_1[0]), List_5, ModeId_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(MR_mktag(0), HeadVar__1_1, (MR_Integer) 0))));
    MR_Integer ProcId_4 = ((MR_Integer) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 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(MR_mktag(0), HeadVar__2_2, 0) = ((MR_Box) (Var_5));
      MR_hl_field(MR_mktag(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(MR_mktag(0), HeadVar__1_1, (MR_Integer) 1))));
    MR_Word Var_5 = ((MR_Word) ((MR_hl_field(MR_mktag(0), HeadVar__1_1, (MR_Integer) 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(MR_mktag(0), HeadVar__2_2, 0) = ((MR_Box) (PredId_3));
      MR_hl_field(MR_mktag(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(MR_mktag(0), HeadVar__1_1, (MR_Integer) 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(MR_mktag(0), HeadVar__1_1, (MR_Integer) 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_proc_succeed_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  {
    MR_bool succeeded;

    succeeded = hlds__hlds_pred____Unify____can_proc_succeed_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
    return succeeded;
  }
}

static void MR_CALL 
hlds__hlds_pred____Compare____can_proc_succeed_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_proc_succeed_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____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____need_to_requantify_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  {
    MR_bool succeeded;

    succeeded = hlds__hlds_pred____Unify____need_to_requantify_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
    return succeeded;
  }
}

static void MR_CALL 
hlds__hlds_pred____Compare____need_to_requantify_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____need_to_requantify_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_creation_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  {
    MR_bool succeeded;

    succeeded = hlds__hlds_pred____Unify____pred_creation_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
    return succeeded;
  }
}

static void MR_CALL 
hlds__hlds_pred____Compare____pred_creation_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_creation_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_marker_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  {
    MR_bool succeeded;

    succeeded = hlds__hlds_pred____Unify____pred_marker_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
    return succeeded;
  }
}

static void MR_CALL 
hlds__hlds_pred____Compare____pred_marker_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_marker_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_markers_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  {
    MR_bool succeeded;

    succeeded = hlds__hlds_pred____Unify____pred_markers_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
    return succeeded;
  }
}

static void MR_CALL 
hlds__hlds_pred____Compare____pred_markers_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_markers_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_origin_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  {
    MR_bool succeeded;

    succeeded = hlds__hlds_pred____Unify____pred_origin_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
    return succeeded;
  }
}

static void MR_CALL 
hlds__hlds_pred____Compare____pred_origin_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_origin_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_proc_list_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  {
    MR_bool succeeded;

    succeeded = hlds__hlds_pred____Unify____pred_proc_list_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
    return succeeded;
  }
}

static void MR_CALL 
hlds__hlds_pred____Compare____pred_proc_list_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_list_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____pred_transformation_0_0_10001(
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2)
{
  {
    MR_bool succeeded;

    succeeded = hlds__hlds_pred____Unify____pred_transformation_0_0(((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
    return succeeded;
  }
}

static void MR_CALL 
hlds__hlds_pred____Compare____pred_transformation_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_transformation_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_proc_succeed_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_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_need_to_requantify_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_creation_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_marker_0);
	MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_markers_0);
	MR_register_type_ctor_info(&hlds__hlds_pred__hlds__hlds_pred__type_ctor_info_pred_origin_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_proc_list_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_pred_transformation_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.
