/*
** Automatically generated from `parse_tree_out_pragma.m'
** by the Mercury compiler,
** version rotd-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 parse_tree.parse_tree_out_pragma.
// :- implementation.

/*
INIT mercury__parse_tree__parse_tree_out_pragma__init
ENDINIT
*/

#include "parse_tree.parse_tree_out_pragma.mih"


#include "array.mih"
#include "assoc_list.mih"
#include "bitmap.mih"
#include "bool.mih"
#include "builtin.mih"
#include "char.mih"
#include "construct.mih"
#include "cord.mih"
#include "deconstruct.mih"
#include "enum.mih"
#include "getopt.mih"
#include "integer.mih"
#include "io.mih"
#include "libs.mih"
#include "list.mih"
#include "map.mih"
#include "maybe.mih"
#include "mdbcomp.mih"
#include "one_or_more.mih"
#include "ops.mih"
#include "pair.mih"
#include "parse_tree.mih"
#include "pretty_printer.mih"
#include "private_builtin.mih"
#include "recompilation.mih"
#include "require.mih"
#include "set.mih"
#include "set_ordlist.mih"
#include "sparse_bitset.mih"
#include "stream.mih"
#include "string.mih"
#include "term.mih"
#include "term_context.mih"
#include "term_io.mih"
#include "time.mih"
#include "tree234.mih"
#include "type_desc.mih"
#include "unit.mih"
#include "univ.mih"
#include "varset.mih"
#include "libs.compiler_util.mih"
#include "libs.file_util.mih"
#include "libs.globals.mih"
#include "libs.indent.mih"
#include "libs.op_mode.mih"
#include "libs.optimization_options.mih"
#include "libs.options.mih"
#include "libs.rat.mih"
#include "libs.timestamp.mih"
#include "libs.trace_params.mih"
#include "mdbcomp.feedback.mih"
#include "mdbcomp.prim_data.mih"
#include "mdbcomp.sym_name.mih"
#include "parse_tree.error_spec.mih"
#include "parse_tree.maybe_error.mih"
#include "parse_tree.parse_tree_out_info.mih"
#include "parse_tree.parse_tree_out_inst.mih"
#include "parse_tree.parse_tree_out_misc.mih"
#include "parse_tree.parse_tree_out_pred_decl.mih"
#include "parse_tree.parse_tree_out_sym_name.mih"
#include "parse_tree.parse_tree_out_term.mih"
#include "parse_tree.parse_tree_out_type.mih"
#include "parse_tree.parse_tree_output.mih"
#include "parse_tree.prog_ctgc.mih"
#include "parse_tree.prog_data.mih"
#include "parse_tree.prog_data_foreign.mih"
#include "parse_tree.prog_data_pragma.mih"
#include "parse_tree.prog_data_rare.mih"
#include "parse_tree.prog_item.mih"
#include "parse_tree.prog_item_inst_mode.mih"
#include "parse_tree.prog_item_pragma.mih"
#include "parse_tree.prog_item_pred_proc_id.mih"
#include "parse_tree.prog_item_type.mih"
#include "parse_tree.prog_util.mih"
#include "parse_tree.set_of_var.mih"
#include "parse_tree.var_db.mih"
#include "parse_tree.var_table.mih"
#include "parse_tree.vartypes.mih"
#include "recompilation.item_types.mih"
#include "string.builder.mih"
#include "string.format.mih"
#include "string.parse_util.mih"
#include "mdbcomp.feedback.feedback_info.mih"




static const MR_FA_PseudoTypeInfo_Struct1 parse_tree__parse_tree_out_pragma__varset__pti_varset_1__plain_parse_tree__prog_data__type_ctor_info_tvar_type_0;

static const MR_FA_PseudoTypeInfo_Struct1 parse_tree__parse_tree_out_pragma__one_or_more__pti_one_or_more_1__plain_parse_tree__prog_data_pragma__type_ctor_info_tvar_subst_0;

static const MR_FA_PseudoTypeInfo_Struct1 parse_tree__parse_tree_out_pragma__maybe__pti_maybe_1__plain_parse_tree__prog_data_pragma__type_ctor_info_arg_tabling_method_0;

static const MR_FA_PseudoTypeInfo_Struct1 parse_tree__parse_tree_out_pragma__varset__pti_varset_1__plain_parse_tree__prog_data__type_ctor_info_prog_var_type_0;

static const MR_FA_PseudoTypeInfo_Struct2 parse_tree__parse_tree_out_pragma__pair__pti_pair_2__plain_parse_tree__prog_data_pragma__type_ctor_info_datastruct_0__plain_parse_tree__prog_data_pragma__type_ctor_info_datastruct_0;

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_101_115_99_97_112_101_100_95_99_104_97_114_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_16,
  MR_Word S_5,
  MR_Char Char_6);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_101_115_99_97_112_101_100_95_99_104_97_114_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_16,
  MR_Char Char_6,
  MR_Word STATE_VARIABLE_U_0_9,
  MR_Word * STATE_VARIABLE_U_10);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_114_101_113_117_105_114_101_100_95_102_101_97_116_117_114_101_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_11,
  MR_Word Feature_5,
  MR_Word S_6);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_114_101_113_117_105_114_101_100_95_102_101_97_116_117_114_101_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_11,
  MR_Word Feature_5,
  MR_Word STATE_VARIABLE_U_0_9,
  MR_Word * STATE_VARIABLE_U_10);

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_105_116_101_109_95_100_101_99_108_95_112_114_97_103_109_97_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0_2(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1);

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_105_116_101_109_95_100_101_99_108_95_112_114_97_103_109_97_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_111_105_115_117_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_43,
  MR_Word OISU_5,
  MR_Word S_6);

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_105_116_101_109_95_100_101_99_108_95_112_114_97_103_109_97_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0_2(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1);

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_105_116_101_109_95_100_101_99_108_95_112_114_97_103_109_97_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_111_105_115_117_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_43,
  MR_Word OISU_5,
  MR_Word STATE_VARIABLE_U_0_16,
  MR_Word * STATE_VARIABLE_U_17);

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

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_102_111_114_101_105_103_110_95_99_111_100_101_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_23,
  MR_Word FCInfo_5,
  MR_Word S_6);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_114_101_113_117_105_114_101_95_102_101_97_116_117_114_101_95_115_101_116_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_114_101_113_117_105_114_101_95_102_101_97_116_117_114_101_95_115_101_116_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_20,
  MR_Word RFSInfo_5,
  MR_Word S_6);

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_97_98_108_101_100_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_97_98_108_101_100_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_62,
  MR_Word Tabled_5,
  MR_Word S_6);

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

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_102_111_114_101_105_103_110_95_99_111_100_101_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_23,
  MR_Word FCInfo_5,
  MR_Word STATE_VARIABLE_U_0_15,
  MR_Word * STATE_VARIABLE_U_16);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_114_101_113_117_105_114_101_95_102_101_97_116_117_114_101_95_115_101_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_114_101_113_117_105_114_101_95_102_101_97_116_117_114_101_95_115_101_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_20,
  MR_Word RFSInfo_5,
  MR_Word STATE_VARIABLE_U_0_12,
  MR_Word * STATE_VARIABLE_U_13);

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_97_98_108_101_100_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_97_98_108_101_100_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_62,
  MR_Word Tabled_5,
  MR_Word STATE_VARIABLE_U_0_32,
  MR_Word * STATE_VARIABLE_U_33);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_102_95_115_121_109_95_110_97_109_101_95_117_115_101_114_95_97_114_105_116_121_95_108_105_115_116_95_108_97_103_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_24,
  MR_Word PredSpec_6,
  MR_Word PredSpecs_7,
  MR_Word S_8);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_102_95_115_121_109_95_110_97_109_101_95_117_115_101_114_95_97_114_105_116_121_95_108_105_115_116_95_108_97_103_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_24,
  MR_Word PredSpec_6,
  MR_Word PredSpecs_7,
  MR_Word STATE_VARIABLE_U_0_15,
  MR_Word * STATE_VARIABLE_U_16);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_102_111_114_101_105_103_110_95_112_114_111_99_95_101_120_112_111_114_116_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_46,
  MR_Word S_6,
  MR_Word Lang_7,
  MR_Word FPE_8);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_102_111_114_101_105_103_110_95_112_114_111_99_95_101_120_112_111_114_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_46,
  MR_Word Lang_7,
  MR_Word FPE_8,
  MR_Word STATE_VARIABLE_U_0_23,
  MR_Word * STATE_VARIABLE_U_24);

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_105_110_112_117_116_95_115_112_101_99_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_95_95_91_51_93_95_48_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1);

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_105_110_112_117_116_95_115_112_101_99_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_95_95_91_51_93_95_48_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1);

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_111_98_115_111_108_101_116_101_95_112_114_111_99_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_111_98_115_111_108_101_116_101_95_112_114_111_99_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_28,
  MR_Word Lang_6,
  MR_Word ObsoleteProc_7,
  MR_Word S_8);

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_111_98_115_111_108_101_116_101_95_112_114_111_99_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_111_98_115_111_108_101_116_101_95_112_114_111_99_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_28,
  MR_Word Lang_6,
  MR_Word ObsoleteProc_7,
  MR_Word STATE_VARIABLE_U_0_18,
  MR_Word * STATE_VARIABLE_U_19);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_114_101_113_117_105_114_101_95_116_97_105_108_95_114_101_99_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_40,
  MR_Word Lang_6,
  MR_Word RequireTR_7,
  MR_Word S_8);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_114_101_113_117_105_114_101_95_116_97_105_108_95_114_101_99_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_40,
  MR_Word Lang_6,
  MR_Word RequireTR_7,
  MR_Word STATE_VARIABLE_U_0_24,
  MR_Word * STATE_VARIABLE_U_25);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_115_116_114_117_99_116_95_114_101_117_115_101_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_115_116_114_117_99_116_95_114_101_117_115_101_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_115_116_114_117_99_116_95_115_104_97_114_105_110_103_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_115_116_114_117_99_116_95_115_104_97_114_105_110_103_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4);

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_101_114_109_105_110_97_116_105_111_110_50_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0_2(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1);

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_101_114_109_105_110_97_116_105_111_110_50_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1);

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_101_114_109_105_110_97_116_105_111_110_50_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0_2(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1);

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_101_114_109_105_110_97_116_105_111_110_50_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_121_112_101_95_115_112_101_99_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_121_112_101_95_115_112_101_99_95_99_111_110_115_116_114_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_95_95_91_51_93_95_48_5_p_0_2(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_121_112_101_95_115_112_101_99_95_99_111_110_115_116_114_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_95_95_91_51_93_95_48_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_121_112_101_95_115_112_101_99_95_99_111_110_115_116_114_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_95_95_91_51_93_95_48_5_p_0_2(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_121_112_101_95_115_112_101_99_95_99_111_110_115_116_114_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_95_95_91_51_93_95_48_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_116_118_97_114_95_115_117_98_115_116_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_19,
  MR_Word VarSet_6,
  MR_Word TVarSubst_7,
  MR_Word S_8);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_118_97_114_95_111_114_95_103_114_111_117_110_100_95_116_121_112_101_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_18,
  MR_Word TVarSet_6,
  MR_Word Arg_7,
  MR_Word S_8);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_118_97_114_95_111_114_95_103_114_111_117_110_100_95_116_121_112_101_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_18,
  MR_Word TVarSet_6,
  MR_Word Arg_7,
  MR_Word STATE_VARIABLE_U_0_14,
  MR_Word * STATE_VARIABLE_U_15);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_116_121_112_101_95_115_112_101_99_95_99_111_110_115_116_114_97_105_110_116_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_6_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_116_121_112_101_95_115_112_101_99_95_99_111_110_115_116_114_97_105_110_116_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_6_p_0(
  MR_Word TypeClassInfo_for_pt_output_25,
  MR_String Prefix_7,
  MR_Word TVarSet_8,
  MR_Word Constraint_9,
  MR_Word S_10);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_116_121_112_101_95_115_112_101_99_95_99_111_110_115_116_114_97_105_110_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_6_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_116_121_112_101_95_115_112_101_99_95_99_111_110_115_116_114_97_105_110_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_6_p_0(
  MR_Word TypeClassInfo_for_pt_output_25,
  MR_String Prefix_7,
  MR_Word TVarSet_8,
  MR_Word Constraint_9,
  MR_Word STATE_VARIABLE_U_0_15,
  MR_Word * STATE_VARIABLE_U_16);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_116_121_112_101_95_115_117_98_115_116_95_110_101_119_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_6_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_116_121_112_101_95_115_117_98_115_116_95_110_101_119_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_6_p_0(
  MR_Word TypeClassInfo_for_pt_output_24,
  MR_String Prefix_7,
  MR_Word TVarSet_8,
  MR_Word TypeSubst_9,
  MR_Word S_10);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_116_121_112_101_95_115_117_98_115_116_95_110_101_119_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_6_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_116_121_112_101_95_115_117_98_115_116_95_110_101_119_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_6_p_0(
  MR_Word TypeClassInfo_for_pt_output_24,
  MR_String Prefix_7,
  MR_Word TVarSet_8,
  MR_Word TypeSubst_9,
  MR_Word STATE_VARIABLE_U_0_14,
  MR_Word * STATE_VARIABLE_U_15);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_required_feature_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_11,
  MR_Word Feature_5,
  MR_Box S_6,
  MR_Box STATE_VARIABLE_U_0_9,
  MR_Box * STATE_VARIABLE_U_10);

static MR_String MR_CALL 
parse_tree__parse_tree_out_pragma__arg_size_term_to_string_1_f_0(
  MR_Word HeadVar__1_1);

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__arg_size_constr_to_string_1_f_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1);

static MR_String MR_CALL 
parse_tree__parse_tree_out_pragma__arg_size_constr_to_string_1_f_0(
  MR_Word Constraint_3);

static MR_String MR_CALL 
parse_tree__parse_tree_out_pragma__bool_to_string_1_f_0(
  MR_Word HeadVar__1_1);

static MR_String MR_CALL 
parse_tree__parse_tree_out_pragma__wrapped_sym_name_arity_to_string_1_f_0(
  MR_Word SNA_3);

static MR_String MR_CALL 
parse_tree__parse_tree_out_pragma__get_zero_arity_inst_ctor_name_1_f_0(
  MR_Word HeadVar__1_1);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_type_subst_new_6_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_type_subst_new_6_p_0(
  MR_Word TypeClassInfo_for_pt_output_24,
  MR_String Prefix_7,
  MR_Word TVarSet_8,
  MR_Word TypeSubst_9,
  MR_Box S_10,
  MR_Box STATE_VARIABLE_U_0_14,
  MR_Box * STATE_VARIABLE_U_15);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_var_or_ground_type_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_18,
  MR_Word TVarSet_6,
  MR_Word Arg_7,
  MR_Box S_8,
  MR_Box STATE_VARIABLE_U_0_14,
  MR_Box * STATE_VARIABLE_U_15);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_type_spec_constraint_6_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_type_spec_constraint_6_p_0(
  MR_Word TypeClassInfo_for_pt_output_25,
  MR_String Prefix_7,
  MR_Word TVarSet_8,
  MR_Word Constraint_9,
  MR_Box S_10,
  MR_Box STATE_VARIABLE_U_0_15,
  MR_Box * STATE_VARIABLE_U_16);

static MR_String MR_CALL 
parse_tree__parse_tree_out_pragma__unit_selector_to_string_2_f_0(
  MR_Word TypeVarSet_4,
  MR_Word UnitSelector_5);

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__sharing_pair_to_string_3_f_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1);

static MR_String MR_CALL 
parse_tree__parse_tree_out_pragma__sharing_pair_to_string_3_f_0(
  MR_Word VarSet_5,
  MR_Word TypeVarSet_6,
  MR_Word HeadVar__3_3);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_escaped_char_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_16,
  MR_Box S_5,
  MR_Char Char_6,
  MR_Box STATE_VARIABLE_U_0_9,
  MR_Box * STATE_VARIABLE_U_10);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_121_112_101_95_115_112_101_99_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_116_118_97_114_95_115_117_98_115_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_19,
  MR_Word VarSet_6,
  MR_Word TVarSubst_7,
  MR_Word STATE_VARIABLE_U_0_12,
  MR_Word * STATE_VARIABLE_U_13);

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

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_item_foreign_proc_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_102_111_114_101_105_103_110_95_112_114_111_99_95_118_97_114_115_95_95_91_51_93_95_48_7_p_0(
  MR_Word TypeClassInfo_for_pt_output_36,
  MR_Word Lang_1,
  MR_Word InstVarSet_3,
  MR_Word HeadVar__4_4,
  MR_Box HeadVar__5_5,
  MR_Box STATE_VARIABLE_U_0_6,
  MR_Box * STATE_VARIABLE_U_7);

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

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_105_116_101_109_95_102_111_114_101_105_103_110_95_112_114_111_99_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_102_111_114_101_105_103_110_95_112_114_111_99_95_118_97_114_115_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_95_95_91_51_93_95_48_7_p_0(
  MR_Word TypeClassInfo_for_pt_output_36,
  MR_Word Lang_1,
  MR_Word InstVarSet_3,
  MR_Word HeadVar__4_4,
  MR_Word STATE_VARIABLE_U_0_6,
  MR_Word * STATE_VARIABLE_U_7);

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

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_105_116_101_109_95_102_111_114_101_105_103_110_95_112_114_111_99_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_102_111_114_101_105_103_110_95_112_114_111_99_95_118_97_114_115_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_95_95_91_51_93_95_48_7_p_0(
  MR_Word TypeClassInfo_for_pt_output_36,
  MR_Word Lang_1,
  MR_Word InstVarSet_3,
  MR_Word HeadVar__4_4,
  MR_Word HeadVar__5_5);

static MR_Word MR_CALL 
parse_tree__parse_tree_out_pragma__foreign_proc_attributes_to_strings_2_f_0(
  MR_Word Attrs_4,
  MR_Word VarSet_5);

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__user_annotated_sharing_to_string_3_f_0_2(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1);

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__user_annotated_sharing_to_string_3_f_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1);

static MR_String MR_CALL 
parse_tree__parse_tree_out_pragma__user_annotated_sharing_to_string_3_f_0(
  MR_Word VarSet_5,
  MR_Word Sharing_6,
  MR_Word MaybeTypes_7);

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

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

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_105_110_116_95_108_105_115_116_95_50_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_18,
  MR_Word HeadVar__1_1,
  MR_Word STATE_VARIABLE_U_0_3,
  MR_Word * STATE_VARIABLE_U_4);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_require_feature_set_4_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_require_feature_set_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_20,
  MR_Word RFSInfo_5,
  MR_Box S_6,
  MR_Box STATE_VARIABLE_U_0_12,
  MR_Box * STATE_VARIABLE_U_13);

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_tabled_4_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_tabled_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_62,
  MR_Word Tabled_5,
  MR_Box S_6,
  MR_Box STATE_VARIABLE_U_0_32,
  MR_Box * STATE_VARIABLE_U_33);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_require_tail_rec_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_40,
  MR_Word Lang_6,
  MR_Word RequireTR_7,
  MR_Box S_8,
  MR_Box STATE_VARIABLE_U_0_24,
  MR_Box * STATE_VARIABLE_U_25);

static MR_String MR_CALL 
parse_tree__parse_tree_out_pragma__pred_or_proc_pfumm_name_to_string_2_f_0(
  MR_Word Lang_4,
  MR_Word PredOrProcSpec_5);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_foreign_proc_export_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_46,
  MR_Box S_6,
  MR_Word Lang_7,
  MR_Word FPE_8,
  MR_Box STATE_VARIABLE_U_0_23,
  MR_Box * STATE_VARIABLE_U_24);

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

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_foreign_code_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_23,
  MR_Word FCInfo_5,
  MR_Box S_6,
  MR_Box STATE_VARIABLE_U_0_15,
  MR_Box * STATE_VARIABLE_U_16);

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

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_item_decl_pragma_5_p_0_2(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1);

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_item_decl_pragma_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1);

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_105_110_112_117_116_95_115_112_101_99_95_95_91_51_93_95_48_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_121_112_101_95_115_112_101_99_95_99_111_110_115_116_114_95_95_91_51_93_95_48_5_p_0_2(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_121_112_101_95_115_112_101_99_95_99_111_110_115_116_114_95_95_91_51_93_95_48_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4);

static MR_String MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_pred_pfu_name_arity_to_string_3_f_0(
  MR_Word PFU_5,
  MR_Word PredName_6,
  MR_Word UserArity_7);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_oisu_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_43,
  MR_Word OISU_5,
  MR_Box S_6,
  MR_Box STATE_VARIABLE_U_0_16,
  MR_Box * STATE_VARIABLE_U_17);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pf_sym_name_user_arity_list_lag_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_24,
  MR_Word PredSpec_6,
  MR_Word PredSpecs_7,
  MR_Box S_8,
  MR_Box STATE_VARIABLE_U_0_15,
  MR_Box * STATE_VARIABLE_U_16);

static MR_String MR_CALL 
parse_tree__parse_tree_out_pragma__format_string_values_to_string_1_f_0(
  MR_Word FormatStringValues_3);

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_obsolete_proc_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_obsolete_proc_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_28,
  MR_Word Lang_6,
  MR_Word ObsoleteProc_7,
  MR_Box S_8,
  MR_Box STATE_VARIABLE_U_0_18,
  MR_Box * STATE_VARIABLE_U_19);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_struct_reuse_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_struct_sharing_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4);

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_termination2_5_p_0_2(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1);

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_termination2_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1);

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__maybe_arg_size_info_to_string_2_f_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_type_spec_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4);

static MR_String MR_CALL 
parse_tree__parse_tree_out_pragma__proc_pf_name_modes_to_string_2_f_0(
  MR_Word Lang_4,
  MR_Word PredNameModesPF_5);

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_tvar_subst_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_19,
  MR_Word VarSet_6,
  MR_Word TVarSubst_7,
  MR_Box S_8,
  MR_Box STATE_VARIABLE_U_0_12,
  MR_Box * STATE_VARIABLE_U_13);


static /* final */ const MR_Box parse_tree__parse_tree_out_pragma_scalar_common_1[26][3];

static /* final */ const MR_Box parse_tree__parse_tree_out_pragma_scalar_common_2[4][4];

static /* final */ const MR_Box parse_tree__parse_tree_out_pragma_scalar_common_3[12][5];

static /* final */ const MR_Box parse_tree__parse_tree_out_pragma_scalar_common_4[31][2];

static /* final */ const MR_Box parse_tree__parse_tree_out_pragma_scalar_common_5[1][1];

static /* final */ const MR_Integer parse_tree__parse_tree_out_pragma_scalar_common_6[1][3];

static /* final */ const MR_Box parse_tree__parse_tree_out_pragma_scalar_common_7[6][9];

static /* final */ const MR_Box parse_tree__parse_tree_out_pragma_scalar_common_8[9][10];

static /* final */ const MR_Box parse_tree__parse_tree_out_pragma_scalar_common_9[7][8];

static /* final */ const MR_Box parse_tree__parse_tree_out_pragma_scalar_common_11[2][7];

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


struct parse_tree__parse_tree_out_pragma__vector_common_type_10_0_s {
  const MR_String parse_tree__parse_tree_out_pragma__vector_common_type_10_0__vct_10_f_0;
};

static /* final */ const struct parse_tree__parse_tree_out_pragma__vector_common_type_10_0_s parse_tree__parse_tree_out_pragma_vector_common_10[55];

struct parse_tree__parse_tree_out_pragma__vector_common_type_12_0_s {
  const MR_Word parse_tree__parse_tree_out_pragma__vector_common_type_12_0__vct_12_f_0;
};

static /* final */ const struct parse_tree__parse_tree_out_pragma__vector_common_type_12_0_s parse_tree__parse_tree_out_pragma_vector_common_12[8];



static /* final */ const MR_Box parse_tree__parse_tree_out_pragma_scalar_common_1[26][3] = {
  /* row   0 */
  {
    ((MR_Box) (base_typeclass_info_stream__stream__arity2__io__text_output_stream__arity0__io__state__arity0__)),
    ((MR_Box) (&mercury__io__io__type_ctor_info_text_output_stream_0)),
    ((MR_Box) (&mercury__io__io__type_ctor_info_state_0))
  },
  /* row   1 */
  {
    ((MR_Box) (base_typeclass_info_stream__stream__arity2__string__builder__handle__arity0__string__builder__state__arity0__)),
    ((MR_Box) (&mercury__string__builder__string__builder__type_ctor_info_handle_0)),
    ((MR_Box) (&mercury__string__builder__string__builder__type_ctor_info_state_0))
  },
  /* row   2 */
  {
    ((MR_Box) (&mercury__pair__pair__type_ctor_info_pair_2)),
    ((MR_Box) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_datastruct_0)),
    ((MR_Box) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_datastruct_0))
  },
  /* row   3 */
  {
    ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_3[2])),
    ((MR_Box) (parse_tree__parse_tree_out_pragma__maybe_arg_size_info_to_string_2_f_0_1)),
    ((MR_Box) ((MR_Integer) 0))
  },
  /* row   4 */
  {
    ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_3[3])),
    ((MR_Box) (parse_tree__parse_tree_out_pragma__mercury_format_pragma_termination2_5_p_0_1)),
    ((MR_Box) ((MR_Integer) 0))
  },
  /* row   5 */
  {
    ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_3[3])),
    ((MR_Box) (parse_tree__parse_tree_out_pragma__mercury_format_pragma_termination2_5_p_0_2)),
    ((MR_Box) ((MR_Integer) 0))
  },
  /* row   6 */
  {
    ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_3[4])),
    ((MR_Box) (parse_tree__parse_tree_out_pragma__mercury_format_pragma_obsolete_proc_5_p_0_1)),
    ((MR_Box) ((MR_Integer) 0))
  },
  /* row   7 */
  {
    ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_3[5])),
    ((MR_Box) (parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_105_110_112_117_116_95_115_112_101_99_95_95_91_51_93_95_48_5_p_0_1)),
    ((MR_Box) ((MR_Integer) 0))
  },
  /* row   8 */
  {
    ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_3[6])),
    ((MR_Box) (parse_tree__parse_tree_out_pragma__mercury_format_item_decl_pragma_5_p_0_1)),
    ((MR_Box) ((MR_Integer) 0))
  },
  /* row   9 */
  {
    ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_3[4])),
    ((MR_Box) (parse_tree__parse_tree_out_pragma__mercury_format_item_decl_pragma_5_p_0_2)),
    ((MR_Box) ((MR_Integer) 0))
  },
  /* row  10 */
  {
    ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_3[8])),
    ((MR_Box) (parse_tree__parse_tree_out_pragma__mercury_format_pragma_tabled_4_p_0_1)),
    ((MR_Box) ((MR_Integer) 0))
  },
  /* row  11 */
  {
    ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_3[9])),
    ((MR_Box) (parse_tree__parse_tree_out_pragma__arg_size_constr_to_string_1_f_0_1)),
    ((MR_Box) ((MR_Integer) 0))
  },
  /* row  12 */
  {
    ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_3[3])),
    ((MR_Box) (parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_101_114_109_105_110_97_116_105_111_110_50_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0_1)),
    ((MR_Box) ((MR_Integer) 0))
  },
  /* row  13 */
  {
    ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_3[3])),
    ((MR_Box) (parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_101_114_109_105_110_97_116_105_111_110_50_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0_2)),
    ((MR_Box) ((MR_Integer) 0))
  },
  /* row  14 */
  {
    ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_3[3])),
    ((MR_Box) (parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_101_114_109_105_110_97_116_105_111_110_50_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0_1)),
    ((MR_Box) ((MR_Integer) 0))
  },
  /* row  15 */
  {
    ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_3[3])),
    ((MR_Box) (parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_101_114_109_105_110_97_116_105_111_110_50_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0_2)),
    ((MR_Box) ((MR_Integer) 0))
  },
  /* row  16 */
  {
    ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_3[4])),
    ((MR_Box) (parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_111_98_115_111_108_101_116_101_95_112_114_111_99_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0_1)),
    ((MR_Box) ((MR_Integer) 0))
  },
  /* row  17 */
  {
    ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_3[4])),
    ((MR_Box) (parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_111_98_115_111_108_101_116_101_95_112_114_111_99_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0_1)),
    ((MR_Box) ((MR_Integer) 0))
  },
  /* row  18 */
  {
    ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_3[5])),
    ((MR_Box) (parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_105_110_112_117_116_95_115_112_101_99_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_95_95_91_51_93_95_48_5_p_0_1)),
    ((MR_Box) ((MR_Integer) 0))
  },
  /* row  19 */
  {
    ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_3[5])),
    ((MR_Box) (parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_105_110_112_117_116_95_115_112_101_99_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_95_95_91_51_93_95_48_5_p_0_1)),
    ((MR_Box) ((MR_Integer) 0))
  },
  /* row  20 */
  {
    ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_3[8])),
    ((MR_Box) (parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_97_98_108_101_100_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0_1)),
    ((MR_Box) ((MR_Integer) 0))
  },
  /* row  21 */
  {
    ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_3[8])),
    ((MR_Box) (parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_97_98_108_101_100_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0_1)),
    ((MR_Box) ((MR_Integer) 0))
  },
  /* row  22 */
  {
    ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_3[6])),
    ((MR_Box) (parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_105_116_101_109_95_100_101_99_108_95_112_114_97_103_109_97_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0_1)),
    ((MR_Box) ((MR_Integer) 0))
  },
  /* row  23 */
  {
    ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_3[4])),
    ((MR_Box) (parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_105_116_101_109_95_100_101_99_108_95_112_114_97_103_109_97_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0_2)),
    ((MR_Box) ((MR_Integer) 0))
  },
  /* row  24 */
  {
    ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_3[6])),
    ((MR_Box) (parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_105_116_101_109_95_100_101_99_108_95_112_114_97_103_109_97_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0_1)),
    ((MR_Box) ((MR_Integer) 0))
  },
  /* row  25 */
  {
    ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_3[4])),
    ((MR_Box) (parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_105_116_101_109_95_100_101_99_108_95_112_114_97_103_109_97_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0_2)),
    ((MR_Box) ((MR_Integer) 0))
  },
};

static /* final */ const MR_Box parse_tree__parse_tree_out_pragma_scalar_common_2[4][4] = {
  /* row   0 */
  {
    ((MR_Box) (base_typeclass_info_stream__output__arity2__io__text_output_stream__arity0__io__state__arity0__)),
    ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_1[0])),
    ((MR_Box) (&mercury__io__io__type_ctor_info_text_output_stream_0)),
    ((MR_Box) (&mercury__io__io__type_ctor_info_state_0))
  },
  /* row   1 */
  {
    ((MR_Box) (base_typeclass_info_parse_tree__parse_tree_output__pt_output__arity2__io__text_output_stream__arity0__io__state__arity0__)),
    ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_3[0])),
    ((MR_Box) (&mercury__io__io__type_ctor_info_text_output_stream_0)),
    ((MR_Box) (&mercury__io__io__type_ctor_info_state_0))
  },
  /* row   2 */
  {
    ((MR_Box) (base_typeclass_info_stream__output__arity2__string__builder__handle__arity0__string__builder__state__arity0__)),
    ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_1[1])),
    ((MR_Box) (&mercury__string__builder__string__builder__type_ctor_info_handle_0)),
    ((MR_Box) (&mercury__string__builder__string__builder__type_ctor_info_state_0))
  },
  /* row   3 */
  {
    ((MR_Box) (base_typeclass_info_parse_tree__parse_tree_output__pt_output__arity2__string__builder__handle__arity0__string__builder__state__arity0__)),
    ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_3[1])),
    ((MR_Box) (&mercury__string__builder__string__builder__type_ctor_info_handle_0)),
    ((MR_Box) (&mercury__string__builder__string__builder__type_ctor_info_state_0))
  },
};

static /* final */ const MR_Box parse_tree__parse_tree_out_pragma_scalar_common_3[12][5] = {
  /* row   0 */
  {
    ((MR_Box) (base_typeclass_info_stream__writer__arity3__io__text_output_stream__arity0__string__arity0__io__state__arity0__)),
    ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_2[0])),
    ((MR_Box) (&mercury__io__io__type_ctor_info_text_output_stream_0)),
    ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_string_0)),
    ((MR_Box) (&mercury__io__io__type_ctor_info_state_0))
  },
  /* row   1 */
  {
    ((MR_Box) (base_typeclass_info_stream__writer__arity3__string__builder__handle__arity0__string__arity0__string__builder__state__arity0__)),
    ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_2[2])),
    ((MR_Box) (&mercury__string__builder__string__builder__type_ctor_info_handle_0)),
    ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_string_0)),
    ((MR_Box) (&mercury__string__builder__string__builder__type_ctor_info_state_0))
  },
  /* row   2 */
  {
    NULL,
    ((MR_Box) (NULL)),
    ((MR_Box) ((MR_Integer) 2)),
    ((MR_Box) (&mercury__bool__bool__type_ctor_info_bool_0)),
    ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_string_0))
  },
  /* row   3 */
  {
    NULL,
    ((MR_Box) (NULL)),
    ((MR_Box) ((MR_Integer) 2)),
    ((MR_Box) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_arg_size_constr_0)),
    ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_string_0))
  },
  /* row   4 */
  {
    NULL,
    ((MR_Box) (NULL)),
    ((MR_Box) ((MR_Integer) 2)),
    ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_sym_name_arity_0)),
    ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_string_0))
  },
  /* row   5 */
  {
    NULL,
    ((MR_Box) (NULL)),
    ((MR_Box) ((MR_Integer) 2)),
    ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_inst_ctor_0)),
    ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_string_0))
  },
  /* row   6 */
  {
    NULL,
    ((MR_Box) (NULL)),
    ((MR_Box) ((MR_Integer) 2)),
    ((MR_Box) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_format_string_values_0)),
    ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_string_0))
  },
  /* row   7 */
  {
    ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_9[1])),
    ((MR_Box) (parse_tree__parse_tree_out_pragma__mercury_format_pragma_foreign_code_4_p_0_1)),
    ((MR_Box) ((MR_Integer) 2)),
    ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3])),
    ((MR_Box) ((MR_Integer) 0))
  },
  /* row   8 */
  {
    NULL,
    ((MR_Box) (NULL)),
    ((MR_Box) ((MR_Integer) 2)),
    ((MR_Box) (&parse_tree__parse_tree_out_pragma__maybe__pti_maybe_1__plain_parse_tree__prog_data_pragma__type_ctor_info_arg_tabling_method_0)),
    ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_string_0))
  },
  /* row   9 */
  {
    NULL,
    ((MR_Box) (NULL)),
    ((MR_Box) ((MR_Integer) 2)),
    ((MR_Box) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_arg_size_term_0)),
    ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_string_0))
  },
  /* row  10 */
  {
    ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_9[1])),
    ((MR_Box) (parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_102_111_114_101_105_103_110_95_99_111_100_101_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0_1)),
    ((MR_Box) ((MR_Integer) 2)),
    ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3])),
    ((MR_Box) ((MR_Integer) 0))
  },
  /* row  11 */
  {
    ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_9[1])),
    ((MR_Box) (parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_102_111_114_101_105_103_110_95_99_111_100_101_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0_1)),
    ((MR_Box) ((MR_Integer) 2)),
    ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3])),
    ((MR_Box) ((MR_Integer) 0))
  },
};

static /* final */ const MR_Box parse_tree__parse_tree_out_pragma_scalar_common_4[31][2] = {
  /* row   0 */
  {
    ((MR_Box) (&mercury__one_or_more__one_or_more__type_ctor_info_one_or_more_1)),
    ((MR_Box) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_tvar_subst_0))
  },
  /* row   1 */
  {
    ((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_arg_tabling_method_0))
  },
  /* row   2 */
  {
    ((MR_Box) ((MR_String) "promise_pure")),
    ((MR_Box) ((MR_Unsigned) 0U))
  },
  /* row   3 */
  {
    ((MR_Box) ((MR_String) "promise_semipure")),
    ((MR_Box) ((MR_Unsigned) 0U))
  },
  /* row   4 */
  {
    ((MR_Box) ((MR_String) "does_not_terminate")),
    ((MR_Box) ((MR_Unsigned) 0U))
  },
  /* row   5 */
  {
    ((MR_Box) ((MR_String) "terminates")),
    ((MR_Box) ((MR_Unsigned) 0U))
  },
  /* row   6 */
  {
    ((MR_Box) ((MR_String) "ordinary_despite_detism")),
    ((MR_Box) ((MR_Unsigned) 0U))
  },
  /* row   7 */
  {
    ((MR_Box) ((MR_String) "will_not_throw_exception")),
    ((MR_Box) ((MR_Unsigned) 0U))
  },
  /* row   8 */
  {
    ((MR_Box) ((MR_String) "may_modify_trail")),
    ((MR_Box) ((MR_Unsigned) 0U))
  },
  /* row   9 */
  {
    ((MR_Box) ((MR_String) "will_not_modify_trail")),
    ((MR_Box) ((MR_Unsigned) 0U))
  },
  /* row  10 */
  {
    ((MR_Box) ((MR_String) "may_call_mm_tabled")),
    ((MR_Box) ((MR_Unsigned) 0U))
  },
  /* row  11 */
  {
    ((MR_Box) ((MR_String) "will_not_call_mm_tabled")),
    ((MR_Box) ((MR_Unsigned) 0U))
  },
  /* row  12 */
  {
    ((MR_Box) ((MR_String) "always_boxed")),
    ((MR_Box) ((MR_Unsigned) 0U))
  },
  /* row  13 */
  {
    ((MR_Box) ((MR_String) "affects_liveness")),
    ((MR_Box) ((MR_Unsigned) 0U))
  },
  /* row  14 */
  {
    ((MR_Box) ((MR_String) "doesnt_affect_liveness")),
    ((MR_Box) ((MR_Unsigned) 0U))
  },
  /* row  15 */
  {
    ((MR_Box) ((MR_String) "allocates_bounded_memory")),
    ((MR_Box) ((MR_Unsigned) 0U))
  },
  /* row  16 */
  {
    ((MR_Box) ((MR_String) "allocates_unbounded_memory")),
    ((MR_Box) ((MR_Unsigned) 0U))
  },
  /* row  17 */
  {
    ((MR_Box) ((MR_String) "doesnt_allocate_memory")),
    ((MR_Box) ((MR_Unsigned) 0U))
  },
  /* row  18 */
  {
    ((MR_Box) ((MR_String) "doesnt_have_roots")),
    ((MR_Box) ((MR_Unsigned) 0U))
  },
  /* row  19 */
  {
    ((MR_Box) ((MR_String) "doesnt_register_roots")),
    ((MR_Box) ((MR_Unsigned) 0U))
  },
  /* row  20 */
  {
    ((MR_Box) ((MR_String) "registers_roots")),
    ((MR_Box) ((MR_Unsigned) 0U))
  },
  /* row  21 */
  {
    ((MR_Box) ((MR_String) "refers_to_llds_stack")),
    ((MR_Box) ((MR_Unsigned) 0U))
  },
  /* row  22 */
  {
    ((MR_Box) ((MR_String) "needs_call_standard_output_registers")),
    ((MR_Box) ((MR_Unsigned) 0U))
  },
  /* row  23 */
  {
    ((MR_Box) ((MR_String) "may_duplicate")),
    ((MR_Box) ((MR_Unsigned) 0U))
  },
  /* row  24 */
  {
    ((MR_Box) ((MR_String) "may_not_duplicate")),
    ((MR_Box) ((MR_Unsigned) 0U))
  },
  /* row  25 */
  {
    ((MR_Box) ((MR_String) "may_export_body")),
    ((MR_Box) ((MR_Unsigned) 0U))
  },
  /* row  26 */
  {
    ((MR_Box) ((MR_String) "may_not_export_body")),
    ((MR_Box) ((MR_Unsigned) 0U))
  },
  /* row  27 */
  {
    ((MR_Box) ((MR_String) "high_level_backend")),
    ((MR_Box) ((MR_Unsigned) 0U))
  },
  /* row  28 */
  {
    ((MR_Box) ((MR_String) "low_level_backend")),
    ((MR_Box) ((MR_Unsigned) 0U))
  },
  /* row  29 */
  {
    ((MR_Box) ((MR_String) "])")),
    ((MR_Box) ((MR_Unsigned) 0U))
  },
  /* row  30 */
  {
    ((MR_Box) ((MR_String) "fast_loose")),
    ((MR_Box) ((MR_Unsigned) 0U))
  },
};

static /* final */ const MR_Box parse_tree__parse_tree_out_pragma_scalar_common_5[1][1] = {
  /* row   0 */
  { (MR_Box) (((((MR_Unsigned) 0U << 4)) | (((((MR_Unsigned) 0U << 3)) | (((((MR_Unsigned) 0U << 2)) | (((MR_Unsigned) 0U << 1)))))))) },
};

static /* final */ const MR_Integer parse_tree__parse_tree_out_pragma_scalar_common_6[1][3] = {
  /* row   0 */
  {
    (MR_Integer) 2,
    (MR_Integer) 67663,
    (MR_Integer) 67695
  },
};

static /* final */ const MR_Box parse_tree__parse_tree_out_pragma_scalar_common_7[6][9] = {
  /* row   0 */
  {
    NULL,
    ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_6[0])),
    ((MR_Box) ((MR_Integer) 6)),
    ((MR_Box) (&mercury__private_builtin__private_builtin__type_ctor_info_typeclass_info_0)),
    ((MR_Box) (&parse_tree__parse_tree_out_pragma__varset__pti_varset_1__plain_parse_tree__prog_data__type_ctor_info_tvar_type_0)),
    ((MR_Box) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_tvar_subst_0)),
    ((MR_Box) ((MR_Integer) 1)),
    ((MR_Box) ((MR_Integer) 2)),
    ((MR_Box) ((MR_Integer) 2))
  },
  /* row   1 */
  {
    NULL,
    ((MR_Box) (NULL)),
    ((MR_Box) ((MR_Integer) 6)),
    ((MR_Box) (&mercury__private_builtin__private_builtin__type_ctor_info_typeclass_info_0)),
    ((MR_Box) (&parse_tree__parse_tree_out_pragma__varset__pti_varset_1__plain_parse_tree__prog_data__type_ctor_info_tvar_type_0)),
    ((MR_Box) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_tvar_subst_0)),
    ((MR_Box) (&mercury__string__builder__string__builder__type_ctor_info_handle_0)),
    ((MR_Box) (&mercury__string__builder__string__builder__type_ctor_info_state_0)),
    ((MR_Box) (&mercury__string__builder__string__builder__type_ctor_info_state_0))
  },
  /* row   2 */
  {
    NULL,
    ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_6[0])),
    ((MR_Box) ((MR_Integer) 6)),
    ((MR_Box) (&mercury__private_builtin__private_builtin__type_ctor_info_typeclass_info_0)),
    ((MR_Box) (&parse_tree__parse_tree_out_pragma__varset__pti_varset_1__plain_parse_tree__prog_data__type_ctor_info_tvar_type_0)),
    ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_var_or_ground_type_0)),
    ((MR_Box) ((MR_Integer) 1)),
    ((MR_Box) ((MR_Integer) 2)),
    ((MR_Box) ((MR_Integer) 2))
  },
  /* row   3 */
  {
    NULL,
    ((MR_Box) (NULL)),
    ((MR_Box) ((MR_Integer) 6)),
    ((MR_Box) (&mercury__private_builtin__private_builtin__type_ctor_info_typeclass_info_0)),
    ((MR_Box) (&parse_tree__parse_tree_out_pragma__varset__pti_varset_1__plain_parse_tree__prog_data__type_ctor_info_tvar_type_0)),
    ((MR_Box) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_tvar_subst_0)),
    ((MR_Box) (&mercury__io__io__type_ctor_info_text_output_stream_0)),
    ((MR_Box) (&mercury__io__io__type_ctor_info_state_0)),
    ((MR_Box) (&mercury__io__io__type_ctor_info_state_0))
  },
  /* row   4 */
  {
    NULL,
    ((MR_Box) (NULL)),
    ((MR_Box) ((MR_Integer) 6)),
    ((MR_Box) (&mercury__private_builtin__private_builtin__type_ctor_info_typeclass_info_0)),
    ((MR_Box) (&parse_tree__parse_tree_out_pragma__varset__pti_varset_1__plain_parse_tree__prog_data__type_ctor_info_tvar_type_0)),
    ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_var_or_ground_type_0)),
    ((MR_Box) (&mercury__string__builder__string__builder__type_ctor_info_handle_0)),
    ((MR_Box) (&mercury__string__builder__string__builder__type_ctor_info_state_0)),
    ((MR_Box) (&mercury__string__builder__string__builder__type_ctor_info_state_0))
  },
  /* row   5 */
  {
    NULL,
    ((MR_Box) (NULL)),
    ((MR_Box) ((MR_Integer) 6)),
    ((MR_Box) (&mercury__private_builtin__private_builtin__type_ctor_info_typeclass_info_0)),
    ((MR_Box) (&parse_tree__parse_tree_out_pragma__varset__pti_varset_1__plain_parse_tree__prog_data__type_ctor_info_tvar_type_0)),
    ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_var_or_ground_type_0)),
    ((MR_Box) (&mercury__io__io__type_ctor_info_text_output_stream_0)),
    ((MR_Box) (&mercury__io__io__type_ctor_info_state_0)),
    ((MR_Box) (&mercury__io__io__type_ctor_info_state_0))
  },
};

static /* final */ const MR_Box parse_tree__parse_tree_out_pragma_scalar_common_8[9][10] = {
  /* row   0 */
  {
    NULL,
    ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_6[0])),
    ((MR_Box) ((MR_Integer) 7)),
    ((MR_Box) (&mercury__private_builtin__private_builtin__type_ctor_info_typeclass_info_0)),
    ((MR_Box) (&parse_tree__parse_tree_out_pragma__varset__pti_varset_1__plain_parse_tree__prog_data__type_ctor_info_tvar_type_0)),
    ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_var_name_print_0)),
    ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_type_0)),
    ((MR_Box) ((MR_Integer) 1)),
    ((MR_Box) ((MR_Integer) 2)),
    ((MR_Box) ((MR_Integer) 2))
  },
  /* row   1 */
  {
    NULL,
    ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_6[0])),
    ((MR_Box) ((MR_Integer) 7)),
    ((MR_Box) (&mercury__private_builtin__private_builtin__type_ctor_info_typeclass_info_0)),
    ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_string_0)),
    ((MR_Box) (&parse_tree__parse_tree_out_pragma__varset__pti_varset_1__plain_parse_tree__prog_data__type_ctor_info_tvar_type_0)),
    ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_var_or_ground_constraint_0)),
    ((MR_Box) ((MR_Integer) 1)),
    ((MR_Box) ((MR_Integer) 2)),
    ((MR_Box) ((MR_Integer) 2))
  },
  /* row   2 */
  {
    NULL,
    ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_6[0])),
    ((MR_Box) ((MR_Integer) 7)),
    ((MR_Box) (&mercury__private_builtin__private_builtin__type_ctor_info_typeclass_info_0)),
    ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_string_0)),
    ((MR_Box) (&parse_tree__parse_tree_out_pragma__varset__pti_varset_1__plain_parse_tree__prog_data__type_ctor_info_tvar_type_0)),
    ((MR_Box) (&parse_tree__parse_tree_out_pragma__one_or_more__pti_one_or_more_1__plain_parse_tree__prog_data_pragma__type_ctor_info_tvar_subst_0)),
    ((MR_Box) ((MR_Integer) 1)),
    ((MR_Box) ((MR_Integer) 2)),
    ((MR_Box) ((MR_Integer) 2))
  },
  /* row   3 */
  {
    NULL,
    ((MR_Box) (NULL)),
    ((MR_Box) ((MR_Integer) 7)),
    ((MR_Box) (&mercury__private_builtin__private_builtin__type_ctor_info_typeclass_info_0)),
    ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_string_0)),
    ((MR_Box) (&parse_tree__parse_tree_out_pragma__varset__pti_varset_1__plain_parse_tree__prog_data__type_ctor_info_tvar_type_0)),
    ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_var_or_ground_constraint_0)),
    ((MR_Box) (&mercury__string__builder__string__builder__type_ctor_info_handle_0)),
    ((MR_Box) (&mercury__string__builder__string__builder__type_ctor_info_state_0)),
    ((MR_Box) (&mercury__string__builder__string__builder__type_ctor_info_state_0))
  },
  /* row   4 */
  {
    NULL,
    ((MR_Box) (NULL)),
    ((MR_Box) ((MR_Integer) 7)),
    ((MR_Box) (&mercury__private_builtin__private_builtin__type_ctor_info_typeclass_info_0)),
    ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_string_0)),
    ((MR_Box) (&parse_tree__parse_tree_out_pragma__varset__pti_varset_1__plain_parse_tree__prog_data__type_ctor_info_tvar_type_0)),
    ((MR_Box) (&parse_tree__parse_tree_out_pragma__one_or_more__pti_one_or_more_1__plain_parse_tree__prog_data_pragma__type_ctor_info_tvar_subst_0)),
    ((MR_Box) (&mercury__string__builder__string__builder__type_ctor_info_handle_0)),
    ((MR_Box) (&mercury__string__builder__string__builder__type_ctor_info_state_0)),
    ((MR_Box) (&mercury__string__builder__string__builder__type_ctor_info_state_0))
  },
  /* row   5 */
  {
    NULL,
    ((MR_Box) (NULL)),
    ((MR_Box) ((MR_Integer) 7)),
    ((MR_Box) (&mercury__private_builtin__private_builtin__type_ctor_info_typeclass_info_0)),
    ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_string_0)),
    ((MR_Box) (&parse_tree__parse_tree_out_pragma__varset__pti_varset_1__plain_parse_tree__prog_data__type_ctor_info_tvar_type_0)),
    ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_var_or_ground_constraint_0)),
    ((MR_Box) (&mercury__io__io__type_ctor_info_text_output_stream_0)),
    ((MR_Box) (&mercury__io__io__type_ctor_info_state_0)),
    ((MR_Box) (&mercury__io__io__type_ctor_info_state_0))
  },
  /* row   6 */
  {
    NULL,
    ((MR_Box) (NULL)),
    ((MR_Box) ((MR_Integer) 7)),
    ((MR_Box) (&mercury__private_builtin__private_builtin__type_ctor_info_typeclass_info_0)),
    ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_string_0)),
    ((MR_Box) (&parse_tree__parse_tree_out_pragma__varset__pti_varset_1__plain_parse_tree__prog_data__type_ctor_info_tvar_type_0)),
    ((MR_Box) (&parse_tree__parse_tree_out_pragma__one_or_more__pti_one_or_more_1__plain_parse_tree__prog_data_pragma__type_ctor_info_tvar_subst_0)),
    ((MR_Box) (&mercury__io__io__type_ctor_info_text_output_stream_0)),
    ((MR_Box) (&mercury__io__io__type_ctor_info_state_0)),
    ((MR_Box) (&mercury__io__io__type_ctor_info_state_0))
  },
  /* row   7 */
  {
    NULL,
    ((MR_Box) (NULL)),
    ((MR_Box) ((MR_Integer) 7)),
    ((MR_Box) (&mercury__private_builtin__private_builtin__type_ctor_info_typeclass_info_0)),
    ((MR_Box) (&parse_tree__parse_tree_out_pragma__varset__pti_varset_1__plain_parse_tree__prog_data__type_ctor_info_tvar_type_0)),
    ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_var_name_print_0)),
    ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_type_0)),
    ((MR_Box) (&mercury__string__builder__string__builder__type_ctor_info_handle_0)),
    ((MR_Box) (&mercury__string__builder__string__builder__type_ctor_info_state_0)),
    ((MR_Box) (&mercury__string__builder__string__builder__type_ctor_info_state_0))
  },
  /* row   8 */
  {
    NULL,
    ((MR_Box) (NULL)),
    ((MR_Box) ((MR_Integer) 7)),
    ((MR_Box) (&mercury__private_builtin__private_builtin__type_ctor_info_typeclass_info_0)),
    ((MR_Box) (&parse_tree__parse_tree_out_pragma__varset__pti_varset_1__plain_parse_tree__prog_data__type_ctor_info_tvar_type_0)),
    ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_var_name_print_0)),
    ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_type_0)),
    ((MR_Box) (&mercury__io__io__type_ctor_info_text_output_stream_0)),
    ((MR_Box) (&mercury__io__io__type_ctor_info_state_0)),
    ((MR_Box) (&mercury__io__io__type_ctor_info_state_0))
  },
};

static /* final */ const MR_Box parse_tree__parse_tree_out_pragma_scalar_common_9[7][8] = {
  /* row   0 */
  {
    NULL,
    ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_6[0])),
    ((MR_Box) ((MR_Integer) 5)),
    ((MR_Box) (&mercury__private_builtin__private_builtin__type_ctor_info_typeclass_info_0)),
    ((MR_Box) ((MR_Integer) 1)),
    ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_character_0)),
    ((MR_Box) ((MR_Integer) 2)),
    ((MR_Box) ((MR_Integer) 2))
  },
  /* row   1 */
  {
    NULL,
    ((MR_Box) (NULL)),
    ((MR_Box) ((MR_Integer) 5)),
    ((MR_Box) (&mercury__private_builtin__private_builtin__type_ctor_info_typeclass_info_0)),
    ((MR_Box) (&mercury__string__builder__string__builder__type_ctor_info_handle_0)),
    ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_character_0)),
    ((MR_Box) (&mercury__string__builder__string__builder__type_ctor_info_state_0)),
    ((MR_Box) (&mercury__string__builder__string__builder__type_ctor_info_state_0))
  },
  /* row   2 */
  {
    NULL,
    ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_6[0])),
    ((MR_Box) ((MR_Integer) 5)),
    ((MR_Box) (&mercury__private_builtin__private_builtin__type_ctor_info_typeclass_info_0)),
    ((MR_Box) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_required_feature_0)),
    ((MR_Box) ((MR_Integer) 1)),
    ((MR_Box) ((MR_Integer) 2)),
    ((MR_Box) ((MR_Integer) 2))
  },
  /* row   3 */
  {
    NULL,
    ((MR_Box) (NULL)),
    ((MR_Box) ((MR_Integer) 5)),
    ((MR_Box) (&mercury__private_builtin__private_builtin__type_ctor_info_typeclass_info_0)),
    ((MR_Box) (&mercury__io__io__type_ctor_info_text_output_stream_0)),
    ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_character_0)),
    ((MR_Box) (&mercury__io__io__type_ctor_info_state_0)),
    ((MR_Box) (&mercury__io__io__type_ctor_info_state_0))
  },
  /* row   4 */
  {
    NULL,
    ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_6[0])),
    ((MR_Box) ((MR_Integer) 5)),
    ((MR_Box) (&mercury__private_builtin__private_builtin__type_ctor_info_typeclass_info_0)),
    ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_string_0)),
    ((MR_Box) ((MR_Integer) 1)),
    ((MR_Box) ((MR_Integer) 2)),
    ((MR_Box) ((MR_Integer) 2))
  },
  /* row   5 */
  {
    NULL,
    ((MR_Box) (NULL)),
    ((MR_Box) ((MR_Integer) 5)),
    ((MR_Box) (&mercury__private_builtin__private_builtin__type_ctor_info_typeclass_info_0)),
    ((MR_Box) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_required_feature_0)),
    ((MR_Box) (&mercury__string__builder__string__builder__type_ctor_info_handle_0)),
    ((MR_Box) (&mercury__string__builder__string__builder__type_ctor_info_state_0)),
    ((MR_Box) (&mercury__string__builder__string__builder__type_ctor_info_state_0))
  },
  /* row   6 */
  {
    NULL,
    ((MR_Box) (NULL)),
    ((MR_Box) ((MR_Integer) 5)),
    ((MR_Box) (&mercury__private_builtin__private_builtin__type_ctor_info_typeclass_info_0)),
    ((MR_Box) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_required_feature_0)),
    ((MR_Box) (&mercury__io__io__type_ctor_info_text_output_stream_0)),
    ((MR_Box) (&mercury__io__io__type_ctor_info_state_0)),
    ((MR_Box) (&mercury__io__io__type_ctor_info_state_0))
  },
};

static /* final */ const MR_Box parse_tree__parse_tree_out_pragma_scalar_common_11[2][7] = {
  /* row   0 */
  {
    NULL,
    ((MR_Box) (NULL)),
    ((MR_Box) ((MR_Integer) 4)),
    ((MR_Box) (&parse_tree__parse_tree_out_pragma__varset__pti_varset_1__plain_parse_tree__prog_data__type_ctor_info_tvar_type_0)),
    ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_var_name_print_0)),
    ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_type_0)),
    ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_string_0))
  },
  /* row   1 */
  {
    NULL,
    ((MR_Box) (NULL)),
    ((MR_Box) ((MR_Integer) 4)),
    ((MR_Box) (&parse_tree__parse_tree_out_pragma__varset__pti_varset_1__plain_parse_tree__prog_data__type_ctor_info_prog_var_type_0)),
    ((MR_Box) (&parse_tree__parse_tree_out_pragma__varset__pti_varset_1__plain_parse_tree__prog_data__type_ctor_info_tvar_type_0)),
    ((MR_Box) (&parse_tree__parse_tree_out_pragma__pair__pti_pair_2__plain_parse_tree__prog_data_pragma__type_ctor_info_datastruct_0__plain_parse_tree__prog_data_pragma__type_ctor_info_datastruct_0)),
    ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_string_0))
  },
};

static /* final */ const MR_Box parse_tree__parse_tree_out_pragma_scalar_common_13[1][6] = {
  /* row   0 */
  {
    NULL,
    ((MR_Box) (NULL)),
    ((MR_Box) ((MR_Integer) 3)),
    ((MR_Box) (&parse_tree__parse_tree_out_pragma__varset__pti_varset_1__plain_parse_tree__prog_data__type_ctor_info_tvar_type_0)),
    ((MR_Box) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_unit_selector_0)),
    ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_string_0))
  },
};


static /* final */ const struct parse_tree__parse_tree_out_pragma__vector_common_type_10_0_s parse_tree__parse_tree_out_pragma_vector_common_10[55] = {
  /* row   0 */   { (MR_String) "inline" },
  /* row   1 */   { (MR_String) "no_inline" },
  /* row   2 */   { (MR_String) "consider_used" },
  /* row   3 */   { (MR_String) "mode_check_clauses" },
  /* row   4 */   { (MR_String) "no_determinism_warning" },
  /* row   5 */   { (MR_String) "promise_pure" },
  /* row   6 */   { (MR_String) "promise_semipure" },
  /* row   7 */   { (MR_String) "promise_equivalent_clauses" },
  /* row   8 */   { (MR_String) "require_switch_arms_in_type_order" },
  /* row   9 */   { (MR_String) "not_tabled_for_io" },
  /* row  10 */   { (MR_String) "tabled_for_io" },
  /* row  11 */   { (MR_String) "tabled_for_io_unitize" },
  /* row  12 */   { (MR_String) "tabled_for_descendant_io" },
  /* row  13 */   { (MR_String) "concurrency" },
  /* row  14 */   { (MR_String) "single_prec_float" },
  /* row  15 */   { (MR_String) "double_prec_float" },
  /* row  16 */   { (MR_String) "memo" },
  /* row  17 */   { (MR_String) "parallel_conj" },
  /* row  18 */   { (MR_String) "trailing" },
  /* row  19 */   { (MR_String) "strict_sequential" },
  /* row  20 */   { (MR_String) "conservative_gc" },
  /* row  21 */   { (MR_String) "concurrency" },
  /* row  22 */   { (MR_String) "single_prec_float" },
  /* row  23 */   { (MR_String) "double_prec_float" },
  /* row  24 */   { (MR_String) "memo" },
  /* row  25 */   { (MR_String) "parallel_conj" },
  /* row  26 */   { (MR_String) "trailing" },
  /* row  27 */   { (MR_String) "strict_sequential" },
  /* row  28 */   { (MR_String) "conservative_gc" },
  /* row  29 */   { (MR_String) "concurrency" },
  /* row  30 */   { (MR_String) "single_prec_float" },
  /* row  31 */   { (MR_String) "double_prec_float" },
  /* row  32 */   { (MR_String) "memo" },
  /* row  33 */   { (MR_String) "parallel_conj" },
  /* row  34 */   { (MR_String) "trailing" },
  /* row  35 */   { (MR_String) "strict_sequential" },
  /* row  36 */   { (MR_String) "conservative_gc" },
  /* row  37 */   { (MR_String) "inline" },
  /* row  38 */   { (MR_String) "no_inline" },
  /* row  39 */   { (MR_String) "consider_used" },
  /* row  40 */   { (MR_String) "mode_check_clauses" },
  /* row  41 */   { (MR_String) "no_determinism_warning" },
  /* row  42 */   { (MR_String) "promise_pure" },
  /* row  43 */   { (MR_String) "promise_semipure" },
  /* row  44 */   { (MR_String) "promise_equivalent_clauses" },
  /* row  45 */   { (MR_String) "require_switch_arms_in_type_order" },
  /* row  46 */   { (MR_String) "inline" },
  /* row  47 */   { (MR_String) "no_inline" },
  /* row  48 */   { (MR_String) "consider_used" },
  /* row  49 */   { (MR_String) "mode_check_clauses" },
  /* row  50 */   { (MR_String) "no_determinism_warning" },
  /* row  51 */   { (MR_String) "promise_pure" },
  /* row  52 */   { (MR_String) "promise_semipure" },
  /* row  53 */   { (MR_String) "promise_equivalent_clauses" },
  /* row  54 */   { (MR_String) "require_switch_arms_in_type_order" },
};

static /* final */ const struct parse_tree__parse_tree_out_pragma__vector_common_type_12_0_s parse_tree__parse_tree_out_pragma_vector_common_12[8] = {
  /* row   0 */   { (MR_Word) (MR_mkword(1, &parse_tree__parse_tree_out_pragma_scalar_common_4[17])) },
  /* row   1 */   { (MR_Word) (MR_mkword(1, &parse_tree__parse_tree_out_pragma_scalar_common_4[15])) },
  /* row   2 */   { (MR_Word) (MR_mkword(1, &parse_tree__parse_tree_out_pragma_scalar_common_4[16])) },
  /* row   3 */   { (MR_Word) ((MR_Unsigned) 0U) },
  /* row   4 */   { (MR_Word) (MR_mkword(1, &parse_tree__parse_tree_out_pragma_scalar_common_4[20])) },
  /* row   5 */   { (MR_Word) (MR_mkword(1, &parse_tree__parse_tree_out_pragma_scalar_common_4[19])) },
  /* row   6 */   { (MR_Word) (MR_mkword(1, &parse_tree__parse_tree_out_pragma_scalar_common_4[18])) },
  /* row   7 */   { (MR_Word) ((MR_Unsigned) 0U) },
};


#include "array.mh"
#include "bitmap.mh"
#include "io.mh"
#include "string.mh"
#include "time.mh"
#include "io.stream_ops.mh"


static const MR_FA_PseudoTypeInfo_Struct1 parse_tree__parse_tree_out_pragma__varset__pti_varset_1__plain_parse_tree__prog_data__type_ctor_info_tvar_type_0 = {
  &mercury__varset__varset__type_ctor_info_varset_1,
  { (MR_PseudoTypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_tvar_type_0) }
};

static const MR_FA_PseudoTypeInfo_Struct1 parse_tree__parse_tree_out_pragma__one_or_more__pti_one_or_more_1__plain_parse_tree__prog_data_pragma__type_ctor_info_tvar_subst_0 = {
  &mercury__one_or_more__one_or_more__type_ctor_info_one_or_more_1,
  { (MR_PseudoTypeInfo) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_tvar_subst_0) }
};

static const MR_FA_PseudoTypeInfo_Struct1 parse_tree__parse_tree_out_pragma__maybe__pti_maybe_1__plain_parse_tree__prog_data_pragma__type_ctor_info_arg_tabling_method_0 = {
  &mercury__maybe__maybe__type_ctor_info_maybe_1,
  { (MR_PseudoTypeInfo) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_arg_tabling_method_0) }
};

static const MR_FA_PseudoTypeInfo_Struct1 parse_tree__parse_tree_out_pragma__varset__pti_varset_1__plain_parse_tree__prog_data__type_ctor_info_prog_var_type_0 = {
  &mercury__varset__varset__type_ctor_info_varset_1,
  { (MR_PseudoTypeInfo) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_var_type_0) }
};

static const MR_FA_PseudoTypeInfo_Struct2 parse_tree__parse_tree_out_pragma__pair__pti_pair_2__plain_parse_tree__prog_data_pragma__type_ctor_info_datastruct_0__plain_parse_tree__prog_data_pragma__type_ctor_info_datastruct_0 = {
  &mercury__pair__pair__type_ctor_info_pair_2,
  {
    (MR_PseudoTypeInfo) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_datastruct_0),
    (MR_PseudoTypeInfo) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_datastruct_0)
  }
};

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_101_115_99_97_112_101_100_95_99_104_97_114_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_16,
  MR_Word S_5,
  MR_Char Char_6)
{
  MR_bool succeeded;
  MR_Char QuoteChar_8;

  switch (Char_6) {
    default:
      succeeded = MR_FALSE;
      break;
    case (MR_Char) 8:
      {
        QuoteChar_8 = (MR_Char) 98;
        succeeded = MR_TRUE;
      }
      break;
    case (MR_Char) 34:
      {
        QuoteChar_8 = (MR_Char) 34;
        succeeded = MR_TRUE;
      }
      break;
    case (MR_Char) 39:
      {
        QuoteChar_8 = (MR_Char) 39;
        succeeded = MR_TRUE;
      }
      break;
    case (MR_Char) 92:
      {
        QuoteChar_8 = (MR_Char) 92;
        succeeded = MR_TRUE;
      }
      break;
  }
  if (succeeded)
  {
    void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 5))));
    MR_Box conv1_STATE_VARIABLE_U_1_12;
    void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv3_STATE_VARIABLE_U_10;

    func_0(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (MR_Word) ((MR_Char) 92)), ((MR_Box) (S_5)), ((MR_Box) ((MR_Integer) 0)), &conv1_STATE_VARIABLE_U_1_12);
    func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 5))));
    func_2(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (MR_Word) (QuoteChar_8)), ((MR_Box) (S_5)), ((MR_Box) ((MR_Integer) 0)), &conv3_STATE_VARIABLE_U_10);
  }
  else
  {
    switch (Char_6) {
      default:
        succeeded = MR_FALSE;
        break;
      case (MR_Char) 9:
        succeeded = MR_TRUE;
        break;
      case (MR_Char) 10:
        succeeded = MR_TRUE;
        break;
    }
    if (!(succeeded))
    {
      succeeded = mercury__term_io__is_mercury_punctuation_char_1_p_0(Char_6);
      if (!(succeeded))
        succeeded = mercury__char__is_alnum_1_p_0(Char_6);
    }
    if (succeeded)
    {
      void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 5))));
      MR_Box conv5_STATE_VARIABLE_U_10;

      func_4(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (MR_Word) (Char_6)), ((MR_Box) (S_5)), ((MR_Box) ((MR_Integer) 0)), &conv5_STATE_VARIABLE_U_10);
    }
    else
    {
      MR_String Var_15;
      void MR_CALL (* func_6)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
      MR_Box conv7_STATE_VARIABLE_U_10;

      Var_15 = mercury__term_io__mercury_escape_char_1_f_0(Char_6);
      func_6 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
      func_6(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (Var_15)), ((MR_Box) (S_5)), ((MR_Box) ((MR_Integer) 0)), &conv7_STATE_VARIABLE_U_10);
    }
  }
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_101_115_99_97_112_101_100_95_99_104_97_114_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_16,
  MR_Char Char_6,
  MR_Word STATE_VARIABLE_U_0_9,
  MR_Word * STATE_VARIABLE_U_10)
{
  MR_bool succeeded;
  MR_Char QuoteChar_8;

  switch (Char_6) {
    default:
      succeeded = MR_FALSE;
      break;
    case (MR_Char) 8:
      {
        QuoteChar_8 = (MR_Char) 98;
        succeeded = MR_TRUE;
      }
      break;
    case (MR_Char) 34:
      {
        QuoteChar_8 = (MR_Char) 34;
        succeeded = MR_TRUE;
      }
      break;
    case (MR_Char) 39:
      {
        QuoteChar_8 = (MR_Char) 39;
        succeeded = MR_TRUE;
      }
      break;
    case (MR_Char) 92:
      {
        QuoteChar_8 = (MR_Char) 92;
        succeeded = MR_TRUE;
      }
      break;
  }
  if (succeeded)
  {
    MR_Word STATE_VARIABLE_U_1_12;
    void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 5))));
    MR_Box conv1_STATE_VARIABLE_U_1_12;
    void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv3_STATE_VARIABLE_U_10;

    func_0(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (MR_Word) ((MR_Char) 92)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_0_9)), &conv1_STATE_VARIABLE_U_1_12);
    STATE_VARIABLE_U_1_12 = ((MR_Word) (conv1_STATE_VARIABLE_U_1_12));
    func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 5))));
    func_2(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (MR_Word) (QuoteChar_8)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_12)), &conv3_STATE_VARIABLE_U_10);
    *STATE_VARIABLE_U_10 = ((MR_Word) (conv3_STATE_VARIABLE_U_10));
  }
  else
  {
    switch (Char_6) {
      default:
        succeeded = MR_FALSE;
        break;
      case (MR_Char) 9:
        succeeded = MR_TRUE;
        break;
      case (MR_Char) 10:
        succeeded = MR_TRUE;
        break;
    }
    if (!(succeeded))
    {
      succeeded = mercury__term_io__is_mercury_punctuation_char_1_p_0(Char_6);
      if (!(succeeded))
        succeeded = mercury__char__is_alnum_1_p_0(Char_6);
    }
    if (succeeded)
    {
      void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 5))));
      MR_Box conv5_STATE_VARIABLE_U_10;

      func_4(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (MR_Word) (Char_6)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_0_9)), &conv5_STATE_VARIABLE_U_10);
      *STATE_VARIABLE_U_10 = ((MR_Word) (conv5_STATE_VARIABLE_U_10));
    }
    else
    {
      MR_String Var_15;
      void MR_CALL (* func_6)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
      MR_Box conv7_STATE_VARIABLE_U_10;

      Var_15 = mercury__term_io__mercury_escape_char_1_f_0(Char_6);
      func_6 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
      func_6(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (Var_15)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_0_9)), &conv7_STATE_VARIABLE_U_10);
      *STATE_VARIABLE_U_10 = ((MR_Word) (conv7_STATE_VARIABLE_U_10));
    }
  }
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_105_116_101_109_95_100_101_99_108_95_109_97_114_107_101_114_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_16,
  MR_Word Stream_5,
  MR_Word DeclMarker_6)
{
  MR_Word MarkerKind_8 = ((MR_Unsigned) ((MR_hl_field(0, DeclMarker_6, 0))) & (MR_Integer) 3);
  MR_Word PredSpec_9 = ((MR_Word) ((MR_hl_field(0, DeclMarker_6, 1))));
  MR_String MarkerKindStr_12;
  MR_Word PFU_17;
  MR_Word PredName_18;
  MR_Word Arity_19;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv1_STATE_VARIABLE_U_1_21;
  void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv3_STATE_VARIABLE_U_2_22;
  void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv5_STATE_VARIABLE_U_3_24;
  void MR_CALL (* func_30)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv31_STATE_VARIABLE_U_5_26;
  void MR_CALL (* func_32)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv33_STATE_VARIABLE_IO_14;

  switch (MarkerKind_8) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 2:
      MarkerKindStr_12 = (MR_String) "check_termination";
      break;
    case (MR_Integer) 1:
      MarkerKindStr_12 = (MR_String) "does_not_terminate";
      break;
    case (MR_Integer) 0:
      MarkerKindStr_12 = (MR_String) "terminates";
      break;
  }
  func_0 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
  func_0(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) ":- pragma ")), ((MR_Box) (Stream_5)), ((MR_Box) ((MR_Integer) 0)), &conv1_STATE_VARIABLE_U_1_21);
  func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
  func_2(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (MarkerKindStr_12)), ((MR_Box) (Stream_5)), ((MR_Box) ((MR_Integer) 0)), &conv3_STATE_VARIABLE_U_2_22);
  func_4 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
  func_4(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) "(")), ((MR_Box) (Stream_5)), ((MR_Box) ((MR_Integer) 0)), &conv5_STATE_VARIABLE_U_3_24);
  PFU_17 = ((MR_Unsigned) ((MR_hl_field(0, PredSpec_9, 0))) & (MR_Integer) 3);
  PredName_18 = ((MR_Word) ((MR_hl_field(0, PredSpec_9, 1))));
  Arity_19 = ((MR_Word) ((MR_hl_field(0, PredSpec_9, 2))));
  switch (PFU_17) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 1:
      {
        MR_String Var_30;
        MR_Integer Arity_37;
        void MR_CALL (* func_6)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv7_STATE_VARIABLE_U_1_31;
        void MR_CALL (* func_8)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv9_STATE_VARIABLE_U_2_33;
        void MR_CALL (* func_10)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv11_STATE_VARIABLE_U_2_40;
        void MR_CALL (* func_12)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv13_STATE_VARIABLE_U_3_35;
        void MR_CALL (* func_14)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv15_STATE_VARIABLE_U_4_25;

        Var_30 = mdbcomp__prim_data__pred_or_func_to_str_1_f_0((MR_Integer) 1);
        func_6 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_6(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (Var_30)), ((MR_Box) (Stream_5)), ((MR_Box) ((MR_Integer) 0)), &conv7_STATE_VARIABLE_U_1_31);
        func_8 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_8(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) "(")), ((MR_Box) (Stream_5)), ((MR_Box) ((MR_Integer) 0)), &conv9_STATE_VARIABLE_U_2_33);
        Arity_37 = (MR_Integer) (Arity_19);
        parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_98_114_97_99_107_101_116_101_100_95_115_121_109_95_110_97_109_101_95_110_103_116_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_16, (MR_Integer) 1, PredName_18, Stream_5);
        func_10 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_10(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) "/")), ((MR_Box) (Stream_5)), ((MR_Box) ((MR_Integer) 0)), &conv11_STATE_VARIABLE_U_2_40);
        func_12 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 10))));
        func_12(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (Arity_37)), ((MR_Box) (Stream_5)), ((MR_Box) ((MR_Integer) 0)), &conv13_STATE_VARIABLE_U_3_35);
        func_14 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_14(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) ")")), ((MR_Box) (Stream_5)), ((MR_Box) ((MR_Integer) 0)), &conv15_STATE_VARIABLE_U_4_25);
      }
      break;
    case (MR_Integer) 0:
      {
        MR_String Var_41;
        MR_Integer Arity_48;
        void MR_CALL (* func_16)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv17_STATE_VARIABLE_U_1_42;
        void MR_CALL (* func_18)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv19_STATE_VARIABLE_U_2_44;
        void MR_CALL (* func_20)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv21_STATE_VARIABLE_U_2_51;
        void MR_CALL (* func_22)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv23_STATE_VARIABLE_U_3_46;
        void MR_CALL (* func_24)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv25_STATE_VARIABLE_U_4_25;

        Var_41 = mdbcomp__prim_data__pred_or_func_to_str_1_f_0((MR_Integer) 0);
        func_16 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_16(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (Var_41)), ((MR_Box) (Stream_5)), ((MR_Box) ((MR_Integer) 0)), &conv17_STATE_VARIABLE_U_1_42);
        func_18 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_18(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) "(")), ((MR_Box) (Stream_5)), ((MR_Box) ((MR_Integer) 0)), &conv19_STATE_VARIABLE_U_2_44);
        Arity_48 = (MR_Integer) (Arity_19);
        parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_98_114_97_99_107_101_116_101_100_95_115_121_109_95_110_97_109_101_95_110_103_116_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_16, (MR_Integer) 1, PredName_18, Stream_5);
        func_20 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_20(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) "/")), ((MR_Box) (Stream_5)), ((MR_Box) ((MR_Integer) 0)), &conv21_STATE_VARIABLE_U_2_51);
        func_22 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 10))));
        func_22(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (Arity_48)), ((MR_Box) (Stream_5)), ((MR_Box) ((MR_Integer) 0)), &conv23_STATE_VARIABLE_U_3_46);
        func_24 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_24(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) ")")), ((MR_Box) (Stream_5)), ((MR_Box) ((MR_Integer) 0)), &conv25_STATE_VARIABLE_U_4_25);
      }
      break;
    case (MR_Integer) 2:
      {
        MR_Integer Arity_53 = (MR_Integer) (Arity_19);
        void MR_CALL (* func_26)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv27_STATE_VARIABLE_U_2_56;
        void MR_CALL (* func_28)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv29_STATE_VARIABLE_U_4_25;

        parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_98_114_97_99_107_101_116_101_100_95_115_121_109_95_110_97_109_101_95_110_103_116_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_16, (MR_Integer) 0, PredName_18, Stream_5);
        func_26 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_26(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) "/")), ((MR_Box) (Stream_5)), ((MR_Box) ((MR_Integer) 0)), &conv27_STATE_VARIABLE_U_2_56);
        func_28 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 10))));
        func_28(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (Arity_53)), ((MR_Box) (Stream_5)), ((MR_Box) ((MR_Integer) 0)), &conv29_STATE_VARIABLE_U_4_25);
      }
      break;
  }
  func_30 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
  func_30(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) "")), ((MR_Box) (Stream_5)), ((MR_Box) ((MR_Integer) 0)), &conv31_STATE_VARIABLE_U_5_26);
  func_32 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
  func_32(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) ").\n")), ((MR_Box) (Stream_5)), ((MR_Box) ((MR_Integer) 0)), &conv33_STATE_VARIABLE_IO_14);
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_105_116_101_109_95_100_101_99_108_95_109_97_114_107_101_114_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_16,
  MR_Word DeclMarker_6,
  MR_Word STATE_VARIABLE_IO_0_13,
  MR_Word * STATE_VARIABLE_IO_14)
{
  MR_Word MarkerKind_8 = ((MR_Unsigned) ((MR_hl_field(0, DeclMarker_6, 0))) & (MR_Integer) 3);
  MR_Word PredSpec_9 = ((MR_Word) ((MR_hl_field(0, DeclMarker_6, 1))));
  MR_String MarkerKindStr_12;
  MR_Word PFU_17;
  MR_Word PredName_18;
  MR_Word Arity_19;
  MR_Word STATE_VARIABLE_U_1_21;
  MR_Word STATE_VARIABLE_U_2_22;
  MR_Word STATE_VARIABLE_U_3_24;
  MR_Word STATE_VARIABLE_U_4_25;
  MR_Word STATE_VARIABLE_U_5_26;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv1_STATE_VARIABLE_U_1_21;
  void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv3_STATE_VARIABLE_U_2_22;
  void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv5_STATE_VARIABLE_U_3_24;
  void MR_CALL (* func_30)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv31_STATE_VARIABLE_U_5_26;
  void MR_CALL (* func_32)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv33_STATE_VARIABLE_IO_14;

  switch (MarkerKind_8) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 2:
      MarkerKindStr_12 = (MR_String) "check_termination";
      break;
    case (MR_Integer) 1:
      MarkerKindStr_12 = (MR_String) "does_not_terminate";
      break;
    case (MR_Integer) 0:
      MarkerKindStr_12 = (MR_String) "terminates";
      break;
  }
  func_0 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
  func_0(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) ":- pragma ")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_IO_0_13)), &conv1_STATE_VARIABLE_U_1_21);
  STATE_VARIABLE_U_1_21 = ((MR_Word) (conv1_STATE_VARIABLE_U_1_21));
  func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
  func_2(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (MarkerKindStr_12)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_21)), &conv3_STATE_VARIABLE_U_2_22);
  STATE_VARIABLE_U_2_22 = ((MR_Word) (conv3_STATE_VARIABLE_U_2_22));
  func_4 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
  func_4(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) "(")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_22)), &conv5_STATE_VARIABLE_U_3_24);
  STATE_VARIABLE_U_3_24 = ((MR_Word) (conv5_STATE_VARIABLE_U_3_24));
  PFU_17 = ((MR_Unsigned) ((MR_hl_field(0, PredSpec_9, 0))) & (MR_Integer) 3);
  PredName_18 = ((MR_Word) ((MR_hl_field(0, PredSpec_9, 1))));
  Arity_19 = ((MR_Word) ((MR_hl_field(0, PredSpec_9, 2))));
  switch (PFU_17) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 1:
      {
        MR_String Var_30;
        MR_Word STATE_VARIABLE_U_1_31;
        MR_Word STATE_VARIABLE_U_2_33;
        MR_Word STATE_VARIABLE_U_3_35;
        MR_Integer Arity_37;
        MR_Word STATE_VARIABLE_U_1_38;
        MR_Word STATE_VARIABLE_U_2_40;
        void MR_CALL (* func_6)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv7_STATE_VARIABLE_U_1_31;
        void MR_CALL (* func_8)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv9_STATE_VARIABLE_U_2_33;
        void MR_CALL (* func_10)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv11_STATE_VARIABLE_U_2_40;
        void MR_CALL (* func_12)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv13_STATE_VARIABLE_U_3_35;
        void MR_CALL (* func_14)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv15_STATE_VARIABLE_U_4_25;

        Var_30 = mdbcomp__prim_data__pred_or_func_to_str_1_f_0((MR_Integer) 1);
        func_6 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_6(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (Var_30)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_24)), &conv7_STATE_VARIABLE_U_1_31);
        STATE_VARIABLE_U_1_31 = ((MR_Word) (conv7_STATE_VARIABLE_U_1_31));
        func_8 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_8(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) "(")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_31)), &conv9_STATE_VARIABLE_U_2_33);
        STATE_VARIABLE_U_2_33 = ((MR_Word) (conv9_STATE_VARIABLE_U_2_33));
        Arity_37 = (MR_Integer) (Arity_19);
        parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_98_114_97_99_107_101_116_101_100_95_115_121_109_95_110_97_109_101_95_110_103_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_16, (MR_Integer) 1, PredName_18, STATE_VARIABLE_U_2_33, &STATE_VARIABLE_U_1_38);
        func_10 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_10(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) "/")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_38)), &conv11_STATE_VARIABLE_U_2_40);
        STATE_VARIABLE_U_2_40 = ((MR_Word) (conv11_STATE_VARIABLE_U_2_40));
        func_12 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 10))));
        func_12(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (Arity_37)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_40)), &conv13_STATE_VARIABLE_U_3_35);
        STATE_VARIABLE_U_3_35 = ((MR_Word) (conv13_STATE_VARIABLE_U_3_35));
        func_14 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_14(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) ")")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_35)), &conv15_STATE_VARIABLE_U_4_25);
        STATE_VARIABLE_U_4_25 = ((MR_Word) (conv15_STATE_VARIABLE_U_4_25));
      }
      break;
    case (MR_Integer) 0:
      {
        MR_String Var_41;
        MR_Word STATE_VARIABLE_U_1_42;
        MR_Word STATE_VARIABLE_U_2_44;
        MR_Word STATE_VARIABLE_U_3_46;
        MR_Integer Arity_48;
        MR_Word STATE_VARIABLE_U_1_49;
        MR_Word STATE_VARIABLE_U_2_51;
        void MR_CALL (* func_16)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv17_STATE_VARIABLE_U_1_42;
        void MR_CALL (* func_18)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv19_STATE_VARIABLE_U_2_44;
        void MR_CALL (* func_20)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv21_STATE_VARIABLE_U_2_51;
        void MR_CALL (* func_22)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv23_STATE_VARIABLE_U_3_46;
        void MR_CALL (* func_24)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv25_STATE_VARIABLE_U_4_25;

        Var_41 = mdbcomp__prim_data__pred_or_func_to_str_1_f_0((MR_Integer) 0);
        func_16 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_16(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (Var_41)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_24)), &conv17_STATE_VARIABLE_U_1_42);
        STATE_VARIABLE_U_1_42 = ((MR_Word) (conv17_STATE_VARIABLE_U_1_42));
        func_18 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_18(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) "(")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_42)), &conv19_STATE_VARIABLE_U_2_44);
        STATE_VARIABLE_U_2_44 = ((MR_Word) (conv19_STATE_VARIABLE_U_2_44));
        Arity_48 = (MR_Integer) (Arity_19);
        parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_98_114_97_99_107_101_116_101_100_95_115_121_109_95_110_97_109_101_95_110_103_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_16, (MR_Integer) 1, PredName_18, STATE_VARIABLE_U_2_44, &STATE_VARIABLE_U_1_49);
        func_20 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_20(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) "/")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_49)), &conv21_STATE_VARIABLE_U_2_51);
        STATE_VARIABLE_U_2_51 = ((MR_Word) (conv21_STATE_VARIABLE_U_2_51));
        func_22 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 10))));
        func_22(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (Arity_48)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_51)), &conv23_STATE_VARIABLE_U_3_46);
        STATE_VARIABLE_U_3_46 = ((MR_Word) (conv23_STATE_VARIABLE_U_3_46));
        func_24 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_24(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) ")")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_46)), &conv25_STATE_VARIABLE_U_4_25);
        STATE_VARIABLE_U_4_25 = ((MR_Word) (conv25_STATE_VARIABLE_U_4_25));
      }
      break;
    case (MR_Integer) 2:
      {
        MR_Integer Arity_53 = (MR_Integer) (Arity_19);
        MR_Word STATE_VARIABLE_U_1_54;
        MR_Word STATE_VARIABLE_U_2_56;
        void MR_CALL (* func_26)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv27_STATE_VARIABLE_U_2_56;
        void MR_CALL (* func_28)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv29_STATE_VARIABLE_U_4_25;

        parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_98_114_97_99_107_101_116_101_100_95_115_121_109_95_110_97_109_101_95_110_103_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_16, (MR_Integer) 0, PredName_18, STATE_VARIABLE_U_3_24, &STATE_VARIABLE_U_1_54);
        func_26 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_26(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) "/")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_54)), &conv27_STATE_VARIABLE_U_2_56);
        STATE_VARIABLE_U_2_56 = ((MR_Word) (conv27_STATE_VARIABLE_U_2_56));
        func_28 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 10))));
        func_28(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (Arity_53)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_56)), &conv29_STATE_VARIABLE_U_4_25);
        STATE_VARIABLE_U_4_25 = ((MR_Word) (conv29_STATE_VARIABLE_U_4_25));
      }
      break;
  }
  func_30 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
  func_30(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) "")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_4_25)), &conv31_STATE_VARIABLE_U_5_26);
  STATE_VARIABLE_U_5_26 = ((MR_Word) (conv31_STATE_VARIABLE_U_5_26));
  func_32 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
  func_32(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) ").\n")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_5_26)), &conv33_STATE_VARIABLE_IO_14);
  *STATE_VARIABLE_IO_14 = ((MR_Word) (conv33_STATE_VARIABLE_IO_14));
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_105_116_101_109_95_105_109_112_108_95_109_97_114_107_101_114_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_16,
  MR_Word Stream_5,
  MR_Word ImplMarker_6)
{
  MR_Word MarkerKind_8 = ((MR_Unsigned) ((MR_hl_field(0, ImplMarker_6, 0))) & (MR_Integer) 15);
  MR_Word PredSpec_9 = ((MR_Word) ((MR_hl_field(0, ImplMarker_6, 1))));
  MR_String MarkerKindStr_12 = ((&parse_tree__parse_tree_out_pragma_vector_common_10[46 + MarkerKind_8]))->parse_tree__parse_tree_out_pragma__vector_common_type_10_0__vct_10_f_0;
  MR_Word PFU_17;
  MR_Word PredName_18;
  MR_Word Arity_19;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
  MR_Box conv1_STATE_VARIABLE_U_1_21;
  void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv3_STATE_VARIABLE_U_2_22;
  void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv5_STATE_VARIABLE_U_3_24;
  void MR_CALL (* func_30)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv31_STATE_VARIABLE_U_5_26;
  void MR_CALL (* func_32)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv33_STATE_VARIABLE_IO_14;

  func_0(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) ":- pragma ")), ((MR_Box) (Stream_5)), ((MR_Box) ((MR_Integer) 0)), &conv1_STATE_VARIABLE_U_1_21);
  func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
  func_2(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (MarkerKindStr_12)), ((MR_Box) (Stream_5)), ((MR_Box) ((MR_Integer) 0)), &conv3_STATE_VARIABLE_U_2_22);
  func_4 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
  func_4(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) "(")), ((MR_Box) (Stream_5)), ((MR_Box) ((MR_Integer) 0)), &conv5_STATE_VARIABLE_U_3_24);
  PFU_17 = ((MR_Unsigned) ((MR_hl_field(0, PredSpec_9, 0))) & (MR_Integer) 3);
  PredName_18 = ((MR_Word) ((MR_hl_field(0, PredSpec_9, 1))));
  Arity_19 = ((MR_Word) ((MR_hl_field(0, PredSpec_9, 2))));
  switch (PFU_17) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 1:
      {
        MR_String Var_30;
        MR_Integer Arity_37;
        void MR_CALL (* func_6)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv7_STATE_VARIABLE_U_1_31;
        void MR_CALL (* func_8)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv9_STATE_VARIABLE_U_2_33;
        void MR_CALL (* func_10)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv11_STATE_VARIABLE_U_2_40;
        void MR_CALL (* func_12)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv13_STATE_VARIABLE_U_3_35;
        void MR_CALL (* func_14)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv15_STATE_VARIABLE_U_4_25;

        Var_30 = mdbcomp__prim_data__pred_or_func_to_str_1_f_0((MR_Integer) 1);
        func_6 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_6(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (Var_30)), ((MR_Box) (Stream_5)), ((MR_Box) ((MR_Integer) 0)), &conv7_STATE_VARIABLE_U_1_31);
        func_8 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_8(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) "(")), ((MR_Box) (Stream_5)), ((MR_Box) ((MR_Integer) 0)), &conv9_STATE_VARIABLE_U_2_33);
        Arity_37 = (MR_Integer) (Arity_19);
        parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_98_114_97_99_107_101_116_101_100_95_115_121_109_95_110_97_109_101_95_110_103_116_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_16, (MR_Integer) 1, PredName_18, Stream_5);
        func_10 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_10(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) "/")), ((MR_Box) (Stream_5)), ((MR_Box) ((MR_Integer) 0)), &conv11_STATE_VARIABLE_U_2_40);
        func_12 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 10))));
        func_12(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (Arity_37)), ((MR_Box) (Stream_5)), ((MR_Box) ((MR_Integer) 0)), &conv13_STATE_VARIABLE_U_3_35);
        func_14 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_14(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) ")")), ((MR_Box) (Stream_5)), ((MR_Box) ((MR_Integer) 0)), &conv15_STATE_VARIABLE_U_4_25);
      }
      break;
    case (MR_Integer) 0:
      {
        MR_String Var_41;
        MR_Integer Arity_48;
        void MR_CALL (* func_16)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv17_STATE_VARIABLE_U_1_42;
        void MR_CALL (* func_18)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv19_STATE_VARIABLE_U_2_44;
        void MR_CALL (* func_20)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv21_STATE_VARIABLE_U_2_51;
        void MR_CALL (* func_22)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv23_STATE_VARIABLE_U_3_46;
        void MR_CALL (* func_24)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv25_STATE_VARIABLE_U_4_25;

        Var_41 = mdbcomp__prim_data__pred_or_func_to_str_1_f_0((MR_Integer) 0);
        func_16 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_16(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (Var_41)), ((MR_Box) (Stream_5)), ((MR_Box) ((MR_Integer) 0)), &conv17_STATE_VARIABLE_U_1_42);
        func_18 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_18(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) "(")), ((MR_Box) (Stream_5)), ((MR_Box) ((MR_Integer) 0)), &conv19_STATE_VARIABLE_U_2_44);
        Arity_48 = (MR_Integer) (Arity_19);
        parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_98_114_97_99_107_101_116_101_100_95_115_121_109_95_110_97_109_101_95_110_103_116_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_16, (MR_Integer) 1, PredName_18, Stream_5);
        func_20 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_20(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) "/")), ((MR_Box) (Stream_5)), ((MR_Box) ((MR_Integer) 0)), &conv21_STATE_VARIABLE_U_2_51);
        func_22 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 10))));
        func_22(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (Arity_48)), ((MR_Box) (Stream_5)), ((MR_Box) ((MR_Integer) 0)), &conv23_STATE_VARIABLE_U_3_46);
        func_24 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_24(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) ")")), ((MR_Box) (Stream_5)), ((MR_Box) ((MR_Integer) 0)), &conv25_STATE_VARIABLE_U_4_25);
      }
      break;
    case (MR_Integer) 2:
      {
        MR_Integer Arity_53 = (MR_Integer) (Arity_19);
        void MR_CALL (* func_26)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv27_STATE_VARIABLE_U_2_56;
        void MR_CALL (* func_28)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv29_STATE_VARIABLE_U_4_25;

        parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_98_114_97_99_107_101_116_101_100_95_115_121_109_95_110_97_109_101_95_110_103_116_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_16, (MR_Integer) 0, PredName_18, Stream_5);
        func_26 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_26(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) "/")), ((MR_Box) (Stream_5)), ((MR_Box) ((MR_Integer) 0)), &conv27_STATE_VARIABLE_U_2_56);
        func_28 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 10))));
        func_28(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (Arity_53)), ((MR_Box) (Stream_5)), ((MR_Box) ((MR_Integer) 0)), &conv29_STATE_VARIABLE_U_4_25);
      }
      break;
  }
  func_30 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
  func_30(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) "")), ((MR_Box) (Stream_5)), ((MR_Box) ((MR_Integer) 0)), &conv31_STATE_VARIABLE_U_5_26);
  func_32 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
  func_32(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) ").\n")), ((MR_Box) (Stream_5)), ((MR_Box) ((MR_Integer) 0)), &conv33_STATE_VARIABLE_IO_14);
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_105_116_101_109_95_105_109_112_108_95_109_97_114_107_101_114_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_16,
  MR_Word ImplMarker_6,
  MR_Word STATE_VARIABLE_IO_0_13,
  MR_Word * STATE_VARIABLE_IO_14)
{
  MR_Word MarkerKind_8 = ((MR_Unsigned) ((MR_hl_field(0, ImplMarker_6, 0))) & (MR_Integer) 15);
  MR_Word PredSpec_9 = ((MR_Word) ((MR_hl_field(0, ImplMarker_6, 1))));
  MR_String MarkerKindStr_12 = ((&parse_tree__parse_tree_out_pragma_vector_common_10[37 + MarkerKind_8]))->parse_tree__parse_tree_out_pragma__vector_common_type_10_0__vct_10_f_0;
  MR_Word PFU_17;
  MR_Word PredName_18;
  MR_Word Arity_19;
  MR_Word STATE_VARIABLE_U_1_21;
  MR_Word STATE_VARIABLE_U_2_22;
  MR_Word STATE_VARIABLE_U_3_24;
  MR_Word STATE_VARIABLE_U_4_25;
  MR_Word STATE_VARIABLE_U_5_26;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
  MR_Box conv1_STATE_VARIABLE_U_1_21;
  void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv3_STATE_VARIABLE_U_2_22;
  void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv5_STATE_VARIABLE_U_3_24;
  void MR_CALL (* func_30)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv31_STATE_VARIABLE_U_5_26;
  void MR_CALL (* func_32)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv33_STATE_VARIABLE_IO_14;

  func_0(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) ":- pragma ")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_IO_0_13)), &conv1_STATE_VARIABLE_U_1_21);
  STATE_VARIABLE_U_1_21 = ((MR_Word) (conv1_STATE_VARIABLE_U_1_21));
  func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
  func_2(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (MarkerKindStr_12)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_21)), &conv3_STATE_VARIABLE_U_2_22);
  STATE_VARIABLE_U_2_22 = ((MR_Word) (conv3_STATE_VARIABLE_U_2_22));
  func_4 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
  func_4(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) "(")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_22)), &conv5_STATE_VARIABLE_U_3_24);
  STATE_VARIABLE_U_3_24 = ((MR_Word) (conv5_STATE_VARIABLE_U_3_24));
  PFU_17 = ((MR_Unsigned) ((MR_hl_field(0, PredSpec_9, 0))) & (MR_Integer) 3);
  PredName_18 = ((MR_Word) ((MR_hl_field(0, PredSpec_9, 1))));
  Arity_19 = ((MR_Word) ((MR_hl_field(0, PredSpec_9, 2))));
  switch (PFU_17) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 1:
      {
        MR_String Var_30;
        MR_Word STATE_VARIABLE_U_1_31;
        MR_Word STATE_VARIABLE_U_2_33;
        MR_Word STATE_VARIABLE_U_3_35;
        MR_Integer Arity_37;
        MR_Word STATE_VARIABLE_U_1_38;
        MR_Word STATE_VARIABLE_U_2_40;
        void MR_CALL (* func_6)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv7_STATE_VARIABLE_U_1_31;
        void MR_CALL (* func_8)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv9_STATE_VARIABLE_U_2_33;
        void MR_CALL (* func_10)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv11_STATE_VARIABLE_U_2_40;
        void MR_CALL (* func_12)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv13_STATE_VARIABLE_U_3_35;
        void MR_CALL (* func_14)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv15_STATE_VARIABLE_U_4_25;

        Var_30 = mdbcomp__prim_data__pred_or_func_to_str_1_f_0((MR_Integer) 1);
        func_6 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_6(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (Var_30)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_24)), &conv7_STATE_VARIABLE_U_1_31);
        STATE_VARIABLE_U_1_31 = ((MR_Word) (conv7_STATE_VARIABLE_U_1_31));
        func_8 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_8(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) "(")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_31)), &conv9_STATE_VARIABLE_U_2_33);
        STATE_VARIABLE_U_2_33 = ((MR_Word) (conv9_STATE_VARIABLE_U_2_33));
        Arity_37 = (MR_Integer) (Arity_19);
        parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_98_114_97_99_107_101_116_101_100_95_115_121_109_95_110_97_109_101_95_110_103_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_16, (MR_Integer) 1, PredName_18, STATE_VARIABLE_U_2_33, &STATE_VARIABLE_U_1_38);
        func_10 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_10(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) "/")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_38)), &conv11_STATE_VARIABLE_U_2_40);
        STATE_VARIABLE_U_2_40 = ((MR_Word) (conv11_STATE_VARIABLE_U_2_40));
        func_12 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 10))));
        func_12(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (Arity_37)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_40)), &conv13_STATE_VARIABLE_U_3_35);
        STATE_VARIABLE_U_3_35 = ((MR_Word) (conv13_STATE_VARIABLE_U_3_35));
        func_14 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_14(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) ")")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_35)), &conv15_STATE_VARIABLE_U_4_25);
        STATE_VARIABLE_U_4_25 = ((MR_Word) (conv15_STATE_VARIABLE_U_4_25));
      }
      break;
    case (MR_Integer) 0:
      {
        MR_String Var_41;
        MR_Word STATE_VARIABLE_U_1_42;
        MR_Word STATE_VARIABLE_U_2_44;
        MR_Word STATE_VARIABLE_U_3_46;
        MR_Integer Arity_48;
        MR_Word STATE_VARIABLE_U_1_49;
        MR_Word STATE_VARIABLE_U_2_51;
        void MR_CALL (* func_16)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv17_STATE_VARIABLE_U_1_42;
        void MR_CALL (* func_18)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv19_STATE_VARIABLE_U_2_44;
        void MR_CALL (* func_20)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv21_STATE_VARIABLE_U_2_51;
        void MR_CALL (* func_22)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv23_STATE_VARIABLE_U_3_46;
        void MR_CALL (* func_24)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv25_STATE_VARIABLE_U_4_25;

        Var_41 = mdbcomp__prim_data__pred_or_func_to_str_1_f_0((MR_Integer) 0);
        func_16 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_16(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (Var_41)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_24)), &conv17_STATE_VARIABLE_U_1_42);
        STATE_VARIABLE_U_1_42 = ((MR_Word) (conv17_STATE_VARIABLE_U_1_42));
        func_18 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_18(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) "(")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_42)), &conv19_STATE_VARIABLE_U_2_44);
        STATE_VARIABLE_U_2_44 = ((MR_Word) (conv19_STATE_VARIABLE_U_2_44));
        Arity_48 = (MR_Integer) (Arity_19);
        parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_98_114_97_99_107_101_116_101_100_95_115_121_109_95_110_97_109_101_95_110_103_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_16, (MR_Integer) 1, PredName_18, STATE_VARIABLE_U_2_44, &STATE_VARIABLE_U_1_49);
        func_20 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_20(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) "/")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_49)), &conv21_STATE_VARIABLE_U_2_51);
        STATE_VARIABLE_U_2_51 = ((MR_Word) (conv21_STATE_VARIABLE_U_2_51));
        func_22 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 10))));
        func_22(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (Arity_48)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_51)), &conv23_STATE_VARIABLE_U_3_46);
        STATE_VARIABLE_U_3_46 = ((MR_Word) (conv23_STATE_VARIABLE_U_3_46));
        func_24 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_24(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) ")")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_46)), &conv25_STATE_VARIABLE_U_4_25);
        STATE_VARIABLE_U_4_25 = ((MR_Word) (conv25_STATE_VARIABLE_U_4_25));
      }
      break;
    case (MR_Integer) 2:
      {
        MR_Integer Arity_53 = (MR_Integer) (Arity_19);
        MR_Word STATE_VARIABLE_U_1_54;
        MR_Word STATE_VARIABLE_U_2_56;
        void MR_CALL (* func_26)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv27_STATE_VARIABLE_U_2_56;
        void MR_CALL (* func_28)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv29_STATE_VARIABLE_U_4_25;

        parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_98_114_97_99_107_101_116_101_100_95_115_121_109_95_110_97_109_101_95_110_103_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_16, (MR_Integer) 0, PredName_18, STATE_VARIABLE_U_3_24, &STATE_VARIABLE_U_1_54);
        func_26 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_26(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) "/")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_54)), &conv27_STATE_VARIABLE_U_2_56);
        STATE_VARIABLE_U_2_56 = ((MR_Word) (conv27_STATE_VARIABLE_U_2_56));
        func_28 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 10))));
        func_28(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (Arity_53)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_56)), &conv29_STATE_VARIABLE_U_4_25);
        STATE_VARIABLE_U_4_25 = ((MR_Word) (conv29_STATE_VARIABLE_U_4_25));
      }
      break;
  }
  func_30 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
  func_30(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) "")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_4_25)), &conv31_STATE_VARIABLE_U_5_26);
  STATE_VARIABLE_U_5_26 = ((MR_Word) (conv31_STATE_VARIABLE_U_5_26));
  func_32 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
  func_32(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) ").\n")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_5_26)), &conv33_STATE_VARIABLE_IO_14);
  *STATE_VARIABLE_IO_14 = ((MR_Word) (conv33_STATE_VARIABLE_IO_14));
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_114_101_113_117_105_114_101_100_95_102_101_97_116_117_114_101_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_11,
  MR_Word Feature_5,
  MR_Word S_6)
{
  MR_String Str_8 = ((&parse_tree__parse_tree_out_pragma_vector_common_10[29 + Feature_5]))->parse_tree__parse_tree_out_pragma__vector_common_type_10_0__vct_10_f_0;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_11, 0)), 6))));
  MR_Box conv1_STATE_VARIABLE_U_10;

  func_0(((MR_Box) (TypeClassInfo_for_pt_output_11)), ((MR_Box) (Str_8)), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv1_STATE_VARIABLE_U_10);
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_114_101_113_117_105_114_101_100_95_102_101_97_116_117_114_101_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_11,
  MR_Word Feature_5,
  MR_Word STATE_VARIABLE_U_0_9,
  MR_Word * STATE_VARIABLE_U_10)
{
  MR_String Str_8 = ((&parse_tree__parse_tree_out_pragma_vector_common_10[21 + Feature_5]))->parse_tree__parse_tree_out_pragma__vector_common_type_10_0__vct_10_f_0;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_11, 0)), 6))));
  MR_Box conv1_STATE_VARIABLE_U_10;

  func_0(((MR_Box) (TypeClassInfo_for_pt_output_11)), ((MR_Box) (Str_8)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_0_9)), &conv1_STATE_VARIABLE_U_10);
  *STATE_VARIABLE_U_10 = ((MR_Word) (conv1_STATE_VARIABLE_U_10));
}

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_105_116_101_109_95_100_101_99_108_95_112_114_97_103_109_97_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0_2(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1)
{
  MR_Box wrapper_arg_2;
  MR_Box closure = closure_arg;
  MR_String conv14_Str_4;

  conv14_Str_4 = parse_tree__parse_tree_out_pragma__wrapped_sym_name_arity_to_string_1_f_0(((MR_Word) (wrapper_arg_1)));
  wrapper_arg_2 = ((MR_Box) (conv14_Str_4));
  return wrapper_arg_2;
}

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_105_116_101_109_95_100_101_99_108_95_112_114_97_103_109_97_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1)
{
  MR_Box wrapper_arg_2;
  MR_Box closure = closure_arg;
  MR_String conv11_Str_4;

  conv11_Str_4 = parse_tree__parse_tree_out_pragma__format_string_values_to_string_1_f_0(((MR_Word) (wrapper_arg_1)));
  wrapper_arg_2 = ((MR_Box) (conv11_Str_4));
  return wrapper_arg_2;
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_105_116_101_109_95_100_101_99_108_95_112_114_97_103_109_97_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_26,
  MR_Word Info_6,
  MR_Word Stream_7,
  MR_Word DeclPragma_8)
{
  MR_Word Context_10;
  MR_Word Lang_11;
  MR_Box conv0_STATE_VARIABLE_IO_1_25;

  Context_10 = parse_tree__prog_item_pragma__get_decl_pragma_context_1_f_0(DeclPragma_8);
  parse_tree__parse_tree_out_info__maybe_format_line_number_5_p_0(TypeClassInfo_for_pt_output_26, Info_6, Context_10, ((MR_Box) (Stream_7)), ((MR_Box) ((MR_Integer) 0)), &conv0_STATE_VARIABLE_IO_1_25);
  Lang_11 = parse_tree__parse_tree_out_info__get_output_lang_1_f_0(Info_6);
  switch (MR_tag((MR_Word) DeclPragma_8)) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 0:
      {
        MR_Word ObsPred_12 = (MR_Word) ((MR_Word) (DeclPragma_8));
        MR_Word PredSpec_70 = ((MR_Word) ((MR_hl_field(0, ObsPred_12, 0))));
        MR_Word ObsoleteInFavourOf_71 = ((MR_Word) ((MR_hl_field(0, ObsPred_12, 1))));
        MR_Word PFU_74 = ((MR_Unsigned) ((MR_hl_field(0, PredSpec_70, 0))) & (MR_Integer) 3);
        MR_Word PredName_75 = ((MR_Word) ((MR_hl_field(0, PredSpec_70, 1))));
        MR_Word Arity_76 = ((MR_Word) ((MR_hl_field(0, PredSpec_70, 2))));
        MR_String PredStr_77;
        MR_Word ObsoleteStrs_78;
        MR_String ObsoleteStr_79;
        MR_String DeclStr_80;
        MR_String Var_86;
        MR_String Var_88;
        MR_String Var_89;
        void MR_CALL (* func_15)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv16_STATE_VARIABLE_IO_24;

        PredStr_77 = parse_tree__parse_tree_out_pragma__mercury_pred_pfu_name_arity_to_string_3_f_0(PFU_74, PredName_75, Arity_76);
        ObsoleteStrs_78 = mercury__list__map_2_f_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_sym_name_arity_0), (MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_1[25]), ObsoleteInFavourOf_71);
        ObsoleteStr_79 = mercury__string__join_list_2_f_0((MR_String) ", ", ObsoleteStrs_78);
        Var_86 = mercury__string__f_43_43_2_f_0(ObsoleteStr_79, (MR_String) "]).\n");
        Var_88 = mercury__string__f_43_43_2_f_0((MR_String) ", [", Var_86);
        Var_89 = mercury__string__f_43_43_2_f_0(PredStr_77, Var_88);
        DeclStr_80 = mercury__string__f_43_43_2_f_0((MR_String) ":- pragma obsolete(", Var_89);
        func_15 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_26, 0)), 6))));
        func_15(((MR_Box) (TypeClassInfo_for_pt_output_26)), ((MR_Box) (DeclStr_80)), ((MR_Box) (Stream_7)), ((MR_Box) ((MR_Integer) 0)), &conv16_STATE_VARIABLE_IO_24);
      }
      break;
    case (MR_Integer) 1:
      {
        MR_Word ObsProc_13 = (MR_Word) (MR_body((MR_Word) (DeclPragma_8), (MR_Integer) 1));

        parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_111_98_115_111_108_101_116_101_95_112_114_111_99_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_26, Lang_11, ObsProc_13, Stream_7);
      }
      break;
    case (MR_Integer) 2:
      {
        MR_Word FormatCall_14 = (MR_Word) (MR_body((MR_Word) (DeclPragma_8), (MR_Integer) 2));
        MR_Word PredSpec_27 = ((MR_Word) ((MR_hl_field(0, FormatCall_14, 0))));
        MR_Word OoMFormatArgsSpecs_28 = ((MR_Word) ((MR_hl_field(0, FormatCall_14, 1))));
        MR_Word PF_31 = ((MR_Unsigned) ((MR_hl_field(0, PredSpec_27, 0))) & (MR_Integer) 1);
        MR_Word PredName_32 = ((MR_Word) ((MR_hl_field(0, PredSpec_27, 1))));
        MR_Word Arity_33 = ((MR_Word) ((MR_hl_field(0, PredSpec_27, 2))));
        MR_String PredStr_34;
        MR_Word HeadFormatArgsSpec_35;
        MR_Word TailFormatArgsSpecs_36;
        MR_String SecondArgStr_37;
        MR_String DeclStr_40;
        MR_String Var_50;
        MR_String Var_52;
        MR_String Var_53;
        MR_Word State0_55;
        MR_Word State_56;
        MR_String Var_59;
        MR_Word STATE_VARIABLE_U_1_60;
        MR_Word STATE_VARIABLE_U_2_62;
        MR_Word STATE_VARIABLE_U_3_64;
        MR_Integer Arity_66;
        MR_Word STATE_VARIABLE_U_1_67;
        MR_Word STATE_VARIABLE_U_2_69;
        void MR_CALL (* func_1)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv2_STATE_VARIABLE_U_1_60;
        void MR_CALL (* func_3)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv4_STATE_VARIABLE_U_2_62;
        void MR_CALL (* func_5)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv6_STATE_VARIABLE_U_2_69;
        void MR_CALL (* func_7)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv8_STATE_VARIABLE_U_3_64;
        void MR_CALL (* func_9)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv10_State_56;
        void MR_CALL (* func_12)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv13_STATE_VARIABLE_IO_24;

        State0_55 = mercury__string__builder__init_0_f_0();
        Var_59 = mdbcomp__prim_data__pred_or_func_to_str_1_f_0(PF_31);
        func_1 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 6))));
        func_1(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) (Var_59)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (State0_55)), &conv2_STATE_VARIABLE_U_1_60);
        STATE_VARIABLE_U_1_60 = ((MR_Word) (conv2_STATE_VARIABLE_U_1_60));
        func_3 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 6))));
        func_3(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) ((MR_String) "(")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_60)), &conv4_STATE_VARIABLE_U_2_62);
        STATE_VARIABLE_U_2_62 = ((MR_Word) (conv4_STATE_VARIABLE_U_2_62));
        Arity_66 = (MR_Integer) (Arity_33);
        parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_98_114_97_99_107_101_116_101_100_95_115_121_109_95_110_97_109_101_95_110_103_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), (MR_Integer) 1, PredName_32, STATE_VARIABLE_U_2_62, &STATE_VARIABLE_U_1_67);
        func_5 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 6))));
        func_5(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) ((MR_String) "/")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_67)), &conv6_STATE_VARIABLE_U_2_69);
        STATE_VARIABLE_U_2_69 = ((MR_Word) (conv6_STATE_VARIABLE_U_2_69));
        func_7 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 10))));
        func_7(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) (Arity_66)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_69)), &conv8_STATE_VARIABLE_U_3_64);
        STATE_VARIABLE_U_3_64 = ((MR_Word) (conv8_STATE_VARIABLE_U_3_64));
        func_9 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 6))));
        func_9(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) ((MR_String) ")")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_64)), &conv10_State_56);
        State_56 = ((MR_Word) (conv10_State_56));
        PredStr_34 = mercury__string__builder__to_string_1_f_0(State_56);
        HeadFormatArgsSpec_35 = ((MR_Word) ((MR_hl_field(0, OoMFormatArgsSpecs_28, 0))));
        TailFormatArgsSpecs_36 = ((MR_Word) ((MR_hl_field(0, OoMFormatArgsSpecs_28, 1))));
        if ((TailFormatArgsSpecs_36 == (MR_Word) ((MR_Unsigned) 0U)))
          SecondArgStr_37 = parse_tree__parse_tree_out_pragma__format_string_values_to_string_1_f_0(HeadFormatArgsSpec_35);
        else
        {
          MR_Word ArgsSpecsStrs_38;
          MR_String ArgsSpecsStr_39;
          MR_Word Var_42;
          MR_String Var_47;

          {
            Var_42 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
            MR_hl_field(1, Var_42, 0) = ((MR_Box) (HeadFormatArgsSpec_35));
            MR_hl_field(1, Var_42, 1) = ((MR_Box) (TailFormatArgsSpecs_36));
          }
          ArgsSpecsStrs_38 = mercury__list__map_2_f_0((MR_Word) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_format_string_values_0), (MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_1[24]), Var_42);
          ArgsSpecsStr_39 = mercury__string__join_list_2_f_0((MR_String) ", ", ArgsSpecsStrs_38);
          Var_47 = mercury__string__f_43_43_2_f_0(ArgsSpecsStr_39, (MR_String) "]");
          SecondArgStr_37 = mercury__string__f_43_43_2_f_0((MR_String) "[", Var_47);
        }
        Var_50 = mercury__string__f_43_43_2_f_0(SecondArgStr_37, (MR_String) "]).\n");
        Var_52 = mercury__string__f_43_43_2_f_0((MR_String) ", [", Var_50);
        Var_53 = mercury__string__f_43_43_2_f_0(PredStr_34, Var_52);
        DeclStr_40 = mercury__string__f_43_43_2_f_0((MR_String) ":- pragma format_call(", Var_53);
        func_12 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_26, 0)), 6))));
        func_12(((MR_Box) (TypeClassInfo_for_pt_output_26)), ((MR_Box) (DeclStr_40)), ((MR_Box) (Stream_7)), ((MR_Box) ((MR_Integer) 0)), &conv13_STATE_VARIABLE_IO_24);
      }
      break;
    case (MR_Integer) 3:
      switch (((MR_Integer) ((MR_hl_field(3, DeclPragma_8, 0))))) {
        default: /*NOTREACHED*/ MR_assert(0);
        case (MR_Integer) 0:
          {
            MR_Word TypeSpecConstr_15 = ((MR_Word) ((MR_hl_field(3, DeclPragma_8, 1))));

            parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_121_112_101_95_115_112_101_99_95_99_111_110_115_116_114_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_95_95_91_51_93_95_48_5_p_0(TypeClassInfo_for_pt_output_26, Stream_7, TypeSpecConstr_15);
          }
          break;
        case (MR_Integer) 1:
          {
            MR_Word TypeSpec_16 = ((MR_Word) ((MR_hl_field(3, DeclPragma_8, 1))));

            parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_121_112_101_95_115_112_101_99_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_26, Stream_7, Lang_11, TypeSpec_16);
          }
          break;
        case (MR_Integer) 2:
          {
            MR_Word InputSpec_17 = ((MR_Word) ((MR_hl_field(3, DeclPragma_8, 1))));

            parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_105_110_112_117_116_95_115_112_101_99_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_95_95_91_51_93_95_48_5_p_0(TypeClassInfo_for_pt_output_26, Stream_7, InputSpec_17);
          }
          break;
        case (MR_Integer) 3:
          {
            MR_Word OISU_18 = ((MR_Word) ((MR_hl_field(3, DeclPragma_8, 1))));

            parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_111_105_115_117_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0(TypeClassInfo_for_pt_output_26, OISU_18, Stream_7);
          }
          break;
        case (MR_Integer) 4:
          {
            MR_Word Term_19 = ((MR_Word) ((MR_hl_field(3, DeclPragma_8, 1))));

            parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_101_114_109_105_110_97_116_105_111_110_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_26, Stream_7, Lang_11, Term_19);
          }
          break;
        case (MR_Integer) 5:
          {
            MR_Word Term2_20 = ((MR_Word) ((MR_hl_field(3, DeclPragma_8, 1))));

            parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_101_114_109_105_110_97_116_105_111_110_50_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_26, Stream_7, Lang_11, Term2_20);
          }
          break;
        case (MR_Integer) 6:
          {
            MR_Word Sharing_21 = ((MR_Word) ((MR_hl_field(3, DeclPragma_8, 1))));

            parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_115_116_114_117_99_116_95_115_104_97_114_105_110_103_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_26, Stream_7, Lang_11, Sharing_21);
          }
          break;
        case (MR_Integer) 7:
          {
            MR_Word Reuse_22 = ((MR_Word) ((MR_hl_field(3, DeclPragma_8, 1))));

            parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_115_116_114_117_99_116_95_114_101_117_115_101_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_26, Stream_7, Lang_11, Reuse_22);
          }
          break;
      }
      break;
  }
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_111_105_115_117_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_43,
  MR_Word OISU_5,
  MR_Word S_6)
{
  MR_Word TypeCtor_8 = ((MR_Word) ((MR_hl_field(0, OISU_5, 0))));
  MR_Word CreatorPreds_9 = ((MR_Word) ((MR_hl_field(0, OISU_5, 1))));
  MR_Word MutatorPreds_10 = ((MR_Word) ((MR_hl_field(0, OISU_5, 2))));
  MR_Word DestructorPreds_11 = ((MR_Word) ((MR_hl_field(0, OISU_5, 3))));
  MR_Word TypeName_14;
  MR_Integer TypeArity_15;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  MR_Box conv1_STATE_VARIABLE_U_1_19;
  void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv3_STATE_VARIABLE_U_3_23;
  void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv5_STATE_VARIABLE_U_4_24;
  void MR_CALL (* func_6)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv7_STATE_VARIABLE_U_5_26;
  void MR_CALL (* func_8)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv9_STATE_VARIABLE_U_6_28;
  void MR_CALL (* func_10)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv11_STATE_VARIABLE_U_8_31;
  void MR_CALL (* func_12)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv13_STATE_VARIABLE_U_9_33;
  void MR_CALL (* func_14)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv15_STATE_VARIABLE_U_11_36;
  void MR_CALL (* func_16)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv17_STATE_VARIABLE_U_12_38;
  void MR_CALL (* func_18)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv19_STATE_VARIABLE_U_14_41;
  void MR_CALL (* func_20)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv21_STATE_VARIABLE_U_17;

  func_0(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) ":- pragma oisu(")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv1_STATE_VARIABLE_U_1_19);
  TypeName_14 = ((MR_Word) ((MR_hl_field(0, TypeCtor_8, 0))));
  TypeArity_15 = ((MR_Integer) ((MR_hl_field(0, TypeCtor_8, 1))));
  parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_98_114_97_99_107_101_116_101_100_95_115_121_109_95_110_97_109_101_95_110_103_116_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_43, (MR_Integer) 0, TypeName_14, S_6);
  func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_2(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) "/")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv3_STATE_VARIABLE_U_3_23);
  func_4 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 10))));
  func_4(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) (TypeArity_15)), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv5_STATE_VARIABLE_U_4_24);
  func_6 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_6(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) ",\n")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv7_STATE_VARIABLE_U_5_26);
  func_8 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_8(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) "\tcreators([\n")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv9_STATE_VARIABLE_U_6_28);
  if (!((CreatorPreds_9 == (MR_Word) ((MR_Unsigned) 0U))))
  {
    MR_Word PredSpec_47 = ((MR_Word) ((MR_hl_field(1, CreatorPreds_9, 0))));
    MR_Word PredSpecs_48 = ((MR_Word) ((MR_hl_field(1, CreatorPreds_9, 1))));

    parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_102_95_115_121_109_95_110_97_109_101_95_117_115_101_114_95_97_114_105_116_121_95_108_105_115_116_95_108_97_103_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_43, PredSpec_47, PredSpecs_48, S_6);
  }
  func_10 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_10(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) "\t]),\n")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv11_STATE_VARIABLE_U_8_31);
  func_12 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_12(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) "\tmutators([\n")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv13_STATE_VARIABLE_U_9_33);
  if (!((MutatorPreds_10 == (MR_Word) ((MR_Unsigned) 0U))))
  {
    MR_Word PredSpec_55 = ((MR_Word) ((MR_hl_field(1, MutatorPreds_10, 0))));
    MR_Word PredSpecs_56 = ((MR_Word) ((MR_hl_field(1, MutatorPreds_10, 1))));

    parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_102_95_115_121_109_95_110_97_109_101_95_117_115_101_114_95_97_114_105_116_121_95_108_105_115_116_95_108_97_103_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_43, PredSpec_55, PredSpecs_56, S_6);
  }
  func_14 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_14(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) "\t]),\n")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv15_STATE_VARIABLE_U_11_36);
  func_16 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_16(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) "\tdestructors([\n")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv17_STATE_VARIABLE_U_12_38);
  if (!((DestructorPreds_11 == (MR_Word) ((MR_Unsigned) 0U))))
  {
    MR_Word PredSpec_63 = ((MR_Word) ((MR_hl_field(1, DestructorPreds_11, 0))));
    MR_Word PredSpecs_64 = ((MR_Word) ((MR_hl_field(1, DestructorPreds_11, 1))));

    parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_102_95_115_121_109_95_110_97_109_101_95_117_115_101_114_95_97_114_105_116_121_95_108_105_115_116_95_108_97_103_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_43, PredSpec_63, PredSpecs_64, S_6);
  }
  func_18 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_18(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) "\t])\n")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv19_STATE_VARIABLE_U_14_41);
  func_20 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_20(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) ").\n")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv21_STATE_VARIABLE_U_17);
}

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_105_116_101_109_95_100_101_99_108_95_112_114_97_103_109_97_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0_2(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1)
{
  MR_Box wrapper_arg_2;
  MR_Box closure = closure_arg;
  MR_String conv14_Str_4;

  conv14_Str_4 = parse_tree__parse_tree_out_pragma__wrapped_sym_name_arity_to_string_1_f_0(((MR_Word) (wrapper_arg_1)));
  wrapper_arg_2 = ((MR_Box) (conv14_Str_4));
  return wrapper_arg_2;
}

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_105_116_101_109_95_100_101_99_108_95_112_114_97_103_109_97_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1)
{
  MR_Box wrapper_arg_2;
  MR_Box closure = closure_arg;
  MR_String conv11_Str_4;

  conv11_Str_4 = parse_tree__parse_tree_out_pragma__format_string_values_to_string_1_f_0(((MR_Word) (wrapper_arg_1)));
  wrapper_arg_2 = ((MR_Box) (conv11_Str_4));
  return wrapper_arg_2;
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_105_116_101_109_95_100_101_99_108_95_112_114_97_103_109_97_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_26,
  MR_Word Info_6,
  MR_Word DeclPragma_8,
  MR_Word STATE_VARIABLE_IO_0_23,
  MR_Word * STATE_VARIABLE_IO_24)
{
  MR_Word Context_10;
  MR_Word Lang_11;
  MR_Word STATE_VARIABLE_IO_1_25;
  MR_Box conv0_STATE_VARIABLE_IO_1_25;

  Context_10 = parse_tree__prog_item_pragma__get_decl_pragma_context_1_f_0(DeclPragma_8);
  parse_tree__parse_tree_out_info__maybe_format_line_number_5_p_0(TypeClassInfo_for_pt_output_26, Info_6, Context_10, ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_IO_0_23)), &conv0_STATE_VARIABLE_IO_1_25);
  STATE_VARIABLE_IO_1_25 = ((MR_Word) (conv0_STATE_VARIABLE_IO_1_25));
  Lang_11 = parse_tree__parse_tree_out_info__get_output_lang_1_f_0(Info_6);
  switch (MR_tag((MR_Word) DeclPragma_8)) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 0:
      {
        MR_Word ObsPred_12 = (MR_Word) ((MR_Word) (DeclPragma_8));
        MR_Word PredSpec_70 = ((MR_Word) ((MR_hl_field(0, ObsPred_12, 0))));
        MR_Word ObsoleteInFavourOf_71 = ((MR_Word) ((MR_hl_field(0, ObsPred_12, 1))));
        MR_Word PFU_74 = ((MR_Unsigned) ((MR_hl_field(0, PredSpec_70, 0))) & (MR_Integer) 3);
        MR_Word PredName_75 = ((MR_Word) ((MR_hl_field(0, PredSpec_70, 1))));
        MR_Word Arity_76 = ((MR_Word) ((MR_hl_field(0, PredSpec_70, 2))));
        MR_String PredStr_77;
        MR_Word ObsoleteStrs_78;
        MR_String ObsoleteStr_79;
        MR_String DeclStr_80;
        MR_String Var_86;
        MR_String Var_88;
        MR_String Var_89;
        void MR_CALL (* func_15)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv16_STATE_VARIABLE_IO_24;

        PredStr_77 = parse_tree__parse_tree_out_pragma__mercury_pred_pfu_name_arity_to_string_3_f_0(PFU_74, PredName_75, Arity_76);
        ObsoleteStrs_78 = mercury__list__map_2_f_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_sym_name_arity_0), (MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_1[23]), ObsoleteInFavourOf_71);
        ObsoleteStr_79 = mercury__string__join_list_2_f_0((MR_String) ", ", ObsoleteStrs_78);
        Var_86 = mercury__string__f_43_43_2_f_0(ObsoleteStr_79, (MR_String) "]).\n");
        Var_88 = mercury__string__f_43_43_2_f_0((MR_String) ", [", Var_86);
        Var_89 = mercury__string__f_43_43_2_f_0(PredStr_77, Var_88);
        DeclStr_80 = mercury__string__f_43_43_2_f_0((MR_String) ":- pragma obsolete(", Var_89);
        func_15 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_26, 0)), 6))));
        func_15(((MR_Box) (TypeClassInfo_for_pt_output_26)), ((MR_Box) (DeclStr_80)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_IO_1_25)), &conv16_STATE_VARIABLE_IO_24);
        *STATE_VARIABLE_IO_24 = ((MR_Word) (conv16_STATE_VARIABLE_IO_24));
      }
      break;
    case (MR_Integer) 1:
      {
        MR_Word ObsProc_13 = (MR_Word) (MR_body((MR_Word) (DeclPragma_8), (MR_Integer) 1));

        parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_111_98_115_111_108_101_116_101_95_112_114_111_99_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_26, Lang_11, ObsProc_13, STATE_VARIABLE_IO_1_25, STATE_VARIABLE_IO_24);
      }
      break;
    case (MR_Integer) 2:
      {
        MR_Word FormatCall_14 = (MR_Word) (MR_body((MR_Word) (DeclPragma_8), (MR_Integer) 2));
        MR_Word PredSpec_27 = ((MR_Word) ((MR_hl_field(0, FormatCall_14, 0))));
        MR_Word OoMFormatArgsSpecs_28 = ((MR_Word) ((MR_hl_field(0, FormatCall_14, 1))));
        MR_Word PF_31 = ((MR_Unsigned) ((MR_hl_field(0, PredSpec_27, 0))) & (MR_Integer) 1);
        MR_Word PredName_32 = ((MR_Word) ((MR_hl_field(0, PredSpec_27, 1))));
        MR_Word Arity_33 = ((MR_Word) ((MR_hl_field(0, PredSpec_27, 2))));
        MR_String PredStr_34;
        MR_Word HeadFormatArgsSpec_35;
        MR_Word TailFormatArgsSpecs_36;
        MR_String SecondArgStr_37;
        MR_String DeclStr_40;
        MR_String Var_50;
        MR_String Var_52;
        MR_String Var_53;
        MR_Word State0_55;
        MR_Word State_56;
        MR_String Var_59;
        MR_Word STATE_VARIABLE_U_1_60;
        MR_Word STATE_VARIABLE_U_2_62;
        MR_Word STATE_VARIABLE_U_3_64;
        MR_Integer Arity_66;
        MR_Word STATE_VARIABLE_U_1_67;
        MR_Word STATE_VARIABLE_U_2_69;
        void MR_CALL (* func_1)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv2_STATE_VARIABLE_U_1_60;
        void MR_CALL (* func_3)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv4_STATE_VARIABLE_U_2_62;
        void MR_CALL (* func_5)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv6_STATE_VARIABLE_U_2_69;
        void MR_CALL (* func_7)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv8_STATE_VARIABLE_U_3_64;
        void MR_CALL (* func_9)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv10_State_56;
        void MR_CALL (* func_12)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv13_STATE_VARIABLE_IO_24;

        State0_55 = mercury__string__builder__init_0_f_0();
        Var_59 = mdbcomp__prim_data__pred_or_func_to_str_1_f_0(PF_31);
        func_1 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 6))));
        func_1(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) (Var_59)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (State0_55)), &conv2_STATE_VARIABLE_U_1_60);
        STATE_VARIABLE_U_1_60 = ((MR_Word) (conv2_STATE_VARIABLE_U_1_60));
        func_3 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 6))));
        func_3(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) ((MR_String) "(")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_60)), &conv4_STATE_VARIABLE_U_2_62);
        STATE_VARIABLE_U_2_62 = ((MR_Word) (conv4_STATE_VARIABLE_U_2_62));
        Arity_66 = (MR_Integer) (Arity_33);
        parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_98_114_97_99_107_101_116_101_100_95_115_121_109_95_110_97_109_101_95_110_103_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), (MR_Integer) 1, PredName_32, STATE_VARIABLE_U_2_62, &STATE_VARIABLE_U_1_67);
        func_5 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 6))));
        func_5(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) ((MR_String) "/")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_67)), &conv6_STATE_VARIABLE_U_2_69);
        STATE_VARIABLE_U_2_69 = ((MR_Word) (conv6_STATE_VARIABLE_U_2_69));
        func_7 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 10))));
        func_7(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) (Arity_66)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_69)), &conv8_STATE_VARIABLE_U_3_64);
        STATE_VARIABLE_U_3_64 = ((MR_Word) (conv8_STATE_VARIABLE_U_3_64));
        func_9 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 6))));
        func_9(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) ((MR_String) ")")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_64)), &conv10_State_56);
        State_56 = ((MR_Word) (conv10_State_56));
        PredStr_34 = mercury__string__builder__to_string_1_f_0(State_56);
        HeadFormatArgsSpec_35 = ((MR_Word) ((MR_hl_field(0, OoMFormatArgsSpecs_28, 0))));
        TailFormatArgsSpecs_36 = ((MR_Word) ((MR_hl_field(0, OoMFormatArgsSpecs_28, 1))));
        if ((TailFormatArgsSpecs_36 == (MR_Word) ((MR_Unsigned) 0U)))
          SecondArgStr_37 = parse_tree__parse_tree_out_pragma__format_string_values_to_string_1_f_0(HeadFormatArgsSpec_35);
        else
        {
          MR_Word ArgsSpecsStrs_38;
          MR_String ArgsSpecsStr_39;
          MR_Word Var_42;
          MR_String Var_47;

          {
            Var_42 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
            MR_hl_field(1, Var_42, 0) = ((MR_Box) (HeadFormatArgsSpec_35));
            MR_hl_field(1, Var_42, 1) = ((MR_Box) (TailFormatArgsSpecs_36));
          }
          ArgsSpecsStrs_38 = mercury__list__map_2_f_0((MR_Word) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_format_string_values_0), (MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_1[22]), Var_42);
          ArgsSpecsStr_39 = mercury__string__join_list_2_f_0((MR_String) ", ", ArgsSpecsStrs_38);
          Var_47 = mercury__string__f_43_43_2_f_0(ArgsSpecsStr_39, (MR_String) "]");
          SecondArgStr_37 = mercury__string__f_43_43_2_f_0((MR_String) "[", Var_47);
        }
        Var_50 = mercury__string__f_43_43_2_f_0(SecondArgStr_37, (MR_String) "]).\n");
        Var_52 = mercury__string__f_43_43_2_f_0((MR_String) ", [", Var_50);
        Var_53 = mercury__string__f_43_43_2_f_0(PredStr_34, Var_52);
        DeclStr_40 = mercury__string__f_43_43_2_f_0((MR_String) ":- pragma format_call(", Var_53);
        func_12 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_26, 0)), 6))));
        func_12(((MR_Box) (TypeClassInfo_for_pt_output_26)), ((MR_Box) (DeclStr_40)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_IO_1_25)), &conv13_STATE_VARIABLE_IO_24);
        *STATE_VARIABLE_IO_24 = ((MR_Word) (conv13_STATE_VARIABLE_IO_24));
      }
      break;
    case (MR_Integer) 3:
      switch (((MR_Integer) ((MR_hl_field(3, DeclPragma_8, 0))))) {
        default: /*NOTREACHED*/ MR_assert(0);
        case (MR_Integer) 0:
          {
            MR_Word TypeSpecConstr_15 = ((MR_Word) ((MR_hl_field(3, DeclPragma_8, 1))));

            parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_121_112_101_95_115_112_101_99_95_99_111_110_115_116_114_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_95_95_91_51_93_95_48_5_p_0(TypeClassInfo_for_pt_output_26, TypeSpecConstr_15, STATE_VARIABLE_IO_1_25, STATE_VARIABLE_IO_24);
          }
          break;
        case (MR_Integer) 1:
          {
            MR_Word TypeSpec_16 = ((MR_Word) ((MR_hl_field(3, DeclPragma_8, 1))));

            parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_121_112_101_95_115_112_101_99_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_26, Lang_11, TypeSpec_16, STATE_VARIABLE_IO_1_25, STATE_VARIABLE_IO_24);
          }
          break;
        case (MR_Integer) 2:
          {
            MR_Word InputSpec_17 = ((MR_Word) ((MR_hl_field(3, DeclPragma_8, 1))));

            parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_105_110_112_117_116_95_115_112_101_99_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_95_95_91_51_93_95_48_5_p_0(TypeClassInfo_for_pt_output_26, InputSpec_17, STATE_VARIABLE_IO_1_25, STATE_VARIABLE_IO_24);
          }
          break;
        case (MR_Integer) 3:
          {
            MR_Word OISU_18 = ((MR_Word) ((MR_hl_field(3, DeclPragma_8, 1))));

            parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_111_105_115_117_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0(TypeClassInfo_for_pt_output_26, OISU_18, STATE_VARIABLE_IO_1_25, STATE_VARIABLE_IO_24);
          }
          break;
        case (MR_Integer) 4:
          {
            MR_Word Term_19 = ((MR_Word) ((MR_hl_field(3, DeclPragma_8, 1))));

            parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_101_114_109_105_110_97_116_105_111_110_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_26, Lang_11, Term_19, STATE_VARIABLE_IO_1_25, STATE_VARIABLE_IO_24);
          }
          break;
        case (MR_Integer) 5:
          {
            MR_Word Term2_20 = ((MR_Word) ((MR_hl_field(3, DeclPragma_8, 1))));

            parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_101_114_109_105_110_97_116_105_111_110_50_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_26, Lang_11, Term2_20, STATE_VARIABLE_IO_1_25, STATE_VARIABLE_IO_24);
          }
          break;
        case (MR_Integer) 6:
          {
            MR_Word Sharing_21 = ((MR_Word) ((MR_hl_field(3, DeclPragma_8, 1))));

            parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_115_116_114_117_99_116_95_115_104_97_114_105_110_103_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_26, Lang_11, Sharing_21, STATE_VARIABLE_IO_1_25, STATE_VARIABLE_IO_24);
          }
          break;
        case (MR_Integer) 7:
          {
            MR_Word Reuse_22 = ((MR_Word) ((MR_hl_field(3, DeclPragma_8, 1))));

            parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_115_116_114_117_99_116_95_114_101_117_115_101_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_26, Lang_11, Reuse_22, STATE_VARIABLE_IO_1_25, STATE_VARIABLE_IO_24);
          }
          break;
      }
      break;
  }
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_111_105_115_117_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_43,
  MR_Word OISU_5,
  MR_Word STATE_VARIABLE_U_0_16,
  MR_Word * STATE_VARIABLE_U_17)
{
  MR_Word TypeCtor_8 = ((MR_Word) ((MR_hl_field(0, OISU_5, 0))));
  MR_Word CreatorPreds_9 = ((MR_Word) ((MR_hl_field(0, OISU_5, 1))));
  MR_Word MutatorPreds_10 = ((MR_Word) ((MR_hl_field(0, OISU_5, 2))));
  MR_Word DestructorPreds_11 = ((MR_Word) ((MR_hl_field(0, OISU_5, 3))));
  MR_Word TypeName_14;
  MR_Integer TypeArity_15;
  MR_Word STATE_VARIABLE_U_1_19;
  MR_Word STATE_VARIABLE_U_2_21;
  MR_Word STATE_VARIABLE_U_3_23;
  MR_Word STATE_VARIABLE_U_4_24;
  MR_Word STATE_VARIABLE_U_5_26;
  MR_Word STATE_VARIABLE_U_6_28;
  MR_Word STATE_VARIABLE_U_7_29;
  MR_Word STATE_VARIABLE_U_8_31;
  MR_Word STATE_VARIABLE_U_9_33;
  MR_Word STATE_VARIABLE_U_10_34;
  MR_Word STATE_VARIABLE_U_11_36;
  MR_Word STATE_VARIABLE_U_12_38;
  MR_Word STATE_VARIABLE_U_13_39;
  MR_Word STATE_VARIABLE_U_14_41;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  MR_Box conv1_STATE_VARIABLE_U_1_19;
  void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv3_STATE_VARIABLE_U_3_23;
  void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv5_STATE_VARIABLE_U_4_24;
  void MR_CALL (* func_6)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv7_STATE_VARIABLE_U_5_26;
  void MR_CALL (* func_8)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv9_STATE_VARIABLE_U_6_28;
  void MR_CALL (* func_10)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv11_STATE_VARIABLE_U_8_31;
  void MR_CALL (* func_12)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv13_STATE_VARIABLE_U_9_33;
  void MR_CALL (* func_14)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv15_STATE_VARIABLE_U_11_36;
  void MR_CALL (* func_16)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv17_STATE_VARIABLE_U_12_38;
  void MR_CALL (* func_18)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv19_STATE_VARIABLE_U_14_41;
  void MR_CALL (* func_20)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv21_STATE_VARIABLE_U_17;

  func_0(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) ":- pragma oisu(")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_0_16)), &conv1_STATE_VARIABLE_U_1_19);
  STATE_VARIABLE_U_1_19 = ((MR_Word) (conv1_STATE_VARIABLE_U_1_19));
  TypeName_14 = ((MR_Word) ((MR_hl_field(0, TypeCtor_8, 0))));
  TypeArity_15 = ((MR_Integer) ((MR_hl_field(0, TypeCtor_8, 1))));
  parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_98_114_97_99_107_101_116_101_100_95_115_121_109_95_110_97_109_101_95_110_103_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_43, (MR_Integer) 0, TypeName_14, STATE_VARIABLE_U_1_19, &STATE_VARIABLE_U_2_21);
  func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_2(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) "/")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_21)), &conv3_STATE_VARIABLE_U_3_23);
  STATE_VARIABLE_U_3_23 = ((MR_Word) (conv3_STATE_VARIABLE_U_3_23));
  func_4 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 10))));
  func_4(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) (TypeArity_15)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_23)), &conv5_STATE_VARIABLE_U_4_24);
  STATE_VARIABLE_U_4_24 = ((MR_Word) (conv5_STATE_VARIABLE_U_4_24));
  func_6 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_6(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) ",\n")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_4_24)), &conv7_STATE_VARIABLE_U_5_26);
  STATE_VARIABLE_U_5_26 = ((MR_Word) (conv7_STATE_VARIABLE_U_5_26));
  func_8 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_8(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) "\tcreators([\n")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_5_26)), &conv9_STATE_VARIABLE_U_6_28);
  STATE_VARIABLE_U_6_28 = ((MR_Word) (conv9_STATE_VARIABLE_U_6_28));
  if ((CreatorPreds_9 == (MR_Word) ((MR_Unsigned) 0U)))
    STATE_VARIABLE_U_7_29 = STATE_VARIABLE_U_6_28;
  else
  {
    MR_Word PredSpec_47 = ((MR_Word) ((MR_hl_field(1, CreatorPreds_9, 0))));
    MR_Word PredSpecs_48 = ((MR_Word) ((MR_hl_field(1, CreatorPreds_9, 1))));

    parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_102_95_115_121_109_95_110_97_109_101_95_117_115_101_114_95_97_114_105_116_121_95_108_105_115_116_95_108_97_103_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_43, PredSpec_47, PredSpecs_48, STATE_VARIABLE_U_6_28, &STATE_VARIABLE_U_7_29);
  }
  func_10 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_10(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) "\t]),\n")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_7_29)), &conv11_STATE_VARIABLE_U_8_31);
  STATE_VARIABLE_U_8_31 = ((MR_Word) (conv11_STATE_VARIABLE_U_8_31));
  func_12 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_12(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) "\tmutators([\n")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_8_31)), &conv13_STATE_VARIABLE_U_9_33);
  STATE_VARIABLE_U_9_33 = ((MR_Word) (conv13_STATE_VARIABLE_U_9_33));
  if ((MutatorPreds_10 == (MR_Word) ((MR_Unsigned) 0U)))
    STATE_VARIABLE_U_10_34 = STATE_VARIABLE_U_9_33;
  else
  {
    MR_Word PredSpec_55 = ((MR_Word) ((MR_hl_field(1, MutatorPreds_10, 0))));
    MR_Word PredSpecs_56 = ((MR_Word) ((MR_hl_field(1, MutatorPreds_10, 1))));

    parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_102_95_115_121_109_95_110_97_109_101_95_117_115_101_114_95_97_114_105_116_121_95_108_105_115_116_95_108_97_103_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_43, PredSpec_55, PredSpecs_56, STATE_VARIABLE_U_9_33, &STATE_VARIABLE_U_10_34);
  }
  func_14 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_14(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) "\t]),\n")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_10_34)), &conv15_STATE_VARIABLE_U_11_36);
  STATE_VARIABLE_U_11_36 = ((MR_Word) (conv15_STATE_VARIABLE_U_11_36));
  func_16 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_16(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) "\tdestructors([\n")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_11_36)), &conv17_STATE_VARIABLE_U_12_38);
  STATE_VARIABLE_U_12_38 = ((MR_Word) (conv17_STATE_VARIABLE_U_12_38));
  if ((DestructorPreds_11 == (MR_Word) ((MR_Unsigned) 0U)))
    STATE_VARIABLE_U_13_39 = STATE_VARIABLE_U_12_38;
  else
  {
    MR_Word PredSpec_63 = ((MR_Word) ((MR_hl_field(1, DestructorPreds_11, 0))));
    MR_Word PredSpecs_64 = ((MR_Word) ((MR_hl_field(1, DestructorPreds_11, 1))));

    parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_102_95_115_121_109_95_110_97_109_101_95_117_115_101_114_95_97_114_105_116_121_95_108_105_115_116_95_108_97_103_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_43, PredSpec_63, PredSpecs_64, STATE_VARIABLE_U_12_38, &STATE_VARIABLE_U_13_39);
  }
  func_18 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_18(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) "\t])\n")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_13_39)), &conv19_STATE_VARIABLE_U_14_41);
  STATE_VARIABLE_U_14_41 = ((MR_Word) (conv19_STATE_VARIABLE_U_14_41));
  func_20 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_20(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) ").\n")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_14_41)), &conv21_STATE_VARIABLE_U_17);
  *STATE_VARIABLE_U_17 = ((MR_Word) (conv21_STATE_VARIABLE_U_17));
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_105_116_101_109_95_103_101_110_101_114_97_116_101_100_95_112_114_97_103_109_97_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_18,
  MR_Word Info_6,
  MR_Word S_7,
  MR_Word GenPragma_8)
{
  MR_Word Context_10;
  MR_Box conv0_STATE_VARIABLE_U_1_17;

  Context_10 = parse_tree__prog_item_pragma__get_gen_pragma_context_1_f_0(GenPragma_8);
  parse_tree__parse_tree_out_info__maybe_format_line_number_5_p_0(TypeClassInfo_for_pt_output_18, Info_6, Context_10, ((MR_Box) (S_7)), ((MR_Box) ((MR_Integer) 0)), &conv0_STATE_VARIABLE_U_1_17);
  switch (MR_tag((MR_Word) GenPragma_8)) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 0:
      {
        MR_Word UnusedArgs_11 = (MR_Word) ((MR_Word) (GenPragma_8));

        parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_117_110_117_115_101_100_95_97_114_103_115_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0(TypeClassInfo_for_pt_output_18, S_7, UnusedArgs_11);
      }
      break;
    case (MR_Integer) 1:
      {
        MR_Word Exceptions_12 = (MR_Word) (MR_body((MR_Word) (GenPragma_8), (MR_Integer) 1));

        parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_101_120_99_101_112_116_105_111_110_115_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0(TypeClassInfo_for_pt_output_18, S_7, Exceptions_12);
      }
      break;
    case (MR_Integer) 2:
      {
        MR_Word Trailing_13 = (MR_Word) (MR_body((MR_Word) (GenPragma_8), (MR_Integer) 2));

        parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_114_97_105_108_105_110_103_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0(TypeClassInfo_for_pt_output_18, S_7, Trailing_13);
      }
      break;
    case (MR_Integer) 3:
      {
        MR_Word Tabling_14 = (MR_Word) (MR_body((MR_Word) (GenPragma_8), (MR_Integer) 3));

        parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_109_109_95_116_97_98_108_105_110_103_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0(TypeClassInfo_for_pt_output_18, S_7, Tabling_14);
      }
      break;
  }
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_101_120_99_101_112_116_105_111_110_115_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_36,
  MR_Word S_5,
  MR_Word Exceptions_6)
{
  MR_Word PredNameArityPFMn_8 = ((MR_Word) ((MR_hl_field(0, Exceptions_6, 0))));
  MR_Word ThrowStatus_9 = ((MR_Word) ((MR_hl_field(0, Exceptions_6, 1))));
  MR_Word PredOrFunc_12 = ((MR_Unsigned) ((MR_hl_field(0, PredNameArityPFMn_8, 0))) & (MR_Integer) 1);
  MR_Word SymName_13 = ((MR_Word) ((MR_hl_field(0, PredNameArityPFMn_8, 1))));
  MR_Integer Arity_14;
  MR_Integer ModeNum_15 = ((MR_Integer) ((MR_hl_field(0, PredNameArityPFMn_8, 3))));
  MR_String PorFStr_16;
  MR_String SymNameStr_17;
  MR_String ThrowStr_18;
  MR_String DeclStr_20;
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, PredNameArityPFMn_8, 2))));
  MR_String Var_38;
  MR_String Var_40;
  MR_String Var_41;
  MR_String Var_48;
  MR_String Var_50;
  MR_String Var_51;
  MR_String Var_58;
  MR_String Var_60;
  MR_String Var_61;
  MR_String Var_63;
  MR_String Var_64;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv1_STATE_VARIABLE_U_22;

  Arity_14 = (MR_Integer) (Var_23);
  PorFStr_16 = mdbcomp__prim_data__pred_or_func_to_full_str_1_f_0(PredOrFunc_12);
  SymNameStr_17 = parse_tree__parse_tree_out_sym_name__mercury_bracketed_sym_name_to_string_1_f_0(SymName_13);
  switch (MR_tag((MR_Word) ThrowStatus_9)) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 0:
      switch (MR_unmkbody(ThrowStatus_9)) {
        default: /*NOTREACHED*/ MR_assert(0);
        case (MR_Integer) 0:
          ThrowStr_18 = (MR_String) "will_not_throw";
          break;
        case (MR_Integer) 1:
          ThrowStr_18 = (MR_String) "conditional";
          break;
      }
      break;
    case (MR_Integer) 1:
      {
        MR_Word ExceptionType_19 = ((MR_Unsigned) ((MR_hl_field(1, ThrowStatus_9, 0))) & (MR_Integer) 1);

        switch (ExceptionType_19) {
          default: /*NOTREACHED*/ MR_assert(0);
          case (MR_Integer) 1:
            ThrowStr_18 = (MR_String) "may_throw(type_exception)";
            break;
          case (MR_Integer) 0:
            ThrowStr_18 = (MR_String) "may_throw(user_exception)";
            break;
        }
      }
      break;
  }
  Var_38 = mercury__string__f_43_43_2_f_0(ThrowStr_18, (MR_String) ").\n");
  Var_40 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_38);
  mercury__string__format__format_signed_int_component_nowidth_noprec_3_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_5[0]), ModeNum_15, &Var_41);
  Var_48 = mercury__string__f_43_43_2_f_0(Var_41, Var_40);
  Var_50 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_48);
  mercury__string__format__format_signed_int_component_nowidth_noprec_3_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_5[0]), Arity_14, &Var_51);
  Var_58 = mercury__string__f_43_43_2_f_0(Var_51, Var_50);
  Var_60 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_58);
  Var_61 = mercury__string__f_43_43_2_f_0(SymNameStr_17, Var_60);
  Var_63 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_61);
  Var_64 = mercury__string__f_43_43_2_f_0(PorFStr_16, Var_63);
  DeclStr_20 = mercury__string__f_43_43_2_f_0((MR_String) ":- pragma exceptions(", Var_64);
  func_0 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
  func_0(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) (DeclStr_20)), ((MR_Box) (S_5)), ((MR_Box) ((MR_Integer) 0)), &conv1_STATE_VARIABLE_U_22);
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_109_109_95_116_97_98_108_105_110_103_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_35,
  MR_Word S_5,
  MR_Word MMTabling_6)
{
  MR_Word PredNameArityPFMn_8 = ((MR_Word) ((MR_hl_field(0, MMTabling_6, 0))));
  MR_Word MM_TablingStatus_9 = ((MR_Unsigned) ((MR_hl_field(0, MMTabling_6, 1))) & (MR_Integer) 3);
  MR_Word PredOrFunc_12 = ((MR_Unsigned) ((MR_hl_field(0, PredNameArityPFMn_8, 0))) & (MR_Integer) 1);
  MR_Word SymName_13 = ((MR_Word) ((MR_hl_field(0, PredNameArityPFMn_8, 1))));
  MR_Integer Arity_14;
  MR_Integer ModeNum_15 = ((MR_Integer) ((MR_hl_field(0, PredNameArityPFMn_8, 3))));
  MR_String PorFStr_16;
  MR_String SymNameStr_17;
  MR_String MMStr_18;
  MR_String DeclStr_19;
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, PredNameArityPFMn_8, 2))));
  MR_String Var_37;
  MR_String Var_39;
  MR_String Var_40;
  MR_String Var_47;
  MR_String Var_49;
  MR_String Var_50;
  MR_String Var_57;
  MR_String Var_59;
  MR_String Var_60;
  MR_String Var_62;
  MR_String Var_63;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv1_STATE_VARIABLE_U_21;

  Arity_14 = (MR_Integer) (Var_22);
  PorFStr_16 = mdbcomp__prim_data__pred_or_func_to_full_str_1_f_0(PredOrFunc_12);
  SymNameStr_17 = parse_tree__parse_tree_out_sym_name__mercury_bracketed_sym_name_to_string_1_f_0(SymName_13);
  switch (MM_TablingStatus_9) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 2:
      MMStr_18 = (MR_String) "mm_tabled_conditional";
      break;
    case (MR_Integer) 0:
      MMStr_18 = (MR_String) "mm_tabled_may_call";
      break;
    case (MR_Integer) 1:
      MMStr_18 = (MR_String) "mm_tabled_will_not_call";
      break;
  }
  Var_37 = mercury__string__f_43_43_2_f_0(MMStr_18, (MR_String) ").\n");
  Var_39 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_37);
  mercury__string__format__format_signed_int_component_nowidth_noprec_3_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_5[0]), ModeNum_15, &Var_40);
  Var_47 = mercury__string__f_43_43_2_f_0(Var_40, Var_39);
  Var_49 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_47);
  mercury__string__format__format_signed_int_component_nowidth_noprec_3_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_5[0]), Arity_14, &Var_50);
  Var_57 = mercury__string__f_43_43_2_f_0(Var_50, Var_49);
  Var_59 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_57);
  Var_60 = mercury__string__f_43_43_2_f_0(SymNameStr_17, Var_59);
  Var_62 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_60);
  Var_63 = mercury__string__f_43_43_2_f_0(PorFStr_16, Var_62);
  DeclStr_19 = mercury__string__f_43_43_2_f_0((MR_String) ":- pragma mm_tabling_info(", Var_63);
  func_0 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_35, 0)), 6))));
  func_0(((MR_Box) (TypeClassInfo_for_pt_output_35)), ((MR_Box) (DeclStr_19)), ((MR_Box) (S_5)), ((MR_Box) ((MR_Integer) 0)), &conv1_STATE_VARIABLE_U_21);
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_114_97_105_108_105_110_103_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_35,
  MR_Word S_5,
  MR_Word Trailing_6)
{
  MR_Word PredNameArityPFMn_8 = ((MR_Word) ((MR_hl_field(0, Trailing_6, 0))));
  MR_Word TrailingStatus_9 = ((MR_Unsigned) ((MR_hl_field(0, Trailing_6, 1))) & (MR_Integer) 3);
  MR_Word PredOrFunc_12 = ((MR_Unsigned) ((MR_hl_field(0, PredNameArityPFMn_8, 0))) & (MR_Integer) 1);
  MR_Word SymName_13 = ((MR_Word) ((MR_hl_field(0, PredNameArityPFMn_8, 1))));
  MR_Integer Arity_14;
  MR_Integer ModeNum_15 = ((MR_Integer) ((MR_hl_field(0, PredNameArityPFMn_8, 3))));
  MR_String PorFStr_16;
  MR_String SymNameStr_17;
  MR_String TrailStr_18;
  MR_String DeclStr_19;
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, PredNameArityPFMn_8, 2))));
  MR_String Var_37;
  MR_String Var_39;
  MR_String Var_40;
  MR_String Var_47;
  MR_String Var_49;
  MR_String Var_50;
  MR_String Var_57;
  MR_String Var_59;
  MR_String Var_60;
  MR_String Var_62;
  MR_String Var_63;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv1_STATE_VARIABLE_U_21;

  Arity_14 = (MR_Integer) (Var_22);
  PorFStr_16 = mdbcomp__prim_data__pred_or_func_to_full_str_1_f_0(PredOrFunc_12);
  SymNameStr_17 = parse_tree__parse_tree_out_sym_name__mercury_bracketed_sym_name_to_string_1_f_0(SymName_13);
  switch (TrailingStatus_9) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 2:
      TrailStr_18 = (MR_String) "conditional";
      break;
    case (MR_Integer) 0:
      TrailStr_18 = (MR_String) "may_modify_trail";
      break;
    case (MR_Integer) 1:
      TrailStr_18 = (MR_String) "will_not_modify_trail";
      break;
  }
  Var_37 = mercury__string__f_43_43_2_f_0(TrailStr_18, (MR_String) ").\n");
  Var_39 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_37);
  mercury__string__format__format_signed_int_component_nowidth_noprec_3_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_5[0]), ModeNum_15, &Var_40);
  Var_47 = mercury__string__f_43_43_2_f_0(Var_40, Var_39);
  Var_49 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_47);
  mercury__string__format__format_signed_int_component_nowidth_noprec_3_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_5[0]), Arity_14, &Var_50);
  Var_57 = mercury__string__f_43_43_2_f_0(Var_50, Var_49);
  Var_59 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_57);
  Var_60 = mercury__string__f_43_43_2_f_0(SymNameStr_17, Var_59);
  Var_62 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_60);
  Var_63 = mercury__string__f_43_43_2_f_0(PorFStr_16, Var_62);
  DeclStr_19 = mercury__string__f_43_43_2_f_0((MR_String) ":- pragma trailing_info(", Var_63);
  func_0 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_35, 0)), 6))));
  func_0(((MR_Box) (TypeClassInfo_for_pt_output_35)), ((MR_Box) (DeclStr_19)), ((MR_Box) (S_5)), ((MR_Box) ((MR_Integer) 0)), &conv1_STATE_VARIABLE_U_21);
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_117_110_117_115_101_100_95_97_114_103_115_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_35,
  MR_Word S_5,
  MR_Word UnusedArgsInfo_6)
{
  MR_Word PredNameArityPFMn_8 = ((MR_Word) ((MR_hl_field(0, UnusedArgsInfo_6, 0))));
  MR_Word UnusedArgs_9 = ((MR_Word) ((MR_hl_field(0, UnusedArgsInfo_6, 1))));
  MR_Word PredOrFunc_12 = ((MR_Unsigned) ((MR_hl_field(0, PredNameArityPFMn_8, 0))) & (MR_Integer) 1);
  MR_Word SymName_13 = ((MR_Word) ((MR_hl_field(0, PredNameArityPFMn_8, 1))));
  MR_Integer Arity_14;
  MR_Integer ModeNum_15 = ((MR_Integer) ((MR_hl_field(0, PredNameArityPFMn_8, 3))));
  MR_String PorFStr_16;
  MR_String SymNameStr_17;
  MR_String UnusedArgsStr_18;
  MR_String DeclStr_19;
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, PredNameArityPFMn_8, 2))));
  MR_String Var_37;
  MR_String Var_39;
  MR_String Var_40;
  MR_String Var_47;
  MR_String Var_49;
  MR_String Var_50;
  MR_String Var_57;
  MR_String Var_59;
  MR_String Var_60;
  MR_String Var_62;
  MR_String Var_63;
  MR_Word State0_65;
  MR_Word State_66;
  void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv3_STATE_VARIABLE_U_21;

  Arity_14 = (MR_Integer) (Var_22);
  PorFStr_16 = mdbcomp__prim_data__pred_or_func_to_full_str_1_f_0(PredOrFunc_12);
  SymNameStr_17 = parse_tree__parse_tree_out_sym_name__mercury_bracketed_sym_name_to_string_1_f_0(SymName_13);
  State0_65 = mercury__string__builder__init_0_f_0();
  if ((UnusedArgs_9 == (MR_Word) ((MR_Unsigned) 0U)))
    State_66 = State0_65;
  else
  {
    MR_Integer Head_72 = ((MR_Integer) ((MR_hl_field(1, UnusedArgs_9, 0))));
    MR_Word Tail_73 = ((MR_Word) ((MR_hl_field(1, UnusedArgs_9, 1))));
    MR_Word STATE_VARIABLE_U_1_77;
    void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 10))));
    MR_Box conv1_STATE_VARIABLE_U_1_77;

    func_0(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) (Head_72)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (State0_65)), &conv1_STATE_VARIABLE_U_1_77);
    STATE_VARIABLE_U_1_77 = ((MR_Word) (conv1_STATE_VARIABLE_U_1_77));
    parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_105_110_116_95_108_105_115_116_95_50_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), Tail_73, STATE_VARIABLE_U_1_77, &State_66);
  }
  UnusedArgsStr_18 = mercury__string__builder__to_string_1_f_0(State_66);
  Var_37 = mercury__string__f_43_43_2_f_0(UnusedArgsStr_18, (MR_String) "]");
  Var_39 = mercury__string__f_43_43_2_f_0((MR_String) ", [", Var_37);
  mercury__string__format__format_signed_int_component_nowidth_noprec_3_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_5[0]), ModeNum_15, &Var_40);
  Var_47 = mercury__string__f_43_43_2_f_0(Var_40, Var_39);
  Var_49 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_47);
  mercury__string__format__format_signed_int_component_nowidth_noprec_3_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_5[0]), Arity_14, &Var_50);
  Var_57 = mercury__string__f_43_43_2_f_0(Var_50, Var_49);
  Var_59 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_57);
  Var_60 = mercury__string__f_43_43_2_f_0(SymNameStr_17, Var_59);
  Var_62 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_60);
  Var_63 = mercury__string__f_43_43_2_f_0(PorFStr_16, Var_62);
  DeclStr_19 = mercury__string__f_43_43_2_f_0((MR_String) ":- pragma unused_args(", Var_63);
  func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_35, 0)), 6))));
  func_2(((MR_Box) (TypeClassInfo_for_pt_output_35)), ((MR_Box) (DeclStr_19)), ((MR_Box) (S_5)), ((MR_Box) ((MR_Integer) 0)), &conv3_STATE_VARIABLE_U_21);
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_105_116_101_109_95_103_101_110_101_114_97_116_101_100_95_112_114_97_103_109_97_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_18,
  MR_Word Info_6,
  MR_Word GenPragma_8,
  MR_Word STATE_VARIABLE_U_0_15,
  MR_Word * STATE_VARIABLE_U_16)
{
  MR_Word Context_10;
  MR_Word STATE_VARIABLE_U_1_17;
  MR_Box conv0_STATE_VARIABLE_U_1_17;

  Context_10 = parse_tree__prog_item_pragma__get_gen_pragma_context_1_f_0(GenPragma_8);
  parse_tree__parse_tree_out_info__maybe_format_line_number_5_p_0(TypeClassInfo_for_pt_output_18, Info_6, Context_10, ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_0_15)), &conv0_STATE_VARIABLE_U_1_17);
  STATE_VARIABLE_U_1_17 = ((MR_Word) (conv0_STATE_VARIABLE_U_1_17));
  switch (MR_tag((MR_Word) GenPragma_8)) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 0:
      {
        MR_Word UnusedArgs_11 = (MR_Word) ((MR_Word) (GenPragma_8));

        parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_117_110_117_115_101_100_95_97_114_103_115_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0(TypeClassInfo_for_pt_output_18, UnusedArgs_11, STATE_VARIABLE_U_1_17, STATE_VARIABLE_U_16);
      }
      break;
    case (MR_Integer) 1:
      {
        MR_Word Exceptions_12 = (MR_Word) (MR_body((MR_Word) (GenPragma_8), (MR_Integer) 1));

        parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_101_120_99_101_112_116_105_111_110_115_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0(TypeClassInfo_for_pt_output_18, Exceptions_12, STATE_VARIABLE_U_1_17, STATE_VARIABLE_U_16);
      }
      break;
    case (MR_Integer) 2:
      {
        MR_Word Trailing_13 = (MR_Word) (MR_body((MR_Word) (GenPragma_8), (MR_Integer) 2));

        parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_114_97_105_108_105_110_103_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0(TypeClassInfo_for_pt_output_18, Trailing_13, STATE_VARIABLE_U_1_17, STATE_VARIABLE_U_16);
      }
      break;
    case (MR_Integer) 3:
      {
        MR_Word Tabling_14 = (MR_Word) (MR_body((MR_Word) (GenPragma_8), (MR_Integer) 3));

        parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_109_109_95_116_97_98_108_105_110_103_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0(TypeClassInfo_for_pt_output_18, Tabling_14, STATE_VARIABLE_U_1_17, STATE_VARIABLE_U_16);
      }
      break;
  }
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_101_120_99_101_112_116_105_111_110_115_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_36,
  MR_Word Exceptions_6,
  MR_Word STATE_VARIABLE_U_0_21,
  MR_Word * STATE_VARIABLE_U_22)
{
  MR_Word PredNameArityPFMn_8 = ((MR_Word) ((MR_hl_field(0, Exceptions_6, 0))));
  MR_Word ThrowStatus_9 = ((MR_Word) ((MR_hl_field(0, Exceptions_6, 1))));
  MR_Word PredOrFunc_12 = ((MR_Unsigned) ((MR_hl_field(0, PredNameArityPFMn_8, 0))) & (MR_Integer) 1);
  MR_Word SymName_13 = ((MR_Word) ((MR_hl_field(0, PredNameArityPFMn_8, 1))));
  MR_Integer Arity_14;
  MR_Integer ModeNum_15 = ((MR_Integer) ((MR_hl_field(0, PredNameArityPFMn_8, 3))));
  MR_String PorFStr_16;
  MR_String SymNameStr_17;
  MR_String ThrowStr_18;
  MR_String DeclStr_20;
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, PredNameArityPFMn_8, 2))));
  MR_String Var_38;
  MR_String Var_40;
  MR_String Var_41;
  MR_String Var_48;
  MR_String Var_50;
  MR_String Var_51;
  MR_String Var_58;
  MR_String Var_60;
  MR_String Var_61;
  MR_String Var_63;
  MR_String Var_64;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv1_STATE_VARIABLE_U_22;

  Arity_14 = (MR_Integer) (Var_23);
  PorFStr_16 = mdbcomp__prim_data__pred_or_func_to_full_str_1_f_0(PredOrFunc_12);
  SymNameStr_17 = parse_tree__parse_tree_out_sym_name__mercury_bracketed_sym_name_to_string_1_f_0(SymName_13);
  switch (MR_tag((MR_Word) ThrowStatus_9)) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 0:
      switch (MR_unmkbody(ThrowStatus_9)) {
        default: /*NOTREACHED*/ MR_assert(0);
        case (MR_Integer) 0:
          ThrowStr_18 = (MR_String) "will_not_throw";
          break;
        case (MR_Integer) 1:
          ThrowStr_18 = (MR_String) "conditional";
          break;
      }
      break;
    case (MR_Integer) 1:
      {
        MR_Word ExceptionType_19 = ((MR_Unsigned) ((MR_hl_field(1, ThrowStatus_9, 0))) & (MR_Integer) 1);

        switch (ExceptionType_19) {
          default: /*NOTREACHED*/ MR_assert(0);
          case (MR_Integer) 1:
            ThrowStr_18 = (MR_String) "may_throw(type_exception)";
            break;
          case (MR_Integer) 0:
            ThrowStr_18 = (MR_String) "may_throw(user_exception)";
            break;
        }
      }
      break;
  }
  Var_38 = mercury__string__f_43_43_2_f_0(ThrowStr_18, (MR_String) ").\n");
  Var_40 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_38);
  mercury__string__format__format_signed_int_component_nowidth_noprec_3_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_5[0]), ModeNum_15, &Var_41);
  Var_48 = mercury__string__f_43_43_2_f_0(Var_41, Var_40);
  Var_50 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_48);
  mercury__string__format__format_signed_int_component_nowidth_noprec_3_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_5[0]), Arity_14, &Var_51);
  Var_58 = mercury__string__f_43_43_2_f_0(Var_51, Var_50);
  Var_60 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_58);
  Var_61 = mercury__string__f_43_43_2_f_0(SymNameStr_17, Var_60);
  Var_63 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_61);
  Var_64 = mercury__string__f_43_43_2_f_0(PorFStr_16, Var_63);
  DeclStr_20 = mercury__string__f_43_43_2_f_0((MR_String) ":- pragma exceptions(", Var_64);
  func_0 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
  func_0(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) (DeclStr_20)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_0_21)), &conv1_STATE_VARIABLE_U_22);
  *STATE_VARIABLE_U_22 = ((MR_Word) (conv1_STATE_VARIABLE_U_22));
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_109_109_95_116_97_98_108_105_110_103_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_35,
  MR_Word MMTabling_6,
  MR_Word STATE_VARIABLE_U_0_20,
  MR_Word * STATE_VARIABLE_U_21)
{
  MR_Word PredNameArityPFMn_8 = ((MR_Word) ((MR_hl_field(0, MMTabling_6, 0))));
  MR_Word MM_TablingStatus_9 = ((MR_Unsigned) ((MR_hl_field(0, MMTabling_6, 1))) & (MR_Integer) 3);
  MR_Word PredOrFunc_12 = ((MR_Unsigned) ((MR_hl_field(0, PredNameArityPFMn_8, 0))) & (MR_Integer) 1);
  MR_Word SymName_13 = ((MR_Word) ((MR_hl_field(0, PredNameArityPFMn_8, 1))));
  MR_Integer Arity_14;
  MR_Integer ModeNum_15 = ((MR_Integer) ((MR_hl_field(0, PredNameArityPFMn_8, 3))));
  MR_String PorFStr_16;
  MR_String SymNameStr_17;
  MR_String MMStr_18;
  MR_String DeclStr_19;
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, PredNameArityPFMn_8, 2))));
  MR_String Var_37;
  MR_String Var_39;
  MR_String Var_40;
  MR_String Var_47;
  MR_String Var_49;
  MR_String Var_50;
  MR_String Var_57;
  MR_String Var_59;
  MR_String Var_60;
  MR_String Var_62;
  MR_String Var_63;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv1_STATE_VARIABLE_U_21;

  Arity_14 = (MR_Integer) (Var_22);
  PorFStr_16 = mdbcomp__prim_data__pred_or_func_to_full_str_1_f_0(PredOrFunc_12);
  SymNameStr_17 = parse_tree__parse_tree_out_sym_name__mercury_bracketed_sym_name_to_string_1_f_0(SymName_13);
  switch (MM_TablingStatus_9) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 2:
      MMStr_18 = (MR_String) "mm_tabled_conditional";
      break;
    case (MR_Integer) 0:
      MMStr_18 = (MR_String) "mm_tabled_may_call";
      break;
    case (MR_Integer) 1:
      MMStr_18 = (MR_String) "mm_tabled_will_not_call";
      break;
  }
  Var_37 = mercury__string__f_43_43_2_f_0(MMStr_18, (MR_String) ").\n");
  Var_39 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_37);
  mercury__string__format__format_signed_int_component_nowidth_noprec_3_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_5[0]), ModeNum_15, &Var_40);
  Var_47 = mercury__string__f_43_43_2_f_0(Var_40, Var_39);
  Var_49 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_47);
  mercury__string__format__format_signed_int_component_nowidth_noprec_3_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_5[0]), Arity_14, &Var_50);
  Var_57 = mercury__string__f_43_43_2_f_0(Var_50, Var_49);
  Var_59 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_57);
  Var_60 = mercury__string__f_43_43_2_f_0(SymNameStr_17, Var_59);
  Var_62 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_60);
  Var_63 = mercury__string__f_43_43_2_f_0(PorFStr_16, Var_62);
  DeclStr_19 = mercury__string__f_43_43_2_f_0((MR_String) ":- pragma mm_tabling_info(", Var_63);
  func_0 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_35, 0)), 6))));
  func_0(((MR_Box) (TypeClassInfo_for_pt_output_35)), ((MR_Box) (DeclStr_19)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_0_20)), &conv1_STATE_VARIABLE_U_21);
  *STATE_VARIABLE_U_21 = ((MR_Word) (conv1_STATE_VARIABLE_U_21));
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_114_97_105_108_105_110_103_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_35,
  MR_Word Trailing_6,
  MR_Word STATE_VARIABLE_U_0_20,
  MR_Word * STATE_VARIABLE_U_21)
{
  MR_Word PredNameArityPFMn_8 = ((MR_Word) ((MR_hl_field(0, Trailing_6, 0))));
  MR_Word TrailingStatus_9 = ((MR_Unsigned) ((MR_hl_field(0, Trailing_6, 1))) & (MR_Integer) 3);
  MR_Word PredOrFunc_12 = ((MR_Unsigned) ((MR_hl_field(0, PredNameArityPFMn_8, 0))) & (MR_Integer) 1);
  MR_Word SymName_13 = ((MR_Word) ((MR_hl_field(0, PredNameArityPFMn_8, 1))));
  MR_Integer Arity_14;
  MR_Integer ModeNum_15 = ((MR_Integer) ((MR_hl_field(0, PredNameArityPFMn_8, 3))));
  MR_String PorFStr_16;
  MR_String SymNameStr_17;
  MR_String TrailStr_18;
  MR_String DeclStr_19;
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, PredNameArityPFMn_8, 2))));
  MR_String Var_37;
  MR_String Var_39;
  MR_String Var_40;
  MR_String Var_47;
  MR_String Var_49;
  MR_String Var_50;
  MR_String Var_57;
  MR_String Var_59;
  MR_String Var_60;
  MR_String Var_62;
  MR_String Var_63;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv1_STATE_VARIABLE_U_21;

  Arity_14 = (MR_Integer) (Var_22);
  PorFStr_16 = mdbcomp__prim_data__pred_or_func_to_full_str_1_f_0(PredOrFunc_12);
  SymNameStr_17 = parse_tree__parse_tree_out_sym_name__mercury_bracketed_sym_name_to_string_1_f_0(SymName_13);
  switch (TrailingStatus_9) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 2:
      TrailStr_18 = (MR_String) "conditional";
      break;
    case (MR_Integer) 0:
      TrailStr_18 = (MR_String) "may_modify_trail";
      break;
    case (MR_Integer) 1:
      TrailStr_18 = (MR_String) "will_not_modify_trail";
      break;
  }
  Var_37 = mercury__string__f_43_43_2_f_0(TrailStr_18, (MR_String) ").\n");
  Var_39 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_37);
  mercury__string__format__format_signed_int_component_nowidth_noprec_3_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_5[0]), ModeNum_15, &Var_40);
  Var_47 = mercury__string__f_43_43_2_f_0(Var_40, Var_39);
  Var_49 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_47);
  mercury__string__format__format_signed_int_component_nowidth_noprec_3_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_5[0]), Arity_14, &Var_50);
  Var_57 = mercury__string__f_43_43_2_f_0(Var_50, Var_49);
  Var_59 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_57);
  Var_60 = mercury__string__f_43_43_2_f_0(SymNameStr_17, Var_59);
  Var_62 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_60);
  Var_63 = mercury__string__f_43_43_2_f_0(PorFStr_16, Var_62);
  DeclStr_19 = mercury__string__f_43_43_2_f_0((MR_String) ":- pragma trailing_info(", Var_63);
  func_0 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_35, 0)), 6))));
  func_0(((MR_Box) (TypeClassInfo_for_pt_output_35)), ((MR_Box) (DeclStr_19)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_0_20)), &conv1_STATE_VARIABLE_U_21);
  *STATE_VARIABLE_U_21 = ((MR_Word) (conv1_STATE_VARIABLE_U_21));
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_117_110_117_115_101_100_95_97_114_103_115_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_35,
  MR_Word UnusedArgsInfo_6,
  MR_Word STATE_VARIABLE_U_0_20,
  MR_Word * STATE_VARIABLE_U_21)
{
  MR_Word PredNameArityPFMn_8 = ((MR_Word) ((MR_hl_field(0, UnusedArgsInfo_6, 0))));
  MR_Word UnusedArgs_9 = ((MR_Word) ((MR_hl_field(0, UnusedArgsInfo_6, 1))));
  MR_Word PredOrFunc_12 = ((MR_Unsigned) ((MR_hl_field(0, PredNameArityPFMn_8, 0))) & (MR_Integer) 1);
  MR_Word SymName_13 = ((MR_Word) ((MR_hl_field(0, PredNameArityPFMn_8, 1))));
  MR_Integer Arity_14;
  MR_Integer ModeNum_15 = ((MR_Integer) ((MR_hl_field(0, PredNameArityPFMn_8, 3))));
  MR_String PorFStr_16;
  MR_String SymNameStr_17;
  MR_String UnusedArgsStr_18;
  MR_String DeclStr_19;
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, PredNameArityPFMn_8, 2))));
  MR_String Var_37;
  MR_String Var_39;
  MR_String Var_40;
  MR_String Var_47;
  MR_String Var_49;
  MR_String Var_50;
  MR_String Var_57;
  MR_String Var_59;
  MR_String Var_60;
  MR_String Var_62;
  MR_String Var_63;
  MR_Word State0_65;
  MR_Word State_66;
  void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv3_STATE_VARIABLE_U_21;

  Arity_14 = (MR_Integer) (Var_22);
  PorFStr_16 = mdbcomp__prim_data__pred_or_func_to_full_str_1_f_0(PredOrFunc_12);
  SymNameStr_17 = parse_tree__parse_tree_out_sym_name__mercury_bracketed_sym_name_to_string_1_f_0(SymName_13);
  State0_65 = mercury__string__builder__init_0_f_0();
  if ((UnusedArgs_9 == (MR_Word) ((MR_Unsigned) 0U)))
    State_66 = State0_65;
  else
  {
    MR_Integer Head_72 = ((MR_Integer) ((MR_hl_field(1, UnusedArgs_9, 0))));
    MR_Word Tail_73 = ((MR_Word) ((MR_hl_field(1, UnusedArgs_9, 1))));
    MR_Word STATE_VARIABLE_U_1_77;
    void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 10))));
    MR_Box conv1_STATE_VARIABLE_U_1_77;

    func_0(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) (Head_72)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (State0_65)), &conv1_STATE_VARIABLE_U_1_77);
    STATE_VARIABLE_U_1_77 = ((MR_Word) (conv1_STATE_VARIABLE_U_1_77));
    parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_105_110_116_95_108_105_115_116_95_50_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), Tail_73, STATE_VARIABLE_U_1_77, &State_66);
  }
  UnusedArgsStr_18 = mercury__string__builder__to_string_1_f_0(State_66);
  Var_37 = mercury__string__f_43_43_2_f_0(UnusedArgsStr_18, (MR_String) "]");
  Var_39 = mercury__string__f_43_43_2_f_0((MR_String) ", [", Var_37);
  mercury__string__format__format_signed_int_component_nowidth_noprec_3_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_5[0]), ModeNum_15, &Var_40);
  Var_47 = mercury__string__f_43_43_2_f_0(Var_40, Var_39);
  Var_49 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_47);
  mercury__string__format__format_signed_int_component_nowidth_noprec_3_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_5[0]), Arity_14, &Var_50);
  Var_57 = mercury__string__f_43_43_2_f_0(Var_50, Var_49);
  Var_59 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_57);
  Var_60 = mercury__string__f_43_43_2_f_0(SymNameStr_17, Var_59);
  Var_62 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_60);
  Var_63 = mercury__string__f_43_43_2_f_0(PorFStr_16, Var_62);
  DeclStr_19 = mercury__string__f_43_43_2_f_0((MR_String) ":- pragma unused_args(", Var_63);
  func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_35, 0)), 6))));
  func_2(((MR_Box) (TypeClassInfo_for_pt_output_35)), ((MR_Box) (DeclStr_19)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_0_20)), &conv3_STATE_VARIABLE_U_21);
  *STATE_VARIABLE_U_21 = ((MR_Word) (conv3_STATE_VARIABLE_U_21));
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_105_116_101_109_95_105_109_112_108_95_112_114_97_103_109_97_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_23,
  MR_Word Info_6,
  MR_Word S_7,
  MR_Word ImplPragma_8)
{
  MR_Word Context_10;
  MR_Word Lang_11;
  MR_Box conv0_STATE_VARIABLE_U_1_22;

  Context_10 = parse_tree__prog_item_pragma__get_impl_pragma_context_1_f_0(ImplPragma_8);
  parse_tree__parse_tree_out_info__maybe_format_line_number_5_p_0(TypeClassInfo_for_pt_output_23, Info_6, Context_10, ((MR_Box) (S_7)), ((MR_Box) ((MR_Integer) 0)), &conv0_STATE_VARIABLE_U_1_22);
  Lang_11 = parse_tree__parse_tree_out_info__get_output_lang_1_f_0(Info_6);
  switch (MR_tag((MR_Word) ImplPragma_8)) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 0:
      {
        MR_Word FDInfo_12 = (MR_Word) ((MR_Word) (ImplPragma_8));

        parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_102_111_114_101_105_103_110_95_100_101_99_108_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0(TypeClassInfo_for_pt_output_23, FDInfo_12, S_7);
      }
      break;
    case (MR_Integer) 1:
      {
        MR_Word FCInfo_13 = (MR_Word) (MR_body((MR_Word) (ImplPragma_8), (MR_Integer) 1));

        parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_102_111_114_101_105_103_110_95_99_111_100_101_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0(TypeClassInfo_for_pt_output_23, FCInfo_13, S_7);
      }
      break;
    case (MR_Integer) 2:
      {
        MR_Word FPEInfo_14 = (MR_Word) (MR_body((MR_Word) (ImplPragma_8), (MR_Integer) 2));

        parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_102_111_114_101_105_103_110_95_112_114_111_99_95_101_120_112_111_114_116_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_23, S_7, Lang_11, FPEInfo_14);
      }
      break;
    case (MR_Integer) 3:
      switch (((MR_Integer) ((MR_hl_field(3, ImplPragma_8, 0))))) {
        default: /*NOTREACHED*/ MR_assert(0);
        case (MR_Integer) 0:
          {
            MR_Word ExternalInfo_15 = ((MR_Word) ((MR_hl_field(3, ImplPragma_8, 1))));
            MR_Word PFNameArity_24 = ((MR_Word) ((MR_hl_field(0, ExternalInfo_15, 0))));
            MR_Word MaybeBackend_25 = ((MR_Word) ((MR_hl_field(0, ExternalInfo_15, 1))));
            MR_Word PorF_28 = ((MR_Unsigned) ((MR_hl_field(0, PFNameArity_24, 0))) & (MR_Integer) 1);
            MR_Word PredName_29 = ((MR_Word) ((MR_hl_field(0, PFNameArity_24, 1))));
            MR_Integer Arity_30;
            MR_String PorFStr_31;
            MR_Word Var_33 = ((MR_Word) ((MR_hl_field(0, PFNameArity_24, 2))));
            void MR_CALL (* func_1)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
            MR_Box conv2_STATE_VARIABLE_U_1_35;
            void MR_CALL (* func_3)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
            MR_Box conv4_STATE_VARIABLE_U_2_36;
            void MR_CALL (* func_5)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
            MR_Box conv6_STATE_VARIABLE_U_3_38;
            void MR_CALL (* func_7)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
            MR_Box conv8_STATE_VARIABLE_U_5_41;
            void MR_CALL (* func_9)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
            MR_Box conv10_STATE_VARIABLE_U_6_42;
            void MR_CALL (* func_17)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
            MR_Box conv18_STATE_VARIABLE_U_21;

            Arity_30 = (MR_Integer) (Var_33);
            PorFStr_31 = mdbcomp__prim_data__pred_or_func_to_str_1_f_0(PorF_28);
            func_1 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
            func_1(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) ":- pragma external_")), ((MR_Box) (S_7)), ((MR_Box) ((MR_Integer) 0)), &conv2_STATE_VARIABLE_U_1_35);
            func_3 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
            func_3(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) (PorFStr_31)), ((MR_Box) (S_7)), ((MR_Box) ((MR_Integer) 0)), &conv4_STATE_VARIABLE_U_2_36);
            func_5 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
            func_5(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) "(")), ((MR_Box) (S_7)), ((MR_Box) ((MR_Integer) 0)), &conv6_STATE_VARIABLE_U_3_38);
            parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_115_121_109_95_110_97_109_101_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0(TypeClassInfo_for_pt_output_23, PredName_29, S_7);
            func_7 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
            func_7(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) "/")), ((MR_Box) (S_7)), ((MR_Box) ((MR_Integer) 0)), &conv8_STATE_VARIABLE_U_5_41);
            func_9 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 10))));
            func_9(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) (Arity_30)), ((MR_Box) (S_7)), ((MR_Box) ((MR_Integer) 0)), &conv10_STATE_VARIABLE_U_6_42);
            if (!((MaybeBackend_25 == (MR_Word) ((MR_Unsigned) 0U))))
            {
              MR_Word Backend_32 = ((MR_Word) ((MR_hl_field(1, MaybeBackend_25, 0))));
              MR_String Var_45;
              void MR_CALL (* func_11)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
              MR_Box conv12_STATE_VARIABLE_U_7_44;
              void MR_CALL (* func_13)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
              MR_Box conv14_STATE_VARIABLE_U_8_46;
              void MR_CALL (* func_15)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
              MR_Box conv16_STATE_VARIABLE_U_9_48;

              func_11(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) ", [")), ((MR_Box) (S_7)), ((MR_Box) ((MR_Integer) 0)), &conv12_STATE_VARIABLE_U_7_44);
              switch (Backend_32) {
                default: /*NOTREACHED*/ MR_assert(0);
                case (MR_Integer) 0:
                  Var_45 = (MR_String) "high_level_backend";
                  break;
                case (MR_Integer) 1:
                  Var_45 = (MR_String) "low_level_backend";
                  break;
              }
              func_13 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
              func_13(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) (Var_45)), ((MR_Box) (S_7)), ((MR_Box) ((MR_Integer) 0)), &conv14_STATE_VARIABLE_U_8_46);
              func_15 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
              func_15(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) "]")), ((MR_Box) (S_7)), ((MR_Box) ((MR_Integer) 0)), &conv16_STATE_VARIABLE_U_9_48);
            }
            func_17 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
            func_17(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) ").\n")), ((MR_Box) (S_7)), ((MR_Box) ((MR_Integer) 0)), &conv18_STATE_VARIABLE_U_21);
          }
          break;
        case (MR_Integer) 1:
          {
            MR_Word FactTableInfo_16 = ((MR_Word) ((MR_hl_field(3, ImplPragma_8, 1))));
            MR_Word PredSpec_50 = ((MR_Word) ((MR_hl_field(0, FactTableInfo_16, 0))));
            MR_String FileName_51 = ((MR_String) ((MR_hl_field(0, FactTableInfo_16, 1))));
            MR_Word PFU_54;
            MR_Word PredName_55;
            MR_Word UserArity_56;
            void MR_CALL (* func_19)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
            MR_Box conv20_STATE_VARIABLE_U_1_58;
            void MR_CALL (* func_45)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
            MR_Box conv46_STATE_VARIABLE_U_3_61;
            void MR_CALL (* func_47)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
            MR_Box conv48_STATE_VARIABLE_U_4_62;
            void MR_CALL (* func_49)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
            MR_Box conv50_STATE_VARIABLE_U_21;

            func_19(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) ":- pragma fact_table(")), ((MR_Box) (S_7)), ((MR_Box) ((MR_Integer) 0)), &conv20_STATE_VARIABLE_U_1_58);
            PFU_54 = ((MR_Unsigned) ((MR_hl_field(0, PredSpec_50, 0))) & (MR_Integer) 3);
            PredName_55 = ((MR_Word) ((MR_hl_field(0, PredSpec_50, 1))));
            UserArity_56 = ((MR_Word) ((MR_hl_field(0, PredSpec_50, 2))));
            switch (PFU_54) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 1:
                {
                  MR_String Var_66;
                  MR_Integer Arity_73;
                  void MR_CALL (* func_21)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
                  MR_Box conv22_STATE_VARIABLE_U_1_67;
                  void MR_CALL (* func_23)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
                  MR_Box conv24_STATE_VARIABLE_U_2_69;
                  void MR_CALL (* func_25)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
                  MR_Box conv26_STATE_VARIABLE_U_2_76;
                  void MR_CALL (* func_27)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
                  MR_Box conv28_STATE_VARIABLE_U_3_71;
                  void MR_CALL (* func_29)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
                  MR_Box conv30_STATE_VARIABLE_U_2_59;

                  Var_66 = mdbcomp__prim_data__pred_or_func_to_str_1_f_0((MR_Integer) 1);
                  func_21 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
                  func_21(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) (Var_66)), ((MR_Box) (S_7)), ((MR_Box) ((MR_Integer) 0)), &conv22_STATE_VARIABLE_U_1_67);
                  func_23 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
                  func_23(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) "(")), ((MR_Box) (S_7)), ((MR_Box) ((MR_Integer) 0)), &conv24_STATE_VARIABLE_U_2_69);
                  Arity_73 = (MR_Integer) (UserArity_56);
                  parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_98_114_97_99_107_101_116_101_100_95_115_121_109_95_110_97_109_101_95_110_103_116_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_23, (MR_Integer) 1, PredName_55, S_7);
                  func_25 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
                  func_25(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) "/")), ((MR_Box) (S_7)), ((MR_Box) ((MR_Integer) 0)), &conv26_STATE_VARIABLE_U_2_76);
                  func_27 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 10))));
                  func_27(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) (Arity_73)), ((MR_Box) (S_7)), ((MR_Box) ((MR_Integer) 0)), &conv28_STATE_VARIABLE_U_3_71);
                  func_29 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
                  func_29(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) ")")), ((MR_Box) (S_7)), ((MR_Box) ((MR_Integer) 0)), &conv30_STATE_VARIABLE_U_2_59);
                }
                break;
              case (MR_Integer) 0:
                {
                  MR_String Var_77;
                  MR_Integer Arity_84;
                  void MR_CALL (* func_31)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
                  MR_Box conv32_STATE_VARIABLE_U_1_78;
                  void MR_CALL (* func_33)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
                  MR_Box conv34_STATE_VARIABLE_U_2_80;
                  void MR_CALL (* func_35)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
                  MR_Box conv36_STATE_VARIABLE_U_2_87;
                  void MR_CALL (* func_37)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
                  MR_Box conv38_STATE_VARIABLE_U_3_82;
                  void MR_CALL (* func_39)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
                  MR_Box conv40_STATE_VARIABLE_U_2_59;

                  Var_77 = mdbcomp__prim_data__pred_or_func_to_str_1_f_0((MR_Integer) 0);
                  func_31 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
                  func_31(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) (Var_77)), ((MR_Box) (S_7)), ((MR_Box) ((MR_Integer) 0)), &conv32_STATE_VARIABLE_U_1_78);
                  func_33 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
                  func_33(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) "(")), ((MR_Box) (S_7)), ((MR_Box) ((MR_Integer) 0)), &conv34_STATE_VARIABLE_U_2_80);
                  Arity_84 = (MR_Integer) (UserArity_56);
                  parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_98_114_97_99_107_101_116_101_100_95_115_121_109_95_110_97_109_101_95_110_103_116_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_23, (MR_Integer) 1, PredName_55, S_7);
                  func_35 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
                  func_35(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) "/")), ((MR_Box) (S_7)), ((MR_Box) ((MR_Integer) 0)), &conv36_STATE_VARIABLE_U_2_87);
                  func_37 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 10))));
                  func_37(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) (Arity_84)), ((MR_Box) (S_7)), ((MR_Box) ((MR_Integer) 0)), &conv38_STATE_VARIABLE_U_3_82);
                  func_39 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
                  func_39(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) ")")), ((MR_Box) (S_7)), ((MR_Box) ((MR_Integer) 0)), &conv40_STATE_VARIABLE_U_2_59);
                }
                break;
              case (MR_Integer) 2:
                {
                  MR_Integer Arity_89 = (MR_Integer) (UserArity_56);
                  void MR_CALL (* func_41)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
                  MR_Box conv42_STATE_VARIABLE_U_2_92;
                  void MR_CALL (* func_43)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
                  MR_Box conv44_STATE_VARIABLE_U_2_59;

                  parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_98_114_97_99_107_101_116_101_100_95_115_121_109_95_110_97_109_101_95_110_103_116_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_23, (MR_Integer) 0, PredName_55, S_7);
                  func_41 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
                  func_41(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) "/")), ((MR_Box) (S_7)), ((MR_Box) ((MR_Integer) 0)), &conv42_STATE_VARIABLE_U_2_92);
                  func_43 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 10))));
                  func_43(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) (Arity_89)), ((MR_Box) (S_7)), ((MR_Box) ((MR_Integer) 0)), &conv44_STATE_VARIABLE_U_2_59);
                }
                break;
            }
            func_45 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
            func_45(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) (S_7)), ((MR_Box) ((MR_Integer) 0)), &conv46_STATE_VARIABLE_U_3_61);
            func_47 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 9))));
            func_47(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) (FileName_51)), ((MR_Box) (S_7)), ((MR_Box) ((MR_Integer) 0)), &conv48_STATE_VARIABLE_U_4_62);
            func_49 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
            func_49(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) ").\n")), ((MR_Box) (S_7)), ((MR_Box) ((MR_Integer) 0)), &conv50_STATE_VARIABLE_U_21);
          }
          break;
        case (MR_Integer) 2:
          {
            MR_Word TabledInfo_17 = ((MR_Word) ((MR_hl_field(3, ImplPragma_8, 1))));

            parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_97_98_108_101_100_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0(TypeClassInfo_for_pt_output_23, TabledInfo_17, S_7);
          }
          break;
        case (MR_Integer) 3:
          {
            MR_Word RequireTailrecPragma_18 = ((MR_Word) ((MR_hl_field(3, ImplPragma_8, 1))));

            parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_114_101_113_117_105_114_101_95_116_97_105_108_95_114_101_99_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_23, Lang_11, RequireTailrecPragma_18, S_7);
          }
          break;
        case (MR_Integer) 4:
          {
            MR_Word RFSInfo_19 = ((MR_Word) ((MR_hl_field(3, ImplPragma_8, 1))));

            parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_114_101_113_117_105_114_101_95_102_101_97_116_117_114_101_95_115_101_116_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0(TypeClassInfo_for_pt_output_23, RFSInfo_19, S_7);
          }
          break;
      }
      break;
  }
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_102_111_114_101_105_103_110_95_99_111_100_101_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box * wrapper_arg_3)
{
  MR_Box closure = closure_arg;
  MR_Word conv8_STATE_VARIABLE_U_10;

  parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_101_115_99_97_112_101_100_95_99_104_97_114_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0(((MR_Word) ((MR_hl_field(0, closure, 3)))), ((MR_Char) (MR_Word) wrapper_arg_1), ((MR_Word) (wrapper_arg_2)), &conv8_STATE_VARIABLE_U_10);
  *wrapper_arg_3 = ((MR_Box) (conv8_STATE_VARIABLE_U_10));
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_102_111_114_101_105_103_110_95_99_111_100_101_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_23,
  MR_Word FCInfo_5,
  MR_Word S_6)
{
  MR_Word Lang_8 = ((MR_Unsigned) ((MR_hl_field(0, FCInfo_5, 0))) & (MR_Integer) 3);
  MR_Word LiteralOrInclude_9 = ((MR_Word) ((MR_hl_field(0, FCInfo_5, 1))));
  MR_String LangStr_12;
  MR_String LorIStr_13;
  MR_String DeclStr_14;
  MR_String Var_25;
  MR_String Var_27;
  MR_String Var_28;
  MR_Word State0_30;
  MR_Word State_31;
  void MR_CALL (* func_12)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv13_STATE_VARIABLE_U_16;

  LangStr_12 = parse_tree__parse_tree_out_misc__mercury_foreign_language_to_string_1_f_0(Lang_8);
  State0_30 = mercury__string__builder__init_0_f_0();
  if (((MR_tag((MR_Word) LiteralOrInclude_9)) == (MR_Integer) 1))
  {
    MR_String FileName_35 = ((MR_String) ((MR_hl_field(1, LiteralOrInclude_9, 0))));
    MR_Word STATE_VARIABLE_U_2_37;
    MR_Word STATE_VARIABLE_U_3_38;
    void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 6))));
    MR_Box conv1_STATE_VARIABLE_U_2_37;
    void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv3_STATE_VARIABLE_U_3_38;
    void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv5_State_31;

    func_0(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) ((MR_String) "include_file(")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (State0_30)), &conv1_STATE_VARIABLE_U_2_37);
    STATE_VARIABLE_U_2_37 = ((MR_Word) (conv1_STATE_VARIABLE_U_2_37));
    func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 9))));
    func_2(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) (FileName_35)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_37)), &conv3_STATE_VARIABLE_U_3_38);
    STATE_VARIABLE_U_3_38 = ((MR_Word) (conv3_STATE_VARIABLE_U_3_38));
    func_4 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 6))));
    func_4(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) ((MR_String) ")")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_38)), &conv5_State_31);
    State_31 = ((MR_Word) (conv5_State_31));
  }
  else
  {
    MR_Word TypeInfo_16_46;
    MR_String Code_34 = ((MR_String) ((MR_hl_field(0, LiteralOrInclude_9, 0))));
    MR_Word STATE_VARIABLE_U_1_41;
    MR_Word STATE_VARIABLE_U_2_42;
    void MR_CALL (* func_6)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 6))));
    MR_Box conv7_STATE_VARIABLE_U_1_41;
    MR_Box conv9_STATE_VARIABLE_U_2_42;
    void MR_CALL (* func_10)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv11_State_31;

    func_6(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) ((MR_String) "\"")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (State0_30)), &conv7_STATE_VARIABLE_U_1_41);
    STATE_VARIABLE_U_1_41 = ((MR_Word) (conv7_STATE_VARIABLE_U_1_41));
    mercury__private_builtin__type_info_from_typeclass_info_3_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), (MR_Integer) 3, &TypeInfo_16_46);
    mercury__string__foldl_4_p_0(TypeInfo_16_46, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_3[11]), Code_34, ((MR_Box) (STATE_VARIABLE_U_1_41)), &conv9_STATE_VARIABLE_U_2_42);
    STATE_VARIABLE_U_2_42 = ((MR_Word) (conv9_STATE_VARIABLE_U_2_42));
    func_10 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 6))));
    func_10(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) ((MR_String) "\"")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_42)), &conv11_State_31);
    State_31 = ((MR_Word) (conv11_State_31));
  }
  LorIStr_13 = mercury__string__builder__to_string_1_f_0(State_31);
  Var_25 = mercury__string__f_43_43_2_f_0(LorIStr_13, (MR_String) ").\n");
  Var_27 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_25);
  Var_28 = mercury__string__f_43_43_2_f_0(LangStr_12, Var_27);
  DeclStr_14 = mercury__string__f_43_43_2_f_0((MR_String) ":- pragma foreign_code(", Var_28);
  func_12 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
  func_12(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) (DeclStr_14)), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv13_STATE_VARIABLE_U_16);
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_114_101_113_117_105_114_101_95_102_101_97_116_117_114_101_95_115_101_116_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4)
{
  MR_Box closure = closure_arg;

  parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_114_101_113_117_105_114_101_100_95_102_101_97_116_117_114_101_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0(((MR_Word) ((MR_hl_field(0, closure, 3)))), ((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_114_101_113_117_105_114_101_95_102_101_97_116_117_114_101_95_115_101_116_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_20,
  MR_Word RFSInfo_5,
  MR_Word S_6)
{
  MR_Word Features0_8 = ((MR_Word) ((MR_hl_field(0, RFSInfo_5, 0))));
  MR_Word Features_11;
  MR_Word Var_16;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv1_STATE_VARIABLE_U_1_15;
  void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv3_STATE_VARIABLE_U_2_18;
  void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv5_STATE_VARIABLE_U_13;

  Features_11 = mercury__set__to_sorted_list_1_f_0((MR_Word) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_required_feature_0), Features0_8);
  func_0 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_20, 0)), 6))));
  func_0(((MR_Box) (TypeClassInfo_for_pt_output_20)), ((MR_Box) ((MR_String) ":- pragma require_feature_set(")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv1_STATE_VARIABLE_U_1_15);
  {
    Var_16 = (MR_Word) MR_new_object(MR_Word, (4 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_16, 0) = ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_9[6]));
    MR_hl_field(0, Var_16, 1) = ((MR_Box) (parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_114_101_113_117_105_114_101_95_102_101_97_116_117_114_101_95_115_101_116_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0_1));
    MR_hl_field(0, Var_16, 2) = ((MR_Box) ((MR_Integer) 1));
    MR_hl_field(0, Var_16, 3) = ((MR_Box) (TypeClassInfo_for_pt_output_20));
  }
  func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_20, 0)), 25))));
  func_2(((MR_Box) (TypeClassInfo_for_pt_output_20)), ((MR_Box) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_required_feature_0)), ((MR_Box) (Var_16)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) (Features_11)), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv3_STATE_VARIABLE_U_2_18);
  func_4 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_20, 0)), 6))));
  func_4(((MR_Box) (TypeClassInfo_for_pt_output_20)), ((MR_Box) ((MR_String) ").\n")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv5_STATE_VARIABLE_U_13);
}

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_97_98_108_101_100_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1)
{
  MR_Box wrapper_arg_2;
  MR_Box closure = closure_arg;
  MR_String conv0_HeadVar__2_2;

  conv0_HeadVar__2_2 = parse_tree__parse_tree_out_misc__maybe_arg_tabling_method_to_string_1_f_0(((MR_Word) (wrapper_arg_1)));
  wrapper_arg_2 = ((MR_Box) (conv0_HeadVar__2_2));
  return wrapper_arg_2;
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_97_98_108_101_100_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_62,
  MR_Word Tabled_5,
  MR_Word S_6)
{
  MR_Word TabledMethod_8 = ((MR_Word) ((MR_hl_field(0, Tabled_5, 0))));
  MR_Word PredOrProcSpec_9 = ((MR_Word) ((MR_hl_field(0, Tabled_5, 1))));
  MR_Word MaybeAttributes_10 = ((MR_Word) ((MR_hl_field(0, Tabled_5, 2))));
  MR_String PragmaName_13;
  MR_String AfterStr_29;
  MR_String PredOrProcSpecStr_65;
  void MR_CALL (* func_1)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv2_STATE_VARIABLE_U_1_68;
  void MR_CALL (* func_3)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv4_STATE_VARIABLE_U_2_69;
  void MR_CALL (* func_5)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv6_STATE_VARIABLE_U_3_71;
  void MR_CALL (* func_7)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv8_STATE_VARIABLE_U_4_72;
  void MR_CALL (* func_9)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv10_STATE_VARIABLE_U_5_73;
  void MR_CALL (* func_11)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv12_STATE_VARIABLE_U_33;

  PragmaName_13 = parse_tree__parse_tree_out_misc__tabled_eval_method_to_pragma_name_1_f_0(TabledMethod_8);
  if ((MaybeAttributes_10 == (MR_Word) ((MR_Unsigned) 0U)))
    AfterStr_29 = (MR_String) "";
  else
  {
    MR_Word Attributes_14 = ((MR_Word) ((MR_hl_field(1, MaybeAttributes_10, 0))));
    MR_Word Strictness_15 = ((MR_Word) ((MR_hl_field(0, Attributes_14, 0))));
    MR_Word MaybeSizeLimit_16 = ((MR_Word) ((MR_hl_field(0, Attributes_14, 1))));
    MR_Word Stats_17 = ((((MR_Unsigned) ((MR_hl_field(0, Attributes_14, 2))) >> 2)) & (MR_Integer) 1);
    MR_Word AllowReset_18 = ((((MR_Unsigned) ((MR_hl_field(0, Attributes_14, 2))) >> 1)) & (MR_Integer) 1);
    MR_Word WarnForIgnore_19 = ((MR_Unsigned) ((MR_hl_field(0, Attributes_14, 2))) & (MR_Integer) 1);
    MR_Word STATE_VARIABLE_Strs_2_35;
    MR_Word STATE_VARIABLE_Strs_4_50;
    MR_Word STATE_VARIABLE_Strs_5_51;
    MR_Word STATE_VARIABLE_Strs_6_53;

    switch (MR_tag((MR_Word) Strictness_15)) {
      default: /*NOTREACHED*/ MR_assert(0);
      case (MR_Integer) 0:
        switch (MR_unmkbody(Strictness_15)) {
          default: /*NOTREACHED*/ MR_assert(0);
          case (MR_Integer) 0:
            STATE_VARIABLE_Strs_2_35 = (MR_Word) ((MR_Unsigned) 0U);
            break;
          case (MR_Integer) 1:
            STATE_VARIABLE_Strs_2_35 = (MR_Word) (MR_mkword(1, &parse_tree__parse_tree_out_pragma_scalar_common_4[30]));
            break;
        }
        break;
      case (MR_Integer) 1:
        {
          MR_Word Args_21 = ((MR_Word) ((MR_hl_field(1, Strictness_15, 0))));
          MR_Word HiddenArgMethod_22 = ((MR_Unsigned) ((MR_hl_field(1, Strictness_15, 1))) & (MR_Integer) 1);
          MR_Word ArgStrs_23;
          MR_String ArgsStr_24;
          MR_String HiddenArgStr_25;
          MR_String SpecifiedStr_26;
          MR_String Var_40;
          MR_String Var_41;
          MR_String Var_43;

          ArgStrs_23 = mercury__list__map_2_f_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_4[1]), (MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_1[21]), Args_21);
          ArgsStr_24 = mercury__string__join_list_2_f_0((MR_String) ", ", ArgStrs_23);
          switch (HiddenArgMethod_22) {
            default: /*NOTREACHED*/ MR_assert(0);
            case (MR_Integer) 1:
              HiddenArgStr_25 = (MR_String) "hidden_arg_addr";
              break;
            case (MR_Integer) 0:
              HiddenArgStr_25 = (MR_String) "hidden_arg_value";
              break;
          }
          Var_43 = mercury__string__f_43_43_2_f_0(HiddenArgStr_25, (MR_String) ")");
          Var_41 = mercury__string__f_43_43_2_f_0((MR_String) "], ", Var_43);
          Var_40 = mercury__string__f_43_43_2_f_0(ArgsStr_24, Var_41);
          SpecifiedStr_26 = mercury__string__f_43_43_2_f_0((MR_String) "specified([", Var_40);
          {
            STATE_VARIABLE_Strs_2_35 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
            MR_hl_field(1, STATE_VARIABLE_Strs_2_35, 0) = ((MR_Box) (SpecifiedStr_26));
            MR_hl_field(1, STATE_VARIABLE_Strs_2_35, 1) = ((MR_Box) ((MR_Unsigned) 0U));
          }
        }
        break;
    }
    if ((MaybeSizeLimit_16 == (MR_Word) ((MR_Unsigned) 0U)))
      STATE_VARIABLE_Strs_4_50 = STATE_VARIABLE_Strs_2_35;
    else
    {
      MR_Integer SizeLimit_27 = ((MR_Integer) ((MR_hl_field(1, MaybeSizeLimit_16, 0))));
      MR_String LimitStr_28;
      MR_String Var_47;
      MR_String Var_48;

      Var_48 = mercury__string__int_to_string_1_f_0(SizeLimit_27);
      Var_47 = mercury__string__f_43_43_2_f_0(Var_48, (MR_String) ")");
      LimitStr_28 = mercury__string__f_43_43_2_f_0((MR_String) "limit(", Var_47);
      {
        STATE_VARIABLE_Strs_4_50 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
        MR_hl_field(1, STATE_VARIABLE_Strs_4_50, 0) = ((MR_Box) (LimitStr_28));
        MR_hl_field(1, STATE_VARIABLE_Strs_4_50, 1) = ((MR_Box) (STATE_VARIABLE_Strs_2_35));
      }
    }
    switch (Stats_17) {
      default: /*NOTREACHED*/ MR_assert(0);
      case (MR_Integer) 0:
        STATE_VARIABLE_Strs_5_51 = STATE_VARIABLE_Strs_4_50;
        break;
      case (MR_Integer) 1:
        {
          STATE_VARIABLE_Strs_5_51 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
          MR_hl_field(1, STATE_VARIABLE_Strs_5_51, 0) = ((MR_Box) ((MR_String) "statistics"));
          MR_hl_field(1, STATE_VARIABLE_Strs_5_51, 1) = ((MR_Box) (STATE_VARIABLE_Strs_4_50));
        }
        break;
    }
    switch (AllowReset_18) {
      default: /*NOTREACHED*/ MR_assert(0);
      case (MR_Integer) 1:
        {
          STATE_VARIABLE_Strs_6_53 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
          MR_hl_field(1, STATE_VARIABLE_Strs_6_53, 0) = ((MR_Box) ((MR_String) "allow_reset"));
          MR_hl_field(1, STATE_VARIABLE_Strs_6_53, 1) = ((MR_Box) (STATE_VARIABLE_Strs_5_51));
        }
        break;
      case (MR_Integer) 0:
        STATE_VARIABLE_Strs_6_53 = STATE_VARIABLE_Strs_5_51;
        break;
    }
    switch (WarnForIgnore_19) {
      default: /*NOTREACHED*/ MR_assert(0);
      case (MR_Integer) 0:
        if ((STATE_VARIABLE_Strs_6_53 == (MR_Word) ((MR_Unsigned) 0U)))
          AfterStr_29 = (MR_String) "";
        else
        {
          MR_String Var_58;
          MR_String Var_59;

          Var_59 = mercury__string__join_list_2_f_0((MR_String) ", ", STATE_VARIABLE_Strs_6_53);
          Var_58 = mercury__string__f_43_43_2_f_0(Var_59, (MR_String) "]");
          AfterStr_29 = mercury__string__f_43_43_2_f_0((MR_String) ", [", Var_58);
        }
        break;
      case (MR_Integer) 1:
        {
          MR_Word STATE_VARIABLE_Strs_7_75;
          MR_String Var_77;
          MR_String Var_78;

          {
            STATE_VARIABLE_Strs_7_75 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
            MR_hl_field(1, STATE_VARIABLE_Strs_7_75, 0) = ((MR_Box) ((MR_String) "disable_warning_if_ignored"));
            MR_hl_field(1, STATE_VARIABLE_Strs_7_75, 1) = ((MR_Box) (STATE_VARIABLE_Strs_6_53));
          }
          Var_78 = mercury__string__join_list_2_f_0((MR_String) ", ", STATE_VARIABLE_Strs_7_75);
          Var_77 = mercury__string__f_43_43_2_f_0(Var_78, (MR_String) "]");
          AfterStr_29 = mercury__string__f_43_43_2_f_0((MR_String) ", [", Var_77);
        }
        break;
    }
  }
  PredOrProcSpecStr_65 = parse_tree__parse_tree_out_pragma__pred_or_proc_pfumm_name_to_string_2_f_0((MR_Integer) 0, PredOrProcSpec_9);
  func_1 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_62, 0)), 6))));
  func_1(((MR_Box) (TypeClassInfo_for_pt_output_62)), ((MR_Box) ((MR_String) ":- pragma ")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv2_STATE_VARIABLE_U_1_68);
  func_3 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_62, 0)), 6))));
  func_3(((MR_Box) (TypeClassInfo_for_pt_output_62)), ((MR_Box) (PragmaName_13)), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv4_STATE_VARIABLE_U_2_69);
  func_5 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_62, 0)), 6))));
  func_5(((MR_Box) (TypeClassInfo_for_pt_output_62)), ((MR_Box) ((MR_String) "(")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv6_STATE_VARIABLE_U_3_71);
  func_7 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_62, 0)), 6))));
  func_7(((MR_Box) (TypeClassInfo_for_pt_output_62)), ((MR_Box) (PredOrProcSpecStr_65)), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv8_STATE_VARIABLE_U_4_72);
  func_9 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_62, 0)), 6))));
  func_9(((MR_Box) (TypeClassInfo_for_pt_output_62)), ((MR_Box) (AfterStr_29)), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv10_STATE_VARIABLE_U_5_73);
  func_11 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_62, 0)), 6))));
  func_11(((MR_Box) (TypeClassInfo_for_pt_output_62)), ((MR_Box) ((MR_String) ").\n")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv12_STATE_VARIABLE_U_33);
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_105_116_101_109_95_105_109_112_108_95_112_114_97_103_109_97_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_23,
  MR_Word Info_6,
  MR_Word ImplPragma_8,
  MR_Word STATE_VARIABLE_U_0_20,
  MR_Word * STATE_VARIABLE_U_21)
{
  MR_Word Context_10;
  MR_Word Lang_11;
  MR_Word STATE_VARIABLE_U_1_22;
  MR_Box conv0_STATE_VARIABLE_U_1_22;

  Context_10 = parse_tree__prog_item_pragma__get_impl_pragma_context_1_f_0(ImplPragma_8);
  parse_tree__parse_tree_out_info__maybe_format_line_number_5_p_0(TypeClassInfo_for_pt_output_23, Info_6, Context_10, ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_0_20)), &conv0_STATE_VARIABLE_U_1_22);
  STATE_VARIABLE_U_1_22 = ((MR_Word) (conv0_STATE_VARIABLE_U_1_22));
  Lang_11 = parse_tree__parse_tree_out_info__get_output_lang_1_f_0(Info_6);
  switch (MR_tag((MR_Word) ImplPragma_8)) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 0:
      {
        MR_Word FDInfo_12 = (MR_Word) ((MR_Word) (ImplPragma_8));

        parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_102_111_114_101_105_103_110_95_100_101_99_108_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0(TypeClassInfo_for_pt_output_23, FDInfo_12, STATE_VARIABLE_U_1_22, STATE_VARIABLE_U_21);
      }
      break;
    case (MR_Integer) 1:
      {
        MR_Word FCInfo_13 = (MR_Word) (MR_body((MR_Word) (ImplPragma_8), (MR_Integer) 1));

        parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_102_111_114_101_105_103_110_95_99_111_100_101_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0(TypeClassInfo_for_pt_output_23, FCInfo_13, STATE_VARIABLE_U_1_22, STATE_VARIABLE_U_21);
      }
      break;
    case (MR_Integer) 2:
      {
        MR_Word FPEInfo_14 = (MR_Word) (MR_body((MR_Word) (ImplPragma_8), (MR_Integer) 2));

        parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_102_111_114_101_105_103_110_95_112_114_111_99_95_101_120_112_111_114_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_23, Lang_11, FPEInfo_14, STATE_VARIABLE_U_1_22, STATE_VARIABLE_U_21);
      }
      break;
    case (MR_Integer) 3:
      switch (((MR_Integer) ((MR_hl_field(3, ImplPragma_8, 0))))) {
        default: /*NOTREACHED*/ MR_assert(0);
        case (MR_Integer) 0:
          {
            MR_Word ExternalInfo_15 = ((MR_Word) ((MR_hl_field(3, ImplPragma_8, 1))));
            MR_Word PFNameArity_24 = ((MR_Word) ((MR_hl_field(0, ExternalInfo_15, 0))));
            MR_Word MaybeBackend_25 = ((MR_Word) ((MR_hl_field(0, ExternalInfo_15, 1))));
            MR_Word PorF_28 = ((MR_Unsigned) ((MR_hl_field(0, PFNameArity_24, 0))) & (MR_Integer) 1);
            MR_Word PredName_29 = ((MR_Word) ((MR_hl_field(0, PFNameArity_24, 1))));
            MR_Integer Arity_30;
            MR_String PorFStr_31;
            MR_Word Var_33 = ((MR_Word) ((MR_hl_field(0, PFNameArity_24, 2))));
            MR_Word STATE_VARIABLE_U_1_35;
            MR_Word STATE_VARIABLE_U_2_36;
            MR_Word STATE_VARIABLE_U_3_38;
            MR_Word STATE_VARIABLE_U_4_39;
            MR_Word STATE_VARIABLE_U_5_41;
            MR_Word STATE_VARIABLE_U_6_42;
            MR_Word STATE_VARIABLE_U_9_48;
            void MR_CALL (* func_1)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
            MR_Box conv2_STATE_VARIABLE_U_1_35;
            void MR_CALL (* func_3)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
            MR_Box conv4_STATE_VARIABLE_U_2_36;
            void MR_CALL (* func_5)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
            MR_Box conv6_STATE_VARIABLE_U_3_38;
            void MR_CALL (* func_7)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
            MR_Box conv8_STATE_VARIABLE_U_5_41;
            void MR_CALL (* func_9)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
            MR_Box conv10_STATE_VARIABLE_U_6_42;
            void MR_CALL (* func_17)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
            MR_Box conv18_STATE_VARIABLE_U_21;

            Arity_30 = (MR_Integer) (Var_33);
            PorFStr_31 = mdbcomp__prim_data__pred_or_func_to_str_1_f_0(PorF_28);
            func_1 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
            func_1(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) ":- pragma external_")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_22)), &conv2_STATE_VARIABLE_U_1_35);
            STATE_VARIABLE_U_1_35 = ((MR_Word) (conv2_STATE_VARIABLE_U_1_35));
            func_3 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
            func_3(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) (PorFStr_31)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_35)), &conv4_STATE_VARIABLE_U_2_36);
            STATE_VARIABLE_U_2_36 = ((MR_Word) (conv4_STATE_VARIABLE_U_2_36));
            func_5 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
            func_5(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) "(")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_36)), &conv6_STATE_VARIABLE_U_3_38);
            STATE_VARIABLE_U_3_38 = ((MR_Word) (conv6_STATE_VARIABLE_U_3_38));
            parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_115_121_109_95_110_97_109_101_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0(TypeClassInfo_for_pt_output_23, PredName_29, STATE_VARIABLE_U_3_38, &STATE_VARIABLE_U_4_39);
            func_7 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
            func_7(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) "/")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_4_39)), &conv8_STATE_VARIABLE_U_5_41);
            STATE_VARIABLE_U_5_41 = ((MR_Word) (conv8_STATE_VARIABLE_U_5_41));
            func_9 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 10))));
            func_9(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) (Arity_30)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_5_41)), &conv10_STATE_VARIABLE_U_6_42);
            STATE_VARIABLE_U_6_42 = ((MR_Word) (conv10_STATE_VARIABLE_U_6_42));
            if ((MaybeBackend_25 == (MR_Word) ((MR_Unsigned) 0U)))
              STATE_VARIABLE_U_9_48 = STATE_VARIABLE_U_6_42;
            else
            {
              MR_Word Backend_32 = ((MR_Word) ((MR_hl_field(1, MaybeBackend_25, 0))));
              MR_Word STATE_VARIABLE_U_7_44;
              MR_String Var_45;
              MR_Word STATE_VARIABLE_U_8_46;
              void MR_CALL (* func_11)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
              MR_Box conv12_STATE_VARIABLE_U_7_44;
              void MR_CALL (* func_13)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
              MR_Box conv14_STATE_VARIABLE_U_8_46;
              void MR_CALL (* func_15)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
              MR_Box conv16_STATE_VARIABLE_U_9_48;

              func_11(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) ", [")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_6_42)), &conv12_STATE_VARIABLE_U_7_44);
              STATE_VARIABLE_U_7_44 = ((MR_Word) (conv12_STATE_VARIABLE_U_7_44));
              switch (Backend_32) {
                default: /*NOTREACHED*/ MR_assert(0);
                case (MR_Integer) 0:
                  Var_45 = (MR_String) "high_level_backend";
                  break;
                case (MR_Integer) 1:
                  Var_45 = (MR_String) "low_level_backend";
                  break;
              }
              func_13 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
              func_13(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) (Var_45)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_7_44)), &conv14_STATE_VARIABLE_U_8_46);
              STATE_VARIABLE_U_8_46 = ((MR_Word) (conv14_STATE_VARIABLE_U_8_46));
              func_15 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
              func_15(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) "]")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_8_46)), &conv16_STATE_VARIABLE_U_9_48);
              STATE_VARIABLE_U_9_48 = ((MR_Word) (conv16_STATE_VARIABLE_U_9_48));
            }
            func_17 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
            func_17(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) ").\n")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_9_48)), &conv18_STATE_VARIABLE_U_21);
            *STATE_VARIABLE_U_21 = ((MR_Word) (conv18_STATE_VARIABLE_U_21));
          }
          break;
        case (MR_Integer) 1:
          {
            MR_Word FactTableInfo_16 = ((MR_Word) ((MR_hl_field(3, ImplPragma_8, 1))));
            MR_Word PredSpec_50 = ((MR_Word) ((MR_hl_field(0, FactTableInfo_16, 0))));
            MR_String FileName_51 = ((MR_String) ((MR_hl_field(0, FactTableInfo_16, 1))));
            MR_Word PFU_54;
            MR_Word PredName_55;
            MR_Word UserArity_56;
            MR_Word STATE_VARIABLE_U_1_58;
            MR_Word STATE_VARIABLE_U_2_59;
            MR_Word STATE_VARIABLE_U_3_61;
            MR_Word STATE_VARIABLE_U_4_62;
            void MR_CALL (* func_19)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
            MR_Box conv20_STATE_VARIABLE_U_1_58;
            void MR_CALL (* func_45)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
            MR_Box conv46_STATE_VARIABLE_U_3_61;
            void MR_CALL (* func_47)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
            MR_Box conv48_STATE_VARIABLE_U_4_62;
            void MR_CALL (* func_49)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
            MR_Box conv50_STATE_VARIABLE_U_21;

            func_19(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) ":- pragma fact_table(")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_22)), &conv20_STATE_VARIABLE_U_1_58);
            STATE_VARIABLE_U_1_58 = ((MR_Word) (conv20_STATE_VARIABLE_U_1_58));
            PFU_54 = ((MR_Unsigned) ((MR_hl_field(0, PredSpec_50, 0))) & (MR_Integer) 3);
            PredName_55 = ((MR_Word) ((MR_hl_field(0, PredSpec_50, 1))));
            UserArity_56 = ((MR_Word) ((MR_hl_field(0, PredSpec_50, 2))));
            switch (PFU_54) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 1:
                {
                  MR_String Var_66;
                  MR_Word STATE_VARIABLE_U_1_67;
                  MR_Word STATE_VARIABLE_U_2_69;
                  MR_Word STATE_VARIABLE_U_3_71;
                  MR_Integer Arity_73;
                  MR_Word STATE_VARIABLE_U_1_74;
                  MR_Word STATE_VARIABLE_U_2_76;
                  void MR_CALL (* func_21)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
                  MR_Box conv22_STATE_VARIABLE_U_1_67;
                  void MR_CALL (* func_23)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
                  MR_Box conv24_STATE_VARIABLE_U_2_69;
                  void MR_CALL (* func_25)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
                  MR_Box conv26_STATE_VARIABLE_U_2_76;
                  void MR_CALL (* func_27)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
                  MR_Box conv28_STATE_VARIABLE_U_3_71;
                  void MR_CALL (* func_29)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
                  MR_Box conv30_STATE_VARIABLE_U_2_59;

                  Var_66 = mdbcomp__prim_data__pred_or_func_to_str_1_f_0((MR_Integer) 1);
                  func_21 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
                  func_21(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) (Var_66)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_58)), &conv22_STATE_VARIABLE_U_1_67);
                  STATE_VARIABLE_U_1_67 = ((MR_Word) (conv22_STATE_VARIABLE_U_1_67));
                  func_23 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
                  func_23(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) "(")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_67)), &conv24_STATE_VARIABLE_U_2_69);
                  STATE_VARIABLE_U_2_69 = ((MR_Word) (conv24_STATE_VARIABLE_U_2_69));
                  Arity_73 = (MR_Integer) (UserArity_56);
                  parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_98_114_97_99_107_101_116_101_100_95_115_121_109_95_110_97_109_101_95_110_103_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_23, (MR_Integer) 1, PredName_55, STATE_VARIABLE_U_2_69, &STATE_VARIABLE_U_1_74);
                  func_25 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
                  func_25(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) "/")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_74)), &conv26_STATE_VARIABLE_U_2_76);
                  STATE_VARIABLE_U_2_76 = ((MR_Word) (conv26_STATE_VARIABLE_U_2_76));
                  func_27 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 10))));
                  func_27(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) (Arity_73)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_76)), &conv28_STATE_VARIABLE_U_3_71);
                  STATE_VARIABLE_U_3_71 = ((MR_Word) (conv28_STATE_VARIABLE_U_3_71));
                  func_29 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
                  func_29(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) ")")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_71)), &conv30_STATE_VARIABLE_U_2_59);
                  STATE_VARIABLE_U_2_59 = ((MR_Word) (conv30_STATE_VARIABLE_U_2_59));
                }
                break;
              case (MR_Integer) 0:
                {
                  MR_String Var_77;
                  MR_Word STATE_VARIABLE_U_1_78;
                  MR_Word STATE_VARIABLE_U_2_80;
                  MR_Word STATE_VARIABLE_U_3_82;
                  MR_Integer Arity_84;
                  MR_Word STATE_VARIABLE_U_1_85;
                  MR_Word STATE_VARIABLE_U_2_87;
                  void MR_CALL (* func_31)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
                  MR_Box conv32_STATE_VARIABLE_U_1_78;
                  void MR_CALL (* func_33)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
                  MR_Box conv34_STATE_VARIABLE_U_2_80;
                  void MR_CALL (* func_35)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
                  MR_Box conv36_STATE_VARIABLE_U_2_87;
                  void MR_CALL (* func_37)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
                  MR_Box conv38_STATE_VARIABLE_U_3_82;
                  void MR_CALL (* func_39)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
                  MR_Box conv40_STATE_VARIABLE_U_2_59;

                  Var_77 = mdbcomp__prim_data__pred_or_func_to_str_1_f_0((MR_Integer) 0);
                  func_31 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
                  func_31(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) (Var_77)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_58)), &conv32_STATE_VARIABLE_U_1_78);
                  STATE_VARIABLE_U_1_78 = ((MR_Word) (conv32_STATE_VARIABLE_U_1_78));
                  func_33 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
                  func_33(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) "(")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_78)), &conv34_STATE_VARIABLE_U_2_80);
                  STATE_VARIABLE_U_2_80 = ((MR_Word) (conv34_STATE_VARIABLE_U_2_80));
                  Arity_84 = (MR_Integer) (UserArity_56);
                  parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_98_114_97_99_107_101_116_101_100_95_115_121_109_95_110_97_109_101_95_110_103_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_23, (MR_Integer) 1, PredName_55, STATE_VARIABLE_U_2_80, &STATE_VARIABLE_U_1_85);
                  func_35 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
                  func_35(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) "/")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_85)), &conv36_STATE_VARIABLE_U_2_87);
                  STATE_VARIABLE_U_2_87 = ((MR_Word) (conv36_STATE_VARIABLE_U_2_87));
                  func_37 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 10))));
                  func_37(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) (Arity_84)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_87)), &conv38_STATE_VARIABLE_U_3_82);
                  STATE_VARIABLE_U_3_82 = ((MR_Word) (conv38_STATE_VARIABLE_U_3_82));
                  func_39 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
                  func_39(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) ")")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_82)), &conv40_STATE_VARIABLE_U_2_59);
                  STATE_VARIABLE_U_2_59 = ((MR_Word) (conv40_STATE_VARIABLE_U_2_59));
                }
                break;
              case (MR_Integer) 2:
                {
                  MR_Integer Arity_89 = (MR_Integer) (UserArity_56);
                  MR_Word STATE_VARIABLE_U_1_90;
                  MR_Word STATE_VARIABLE_U_2_92;
                  void MR_CALL (* func_41)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
                  MR_Box conv42_STATE_VARIABLE_U_2_92;
                  void MR_CALL (* func_43)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
                  MR_Box conv44_STATE_VARIABLE_U_2_59;

                  parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_98_114_97_99_107_101_116_101_100_95_115_121_109_95_110_97_109_101_95_110_103_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_23, (MR_Integer) 0, PredName_55, STATE_VARIABLE_U_1_58, &STATE_VARIABLE_U_1_90);
                  func_41 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
                  func_41(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) "/")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_90)), &conv42_STATE_VARIABLE_U_2_92);
                  STATE_VARIABLE_U_2_92 = ((MR_Word) (conv42_STATE_VARIABLE_U_2_92));
                  func_43 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 10))));
                  func_43(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) (Arity_89)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_92)), &conv44_STATE_VARIABLE_U_2_59);
                  STATE_VARIABLE_U_2_59 = ((MR_Word) (conv44_STATE_VARIABLE_U_2_59));
                }
                break;
            }
            func_45 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
            func_45(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_59)), &conv46_STATE_VARIABLE_U_3_61);
            STATE_VARIABLE_U_3_61 = ((MR_Word) (conv46_STATE_VARIABLE_U_3_61));
            func_47 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 9))));
            func_47(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) (FileName_51)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_61)), &conv48_STATE_VARIABLE_U_4_62);
            STATE_VARIABLE_U_4_62 = ((MR_Word) (conv48_STATE_VARIABLE_U_4_62));
            func_49 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
            func_49(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) ").\n")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_4_62)), &conv50_STATE_VARIABLE_U_21);
            *STATE_VARIABLE_U_21 = ((MR_Word) (conv50_STATE_VARIABLE_U_21));
          }
          break;
        case (MR_Integer) 2:
          {
            MR_Word TabledInfo_17 = ((MR_Word) ((MR_hl_field(3, ImplPragma_8, 1))));

            parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_97_98_108_101_100_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0(TypeClassInfo_for_pt_output_23, TabledInfo_17, STATE_VARIABLE_U_1_22, STATE_VARIABLE_U_21);
          }
          break;
        case (MR_Integer) 3:
          {
            MR_Word RequireTailrecPragma_18 = ((MR_Word) ((MR_hl_field(3, ImplPragma_8, 1))));

            parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_114_101_113_117_105_114_101_95_116_97_105_108_95_114_101_99_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_23, Lang_11, RequireTailrecPragma_18, STATE_VARIABLE_U_1_22, STATE_VARIABLE_U_21);
          }
          break;
        case (MR_Integer) 4:
          {
            MR_Word RFSInfo_19 = ((MR_Word) ((MR_hl_field(3, ImplPragma_8, 1))));

            parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_114_101_113_117_105_114_101_95_102_101_97_116_117_114_101_95_115_101_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0(TypeClassInfo_for_pt_output_23, RFSInfo_19, STATE_VARIABLE_U_1_22, STATE_VARIABLE_U_21);
          }
          break;
      }
      break;
  }
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_102_111_114_101_105_103_110_95_99_111_100_101_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box * wrapper_arg_3)
{
  MR_Box closure = closure_arg;
  MR_Word conv8_STATE_VARIABLE_U_10;

  parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_101_115_99_97_112_101_100_95_99_104_97_114_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0(((MR_Word) ((MR_hl_field(0, closure, 3)))), ((MR_Char) (MR_Word) wrapper_arg_1), ((MR_Word) (wrapper_arg_2)), &conv8_STATE_VARIABLE_U_10);
  *wrapper_arg_3 = ((MR_Box) (conv8_STATE_VARIABLE_U_10));
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_102_111_114_101_105_103_110_95_99_111_100_101_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_23,
  MR_Word FCInfo_5,
  MR_Word STATE_VARIABLE_U_0_15,
  MR_Word * STATE_VARIABLE_U_16)
{
  MR_Word Lang_8 = ((MR_Unsigned) ((MR_hl_field(0, FCInfo_5, 0))) & (MR_Integer) 3);
  MR_Word LiteralOrInclude_9 = ((MR_Word) ((MR_hl_field(0, FCInfo_5, 1))));
  MR_String LangStr_12;
  MR_String LorIStr_13;
  MR_String DeclStr_14;
  MR_String Var_25;
  MR_String Var_27;
  MR_String Var_28;
  MR_Word State0_30;
  MR_Word State_31;
  void MR_CALL (* func_12)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv13_STATE_VARIABLE_U_16;

  LangStr_12 = parse_tree__parse_tree_out_misc__mercury_foreign_language_to_string_1_f_0(Lang_8);
  State0_30 = mercury__string__builder__init_0_f_0();
  if (((MR_tag((MR_Word) LiteralOrInclude_9)) == (MR_Integer) 1))
  {
    MR_String FileName_35 = ((MR_String) ((MR_hl_field(1, LiteralOrInclude_9, 0))));
    MR_Word STATE_VARIABLE_U_2_37;
    MR_Word STATE_VARIABLE_U_3_38;
    void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 6))));
    MR_Box conv1_STATE_VARIABLE_U_2_37;
    void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv3_STATE_VARIABLE_U_3_38;
    void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv5_State_31;

    func_0(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) ((MR_String) "include_file(")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (State0_30)), &conv1_STATE_VARIABLE_U_2_37);
    STATE_VARIABLE_U_2_37 = ((MR_Word) (conv1_STATE_VARIABLE_U_2_37));
    func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 9))));
    func_2(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) (FileName_35)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_37)), &conv3_STATE_VARIABLE_U_3_38);
    STATE_VARIABLE_U_3_38 = ((MR_Word) (conv3_STATE_VARIABLE_U_3_38));
    func_4 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 6))));
    func_4(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) ((MR_String) ")")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_38)), &conv5_State_31);
    State_31 = ((MR_Word) (conv5_State_31));
  }
  else
  {
    MR_Word TypeInfo_16_46;
    MR_String Code_34 = ((MR_String) ((MR_hl_field(0, LiteralOrInclude_9, 0))));
    MR_Word STATE_VARIABLE_U_1_41;
    MR_Word STATE_VARIABLE_U_2_42;
    void MR_CALL (* func_6)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 6))));
    MR_Box conv7_STATE_VARIABLE_U_1_41;
    MR_Box conv9_STATE_VARIABLE_U_2_42;
    void MR_CALL (* func_10)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv11_State_31;

    func_6(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) ((MR_String) "\"")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (State0_30)), &conv7_STATE_VARIABLE_U_1_41);
    STATE_VARIABLE_U_1_41 = ((MR_Word) (conv7_STATE_VARIABLE_U_1_41));
    mercury__private_builtin__type_info_from_typeclass_info_3_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), (MR_Integer) 3, &TypeInfo_16_46);
    mercury__string__foldl_4_p_0(TypeInfo_16_46, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_3[10]), Code_34, ((MR_Box) (STATE_VARIABLE_U_1_41)), &conv9_STATE_VARIABLE_U_2_42);
    STATE_VARIABLE_U_2_42 = ((MR_Word) (conv9_STATE_VARIABLE_U_2_42));
    func_10 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 6))));
    func_10(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) ((MR_String) "\"")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_42)), &conv11_State_31);
    State_31 = ((MR_Word) (conv11_State_31));
  }
  LorIStr_13 = mercury__string__builder__to_string_1_f_0(State_31);
  Var_25 = mercury__string__f_43_43_2_f_0(LorIStr_13, (MR_String) ").\n");
  Var_27 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_25);
  Var_28 = mercury__string__f_43_43_2_f_0(LangStr_12, Var_27);
  DeclStr_14 = mercury__string__f_43_43_2_f_0((MR_String) ":- pragma foreign_code(", Var_28);
  func_12 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
  func_12(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) (DeclStr_14)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_0_15)), &conv13_STATE_VARIABLE_U_16);
  *STATE_VARIABLE_U_16 = ((MR_Word) (conv13_STATE_VARIABLE_U_16));
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_114_101_113_117_105_114_101_95_102_101_97_116_117_114_101_95_115_101_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4)
{
  MR_Box closure = closure_arg;
  MR_Word conv2_STATE_VARIABLE_U_10;

  parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_114_101_113_117_105_114_101_100_95_102_101_97_116_117_114_101_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0(((MR_Word) ((MR_hl_field(0, closure, 3)))), ((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_3)), &conv2_STATE_VARIABLE_U_10);
  *wrapper_arg_4 = ((MR_Box) (conv2_STATE_VARIABLE_U_10));
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_114_101_113_117_105_114_101_95_102_101_97_116_117_114_101_95_115_101_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_20,
  MR_Word RFSInfo_5,
  MR_Word STATE_VARIABLE_U_0_12,
  MR_Word * STATE_VARIABLE_U_13)
{
  MR_Word Features0_8 = ((MR_Word) ((MR_hl_field(0, RFSInfo_5, 0))));
  MR_Word Features_11;
  MR_Word STATE_VARIABLE_U_1_15;
  MR_Word Var_16;
  MR_Word STATE_VARIABLE_U_2_18;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv1_STATE_VARIABLE_U_1_15;
  void MR_CALL (* func_3)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv4_STATE_VARIABLE_U_2_18;
  void MR_CALL (* func_5)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv6_STATE_VARIABLE_U_13;

  Features_11 = mercury__set__to_sorted_list_1_f_0((MR_Word) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_required_feature_0), Features0_8);
  func_0 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_20, 0)), 6))));
  func_0(((MR_Box) (TypeClassInfo_for_pt_output_20)), ((MR_Box) ((MR_String) ":- pragma require_feature_set(")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_0_12)), &conv1_STATE_VARIABLE_U_1_15);
  STATE_VARIABLE_U_1_15 = ((MR_Word) (conv1_STATE_VARIABLE_U_1_15));
  {
    Var_16 = (MR_Word) MR_new_object(MR_Word, (4 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_16, 0) = ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_9[5]));
    MR_hl_field(0, Var_16, 1) = ((MR_Box) (parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_114_101_113_117_105_114_101_95_102_101_97_116_117_114_101_95_115_101_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0_1));
    MR_hl_field(0, Var_16, 2) = ((MR_Box) ((MR_Integer) 1));
    MR_hl_field(0, Var_16, 3) = ((MR_Box) (TypeClassInfo_for_pt_output_20));
  }
  func_3 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_20, 0)), 25))));
  func_3(((MR_Box) (TypeClassInfo_for_pt_output_20)), ((MR_Box) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_required_feature_0)), ((MR_Box) (Var_16)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) (Features_11)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_15)), &conv4_STATE_VARIABLE_U_2_18);
  STATE_VARIABLE_U_2_18 = ((MR_Word) (conv4_STATE_VARIABLE_U_2_18));
  func_5 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_20, 0)), 6))));
  func_5(((MR_Box) (TypeClassInfo_for_pt_output_20)), ((MR_Box) ((MR_String) ").\n")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_18)), &conv6_STATE_VARIABLE_U_13);
  *STATE_VARIABLE_U_13 = ((MR_Word) (conv6_STATE_VARIABLE_U_13));
}

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_97_98_108_101_100_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1)
{
  MR_Box wrapper_arg_2;
  MR_Box closure = closure_arg;
  MR_String conv0_HeadVar__2_2;

  conv0_HeadVar__2_2 = parse_tree__parse_tree_out_misc__maybe_arg_tabling_method_to_string_1_f_0(((MR_Word) (wrapper_arg_1)));
  wrapper_arg_2 = ((MR_Box) (conv0_HeadVar__2_2));
  return wrapper_arg_2;
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_97_98_108_101_100_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_62,
  MR_Word Tabled_5,
  MR_Word STATE_VARIABLE_U_0_32,
  MR_Word * STATE_VARIABLE_U_33)
{
  MR_Word TabledMethod_8 = ((MR_Word) ((MR_hl_field(0, Tabled_5, 0))));
  MR_Word PredOrProcSpec_9 = ((MR_Word) ((MR_hl_field(0, Tabled_5, 1))));
  MR_Word MaybeAttributes_10 = ((MR_Word) ((MR_hl_field(0, Tabled_5, 2))));
  MR_String PragmaName_13;
  MR_String AfterStr_29;
  MR_String PredOrProcSpecStr_65;
  MR_Word STATE_VARIABLE_U_1_68;
  MR_Word STATE_VARIABLE_U_2_69;
  MR_Word STATE_VARIABLE_U_3_71;
  MR_Word STATE_VARIABLE_U_4_72;
  MR_Word STATE_VARIABLE_U_5_73;
  void MR_CALL (* func_1)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv2_STATE_VARIABLE_U_1_68;
  void MR_CALL (* func_3)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv4_STATE_VARIABLE_U_2_69;
  void MR_CALL (* func_5)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv6_STATE_VARIABLE_U_3_71;
  void MR_CALL (* func_7)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv8_STATE_VARIABLE_U_4_72;
  void MR_CALL (* func_9)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv10_STATE_VARIABLE_U_5_73;
  void MR_CALL (* func_11)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv12_STATE_VARIABLE_U_33;

  PragmaName_13 = parse_tree__parse_tree_out_misc__tabled_eval_method_to_pragma_name_1_f_0(TabledMethod_8);
  if ((MaybeAttributes_10 == (MR_Word) ((MR_Unsigned) 0U)))
    AfterStr_29 = (MR_String) "";
  else
  {
    MR_Word Attributes_14 = ((MR_Word) ((MR_hl_field(1, MaybeAttributes_10, 0))));
    MR_Word Strictness_15 = ((MR_Word) ((MR_hl_field(0, Attributes_14, 0))));
    MR_Word MaybeSizeLimit_16 = ((MR_Word) ((MR_hl_field(0, Attributes_14, 1))));
    MR_Word Stats_17 = ((((MR_Unsigned) ((MR_hl_field(0, Attributes_14, 2))) >> 2)) & (MR_Integer) 1);
    MR_Word AllowReset_18 = ((((MR_Unsigned) ((MR_hl_field(0, Attributes_14, 2))) >> 1)) & (MR_Integer) 1);
    MR_Word WarnForIgnore_19 = ((MR_Unsigned) ((MR_hl_field(0, Attributes_14, 2))) & (MR_Integer) 1);
    MR_Word STATE_VARIABLE_Strs_2_35;
    MR_Word STATE_VARIABLE_Strs_4_50;
    MR_Word STATE_VARIABLE_Strs_5_51;
    MR_Word STATE_VARIABLE_Strs_6_53;

    switch (MR_tag((MR_Word) Strictness_15)) {
      default: /*NOTREACHED*/ MR_assert(0);
      case (MR_Integer) 0:
        switch (MR_unmkbody(Strictness_15)) {
          default: /*NOTREACHED*/ MR_assert(0);
          case (MR_Integer) 0:
            STATE_VARIABLE_Strs_2_35 = (MR_Word) ((MR_Unsigned) 0U);
            break;
          case (MR_Integer) 1:
            STATE_VARIABLE_Strs_2_35 = (MR_Word) (MR_mkword(1, &parse_tree__parse_tree_out_pragma_scalar_common_4[30]));
            break;
        }
        break;
      case (MR_Integer) 1:
        {
          MR_Word Args_21 = ((MR_Word) ((MR_hl_field(1, Strictness_15, 0))));
          MR_Word HiddenArgMethod_22 = ((MR_Unsigned) ((MR_hl_field(1, Strictness_15, 1))) & (MR_Integer) 1);
          MR_Word ArgStrs_23;
          MR_String ArgsStr_24;
          MR_String HiddenArgStr_25;
          MR_String SpecifiedStr_26;
          MR_String Var_40;
          MR_String Var_41;
          MR_String Var_43;

          ArgStrs_23 = mercury__list__map_2_f_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_4[1]), (MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_1[20]), Args_21);
          ArgsStr_24 = mercury__string__join_list_2_f_0((MR_String) ", ", ArgStrs_23);
          switch (HiddenArgMethod_22) {
            default: /*NOTREACHED*/ MR_assert(0);
            case (MR_Integer) 1:
              HiddenArgStr_25 = (MR_String) "hidden_arg_addr";
              break;
            case (MR_Integer) 0:
              HiddenArgStr_25 = (MR_String) "hidden_arg_value";
              break;
          }
          Var_43 = mercury__string__f_43_43_2_f_0(HiddenArgStr_25, (MR_String) ")");
          Var_41 = mercury__string__f_43_43_2_f_0((MR_String) "], ", Var_43);
          Var_40 = mercury__string__f_43_43_2_f_0(ArgsStr_24, Var_41);
          SpecifiedStr_26 = mercury__string__f_43_43_2_f_0((MR_String) "specified([", Var_40);
          {
            STATE_VARIABLE_Strs_2_35 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
            MR_hl_field(1, STATE_VARIABLE_Strs_2_35, 0) = ((MR_Box) (SpecifiedStr_26));
            MR_hl_field(1, STATE_VARIABLE_Strs_2_35, 1) = ((MR_Box) ((MR_Unsigned) 0U));
          }
        }
        break;
    }
    if ((MaybeSizeLimit_16 == (MR_Word) ((MR_Unsigned) 0U)))
      STATE_VARIABLE_Strs_4_50 = STATE_VARIABLE_Strs_2_35;
    else
    {
      MR_Integer SizeLimit_27 = ((MR_Integer) ((MR_hl_field(1, MaybeSizeLimit_16, 0))));
      MR_String LimitStr_28;
      MR_String Var_47;
      MR_String Var_48;

      Var_48 = mercury__string__int_to_string_1_f_0(SizeLimit_27);
      Var_47 = mercury__string__f_43_43_2_f_0(Var_48, (MR_String) ")");
      LimitStr_28 = mercury__string__f_43_43_2_f_0((MR_String) "limit(", Var_47);
      {
        STATE_VARIABLE_Strs_4_50 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
        MR_hl_field(1, STATE_VARIABLE_Strs_4_50, 0) = ((MR_Box) (LimitStr_28));
        MR_hl_field(1, STATE_VARIABLE_Strs_4_50, 1) = ((MR_Box) (STATE_VARIABLE_Strs_2_35));
      }
    }
    switch (Stats_17) {
      default: /*NOTREACHED*/ MR_assert(0);
      case (MR_Integer) 0:
        STATE_VARIABLE_Strs_5_51 = STATE_VARIABLE_Strs_4_50;
        break;
      case (MR_Integer) 1:
        {
          STATE_VARIABLE_Strs_5_51 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
          MR_hl_field(1, STATE_VARIABLE_Strs_5_51, 0) = ((MR_Box) ((MR_String) "statistics"));
          MR_hl_field(1, STATE_VARIABLE_Strs_5_51, 1) = ((MR_Box) (STATE_VARIABLE_Strs_4_50));
        }
        break;
    }
    switch (AllowReset_18) {
      default: /*NOTREACHED*/ MR_assert(0);
      case (MR_Integer) 1:
        {
          STATE_VARIABLE_Strs_6_53 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
          MR_hl_field(1, STATE_VARIABLE_Strs_6_53, 0) = ((MR_Box) ((MR_String) "allow_reset"));
          MR_hl_field(1, STATE_VARIABLE_Strs_6_53, 1) = ((MR_Box) (STATE_VARIABLE_Strs_5_51));
        }
        break;
      case (MR_Integer) 0:
        STATE_VARIABLE_Strs_6_53 = STATE_VARIABLE_Strs_5_51;
        break;
    }
    switch (WarnForIgnore_19) {
      default: /*NOTREACHED*/ MR_assert(0);
      case (MR_Integer) 0:
        if ((STATE_VARIABLE_Strs_6_53 == (MR_Word) ((MR_Unsigned) 0U)))
          AfterStr_29 = (MR_String) "";
        else
        {
          MR_String Var_58;
          MR_String Var_59;

          Var_59 = mercury__string__join_list_2_f_0((MR_String) ", ", STATE_VARIABLE_Strs_6_53);
          Var_58 = mercury__string__f_43_43_2_f_0(Var_59, (MR_String) "]");
          AfterStr_29 = mercury__string__f_43_43_2_f_0((MR_String) ", [", Var_58);
        }
        break;
      case (MR_Integer) 1:
        {
          MR_Word STATE_VARIABLE_Strs_7_75;
          MR_String Var_77;
          MR_String Var_78;

          {
            STATE_VARIABLE_Strs_7_75 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
            MR_hl_field(1, STATE_VARIABLE_Strs_7_75, 0) = ((MR_Box) ((MR_String) "disable_warning_if_ignored"));
            MR_hl_field(1, STATE_VARIABLE_Strs_7_75, 1) = ((MR_Box) (STATE_VARIABLE_Strs_6_53));
          }
          Var_78 = mercury__string__join_list_2_f_0((MR_String) ", ", STATE_VARIABLE_Strs_7_75);
          Var_77 = mercury__string__f_43_43_2_f_0(Var_78, (MR_String) "]");
          AfterStr_29 = mercury__string__f_43_43_2_f_0((MR_String) ", [", Var_77);
        }
        break;
    }
  }
  PredOrProcSpecStr_65 = parse_tree__parse_tree_out_pragma__pred_or_proc_pfumm_name_to_string_2_f_0((MR_Integer) 0, PredOrProcSpec_9);
  func_1 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_62, 0)), 6))));
  func_1(((MR_Box) (TypeClassInfo_for_pt_output_62)), ((MR_Box) ((MR_String) ":- pragma ")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_0_32)), &conv2_STATE_VARIABLE_U_1_68);
  STATE_VARIABLE_U_1_68 = ((MR_Word) (conv2_STATE_VARIABLE_U_1_68));
  func_3 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_62, 0)), 6))));
  func_3(((MR_Box) (TypeClassInfo_for_pt_output_62)), ((MR_Box) (PragmaName_13)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_68)), &conv4_STATE_VARIABLE_U_2_69);
  STATE_VARIABLE_U_2_69 = ((MR_Word) (conv4_STATE_VARIABLE_U_2_69));
  func_5 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_62, 0)), 6))));
  func_5(((MR_Box) (TypeClassInfo_for_pt_output_62)), ((MR_Box) ((MR_String) "(")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_69)), &conv6_STATE_VARIABLE_U_3_71);
  STATE_VARIABLE_U_3_71 = ((MR_Word) (conv6_STATE_VARIABLE_U_3_71));
  func_7 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_62, 0)), 6))));
  func_7(((MR_Box) (TypeClassInfo_for_pt_output_62)), ((MR_Box) (PredOrProcSpecStr_65)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_71)), &conv8_STATE_VARIABLE_U_4_72);
  STATE_VARIABLE_U_4_72 = ((MR_Word) (conv8_STATE_VARIABLE_U_4_72));
  func_9 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_62, 0)), 6))));
  func_9(((MR_Box) (TypeClassInfo_for_pt_output_62)), ((MR_Box) (AfterStr_29)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_4_72)), &conv10_STATE_VARIABLE_U_5_73);
  STATE_VARIABLE_U_5_73 = ((MR_Word) (conv10_STATE_VARIABLE_U_5_73));
  func_11 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_62, 0)), 6))));
  func_11(((MR_Box) (TypeClassInfo_for_pt_output_62)), ((MR_Box) ((MR_String) ").\n")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_5_73)), &conv12_STATE_VARIABLE_U_33);
  *STATE_VARIABLE_U_33 = ((MR_Word) (conv12_STATE_VARIABLE_U_33));
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_102_95_115_121_109_95_110_97_109_101_95_117_115_101_114_95_97_114_105_116_121_95_108_105_115_116_95_108_97_103_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_24,
  MR_Word PredSpec_6,
  MR_Word PredSpecs_7,
  MR_Word S_8)
{
  while (MR_TRUE)
  {
    MR_Word PredOrFunc_10;
    MR_Word PredName_11;
    MR_Word UserArity_12;
    MR_String Var_25;
    MR_Integer Arity_32;
    void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_24, 0)), 6))));
    MR_Box conv1_STATE_VARIABLE_U_1_18;
    void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv3_STATE_VARIABLE_U_1_26;
    void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv5_STATE_VARIABLE_U_2_28;
    void MR_CALL (* func_6)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv7_STATE_VARIABLE_U_2_35;
    void MR_CALL (* func_8)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv9_STATE_VARIABLE_U_3_30;
    void MR_CALL (* func_10)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv11_STATE_VARIABLE_U_2_19;

    // setup for model_det tailcalls optimized into a loop
    ;
    func_0(((MR_Box) (TypeClassInfo_for_pt_output_24)), ((MR_Box) ((MR_String) "\t\t")), ((MR_Box) (S_8)), ((MR_Box) ((MR_Integer) 0)), &conv1_STATE_VARIABLE_U_1_18);
    PredOrFunc_10 = ((MR_Unsigned) ((MR_hl_field(0, PredSpec_6, 0))) & (MR_Integer) 1);
    PredName_11 = ((MR_Word) ((MR_hl_field(0, PredSpec_6, 1))));
    UserArity_12 = ((MR_Word) ((MR_hl_field(0, PredSpec_6, 2))));
    Var_25 = mdbcomp__prim_data__pred_or_func_to_str_1_f_0(PredOrFunc_10);
    func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_24, 0)), 6))));
    func_2(((MR_Box) (TypeClassInfo_for_pt_output_24)), ((MR_Box) (Var_25)), ((MR_Box) (S_8)), ((MR_Box) ((MR_Integer) 0)), &conv3_STATE_VARIABLE_U_1_26);
    func_4 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_24, 0)), 6))));
    func_4(((MR_Box) (TypeClassInfo_for_pt_output_24)), ((MR_Box) ((MR_String) "(")), ((MR_Box) (S_8)), ((MR_Box) ((MR_Integer) 0)), &conv5_STATE_VARIABLE_U_2_28);
    Arity_32 = (MR_Integer) (UserArity_12);
    parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_98_114_97_99_107_101_116_101_100_95_115_121_109_95_110_97_109_101_95_110_103_116_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_24, (MR_Integer) 1, PredName_11, S_8);
    func_6 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_24, 0)), 6))));
    func_6(((MR_Box) (TypeClassInfo_for_pt_output_24)), ((MR_Box) ((MR_String) "/")), ((MR_Box) (S_8)), ((MR_Box) ((MR_Integer) 0)), &conv7_STATE_VARIABLE_U_2_35);
    func_8 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_24, 0)), 10))));
    func_8(((MR_Box) (TypeClassInfo_for_pt_output_24)), ((MR_Box) (Arity_32)), ((MR_Box) (S_8)), ((MR_Box) ((MR_Integer) 0)), &conv9_STATE_VARIABLE_U_3_30);
    func_10 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_24, 0)), 6))));
    func_10(((MR_Box) (TypeClassInfo_for_pt_output_24)), ((MR_Box) ((MR_String) ")")), ((MR_Box) (S_8)), ((MR_Box) ((MR_Integer) 0)), &conv11_STATE_VARIABLE_U_2_19);
    if ((PredSpecs_7 == (MR_Word) ((MR_Unsigned) 0U)))
    {
      void MR_CALL (* func_12)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_24, 0)), 6))));
      MR_Box conv13_STATE_VARIABLE_U_16;

      func_12(((MR_Box) (TypeClassInfo_for_pt_output_24)), ((MR_Box) ((MR_String) "\n")), ((MR_Box) (S_8)), ((MR_Box) ((MR_Integer) 0)), &conv13_STATE_VARIABLE_U_16);
    }
    else
    {
      MR_Word HeadPredSpec_13 = ((MR_Word) ((MR_hl_field(1, PredSpecs_7, 0))));
      MR_Word TailPredSpecs_14 = ((MR_Word) ((MR_hl_field(1, PredSpecs_7, 1))));
      void MR_CALL (* func_14)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_24, 0)), 6))));
      MR_Box conv15_STATE_VARIABLE_U_4_23;
      MR_Word next_value_of_PredSpec_6;
      MR_Word next_value_of_PredSpecs_7;

      func_14(((MR_Box) (TypeClassInfo_for_pt_output_24)), ((MR_Box) ((MR_String) ",\n")), ((MR_Box) (S_8)), ((MR_Box) ((MR_Integer) 0)), &conv15_STATE_VARIABLE_U_4_23);
      // direct tailcall eliminated
      ;
      next_value_of_PredSpec_6 = HeadPredSpec_13;
      next_value_of_PredSpecs_7 = TailPredSpecs_14;
      PredSpec_6 = next_value_of_PredSpec_6;
      PredSpecs_7 = next_value_of_PredSpecs_7;
      continue;
    }
    break;
  }
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_102_95_115_121_109_95_110_97_109_101_95_117_115_101_114_95_97_114_105_116_121_95_108_105_115_116_95_108_97_103_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_24,
  MR_Word PredSpec_6,
  MR_Word PredSpecs_7,
  MR_Word STATE_VARIABLE_U_0_15,
  MR_Word * STATE_VARIABLE_U_16)
{
  while (MR_TRUE)
  {
    MR_Word PredOrFunc_10;
    MR_Word PredName_11;
    MR_Word UserArity_12;
    MR_Word STATE_VARIABLE_U_1_18;
    MR_Word STATE_VARIABLE_U_2_19;
    MR_String Var_25;
    MR_Word STATE_VARIABLE_U_1_26;
    MR_Word STATE_VARIABLE_U_2_28;
    MR_Word STATE_VARIABLE_U_3_30;
    MR_Integer Arity_32;
    MR_Word STATE_VARIABLE_U_1_33;
    MR_Word STATE_VARIABLE_U_2_35;
    void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_24, 0)), 6))));
    MR_Box conv1_STATE_VARIABLE_U_1_18;
    void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv3_STATE_VARIABLE_U_1_26;
    void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv5_STATE_VARIABLE_U_2_28;
    void MR_CALL (* func_6)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv7_STATE_VARIABLE_U_2_35;
    void MR_CALL (* func_8)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv9_STATE_VARIABLE_U_3_30;
    void MR_CALL (* func_10)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv11_STATE_VARIABLE_U_2_19;

    // setup for model_det tailcalls optimized into a loop
    ;
    func_0(((MR_Box) (TypeClassInfo_for_pt_output_24)), ((MR_Box) ((MR_String) "\t\t")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_0_15)), &conv1_STATE_VARIABLE_U_1_18);
    STATE_VARIABLE_U_1_18 = ((MR_Word) (conv1_STATE_VARIABLE_U_1_18));
    PredOrFunc_10 = ((MR_Unsigned) ((MR_hl_field(0, PredSpec_6, 0))) & (MR_Integer) 1);
    PredName_11 = ((MR_Word) ((MR_hl_field(0, PredSpec_6, 1))));
    UserArity_12 = ((MR_Word) ((MR_hl_field(0, PredSpec_6, 2))));
    Var_25 = mdbcomp__prim_data__pred_or_func_to_str_1_f_0(PredOrFunc_10);
    func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_24, 0)), 6))));
    func_2(((MR_Box) (TypeClassInfo_for_pt_output_24)), ((MR_Box) (Var_25)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_18)), &conv3_STATE_VARIABLE_U_1_26);
    STATE_VARIABLE_U_1_26 = ((MR_Word) (conv3_STATE_VARIABLE_U_1_26));
    func_4 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_24, 0)), 6))));
    func_4(((MR_Box) (TypeClassInfo_for_pt_output_24)), ((MR_Box) ((MR_String) "(")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_26)), &conv5_STATE_VARIABLE_U_2_28);
    STATE_VARIABLE_U_2_28 = ((MR_Word) (conv5_STATE_VARIABLE_U_2_28));
    Arity_32 = (MR_Integer) (UserArity_12);
    parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_98_114_97_99_107_101_116_101_100_95_115_121_109_95_110_97_109_101_95_110_103_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_24, (MR_Integer) 1, PredName_11, STATE_VARIABLE_U_2_28, &STATE_VARIABLE_U_1_33);
    func_6 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_24, 0)), 6))));
    func_6(((MR_Box) (TypeClassInfo_for_pt_output_24)), ((MR_Box) ((MR_String) "/")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_33)), &conv7_STATE_VARIABLE_U_2_35);
    STATE_VARIABLE_U_2_35 = ((MR_Word) (conv7_STATE_VARIABLE_U_2_35));
    func_8 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_24, 0)), 10))));
    func_8(((MR_Box) (TypeClassInfo_for_pt_output_24)), ((MR_Box) (Arity_32)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_35)), &conv9_STATE_VARIABLE_U_3_30);
    STATE_VARIABLE_U_3_30 = ((MR_Word) (conv9_STATE_VARIABLE_U_3_30));
    func_10 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_24, 0)), 6))));
    func_10(((MR_Box) (TypeClassInfo_for_pt_output_24)), ((MR_Box) ((MR_String) ")")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_30)), &conv11_STATE_VARIABLE_U_2_19);
    STATE_VARIABLE_U_2_19 = ((MR_Word) (conv11_STATE_VARIABLE_U_2_19));
    if ((PredSpecs_7 == (MR_Word) ((MR_Unsigned) 0U)))
    {
      void MR_CALL (* func_12)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_24, 0)), 6))));
      MR_Box conv13_STATE_VARIABLE_U_16;

      func_12(((MR_Box) (TypeClassInfo_for_pt_output_24)), ((MR_Box) ((MR_String) "\n")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_19)), &conv13_STATE_VARIABLE_U_16);
      *STATE_VARIABLE_U_16 = ((MR_Word) (conv13_STATE_VARIABLE_U_16));
    }
    else
    {
      MR_Word HeadPredSpec_13 = ((MR_Word) ((MR_hl_field(1, PredSpecs_7, 0))));
      MR_Word TailPredSpecs_14 = ((MR_Word) ((MR_hl_field(1, PredSpecs_7, 1))));
      MR_Word STATE_VARIABLE_U_4_23;
      void MR_CALL (* func_14)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_24, 0)), 6))));
      MR_Box conv15_STATE_VARIABLE_U_4_23;
      MR_Word next_value_of_PredSpec_6;
      MR_Word next_value_of_PredSpecs_7;
      MR_Word next_value_of_STATE_VARIABLE_U_0_15;

      func_14(((MR_Box) (TypeClassInfo_for_pt_output_24)), ((MR_Box) ((MR_String) ",\n")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_19)), &conv15_STATE_VARIABLE_U_4_23);
      STATE_VARIABLE_U_4_23 = ((MR_Word) (conv15_STATE_VARIABLE_U_4_23));
      // direct tailcall eliminated
      ;
      next_value_of_PredSpec_6 = HeadPredSpec_13;
      next_value_of_PredSpecs_7 = TailPredSpecs_14;
      next_value_of_STATE_VARIABLE_U_0_15 = STATE_VARIABLE_U_4_23;
      PredSpec_6 = next_value_of_PredSpec_6;
      PredSpecs_7 = next_value_of_PredSpecs_7;
      STATE_VARIABLE_U_0_15 = next_value_of_STATE_VARIABLE_U_0_15;
      continue;
    }
    break;
  }
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_102_111_114_101_105_103_110_95_112_114_111_99_95_101_120_112_111_114_116_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_46,
  MR_Word S_6,
  MR_Word Lang_7,
  MR_Word FPE_8)
{
  MR_Word ForeignLang_11 = ((MR_Unsigned) ((MR_hl_field(0, FPE_8, 1))) & (MR_Integer) 3);
  MR_Word PredNameModesPF_12 = ((MR_Word) ((MR_hl_field(0, FPE_8, 2))));
  MR_String ExportName_13 = ((MR_String) ((MR_hl_field(0, FPE_8, 3))));
  MR_Word VarSet_14 = ((MR_Word) ((MR_hl_field(0, FPE_8, 4))));
  MR_Word PredOrFunc_17 = ((MR_Unsigned) ((MR_hl_field(0, PredNameModesPF_12, 0))) & (MR_Integer) 1);
  MR_Word SymName_18 = ((MR_Word) ((MR_hl_field(0, PredNameModesPF_12, 1))));
  MR_Word Modes_19 = ((MR_Word) ((MR_hl_field(0, PredNameModesPF_12, 2))));
  MR_Word InstVarSet_20;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_46, 0)), 6))));
  MR_Box conv1_STATE_VARIABLE_U_1_26;
  void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv3_STATE_VARIABLE_U_3_29;
  void MR_CALL (* func_13)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv14_STATE_VARIABLE_U_12_43;
  void MR_CALL (* func_15)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv16_STATE_VARIABLE_U_13_44;
  void MR_CALL (* func_17)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv18_STATE_VARIABLE_U_24;

  func_0(((MR_Box) (TypeClassInfo_for_pt_output_46)), ((MR_Box) ((MR_String) ":- pragma foreign_export(")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv1_STATE_VARIABLE_U_1_26);
  parse_tree__parse_tree_out_misc__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_102_111_114_101_105_103_110_95_108_97_110_103_117_97_103_101_95_115_116_114_105_110_103_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0(TypeClassInfo_for_pt_output_46, ForeignLang_11, S_6);
  func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_46, 0)), 6))));
  func_2(((MR_Box) (TypeClassInfo_for_pt_output_46)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv3_STATE_VARIABLE_U_3_29);
  parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_115_121_109_95_110_97_109_101_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0(TypeClassInfo_for_pt_output_46, SymName_18, S_6);
  mercury__varset__coerce_2_p_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_var_type_0), (MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_inst_var_type_0), VarSet_14, &InstVarSet_20);
  switch (PredOrFunc_17) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 1:
      {
        MR_Word ArgModes_21;
        MR_Word RetMode_22;
        MR_Box conv4_RetMode_22;
        void MR_CALL (* func_5)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv6_STATE_VARIABLE_U_5_32;
        void MR_CALL (* func_7)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv8_STATE_VARIABLE_U_7_35;

        parse_tree__prog_util__pred_args_to_func_args_3_p_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_mode_0), Modes_19, &ArgModes_21, &conv4_RetMode_22);
        RetMode_22 = ((MR_Word) (conv4_RetMode_22));
        func_5 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_46, 0)), 6))));
        func_5(((MR_Box) (TypeClassInfo_for_pt_output_46)), ((MR_Box) ((MR_String) "(")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv6_STATE_VARIABLE_U_5_32);
        parse_tree__parse_tree_out_inst__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_109_111_100_101_95_108_105_115_116_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_6_p_0(TypeClassInfo_for_pt_output_46, Lang_7, InstVarSet_20, ArgModes_21, S_6);
        func_7 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_46, 0)), 6))));
        func_7(((MR_Box) (TypeClassInfo_for_pt_output_46)), ((MR_Box) ((MR_String) ") = ")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv8_STATE_VARIABLE_U_7_35);
        parse_tree__parse_tree_out_inst__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_109_111_100_101_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_6_p_0(TypeClassInfo_for_pt_output_46, Lang_7, InstVarSet_20, RetMode_22, S_6);
      }
      break;
    case (MR_Integer) 0:
      {
        void MR_CALL (* func_9)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_46, 0)), 6))));
        MR_Box conv10_STATE_VARIABLE_U_9_38;
        void MR_CALL (* func_11)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv12_STATE_VARIABLE_U_8_36;

        func_9(((MR_Box) (TypeClassInfo_for_pt_output_46)), ((MR_Box) ((MR_String) "(")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv10_STATE_VARIABLE_U_9_38);
        parse_tree__parse_tree_out_inst__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_109_111_100_101_95_108_105_115_116_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_6_p_0(TypeClassInfo_for_pt_output_46, Lang_7, InstVarSet_20, Modes_19, S_6);
        func_11 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_46, 0)), 6))));
        func_11(((MR_Box) (TypeClassInfo_for_pt_output_46)), ((MR_Box) ((MR_String) ")")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv12_STATE_VARIABLE_U_8_36);
      }
      break;
  }
  func_13 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_46, 0)), 6))));
  func_13(((MR_Box) (TypeClassInfo_for_pt_output_46)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv14_STATE_VARIABLE_U_12_43);
  func_15 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_46, 0)), 6))));
  func_15(((MR_Box) (TypeClassInfo_for_pt_output_46)), ((MR_Box) (ExportName_13)), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv16_STATE_VARIABLE_U_13_44);
  func_17 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_46, 0)), 6))));
  func_17(((MR_Box) (TypeClassInfo_for_pt_output_46)), ((MR_Box) ((MR_String) ").\n")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv18_STATE_VARIABLE_U_24);
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_102_111_114_101_105_103_110_95_112_114_111_99_95_101_120_112_111_114_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_46,
  MR_Word Lang_7,
  MR_Word FPE_8,
  MR_Word STATE_VARIABLE_U_0_23,
  MR_Word * STATE_VARIABLE_U_24)
{
  MR_Word ForeignLang_11 = ((MR_Unsigned) ((MR_hl_field(0, FPE_8, 1))) & (MR_Integer) 3);
  MR_Word PredNameModesPF_12 = ((MR_Word) ((MR_hl_field(0, FPE_8, 2))));
  MR_String ExportName_13 = ((MR_String) ((MR_hl_field(0, FPE_8, 3))));
  MR_Word VarSet_14 = ((MR_Word) ((MR_hl_field(0, FPE_8, 4))));
  MR_Word PredOrFunc_17 = ((MR_Unsigned) ((MR_hl_field(0, PredNameModesPF_12, 0))) & (MR_Integer) 1);
  MR_Word SymName_18 = ((MR_Word) ((MR_hl_field(0, PredNameModesPF_12, 1))));
  MR_Word Modes_19 = ((MR_Word) ((MR_hl_field(0, PredNameModesPF_12, 2))));
  MR_Word InstVarSet_20;
  MR_Word STATE_VARIABLE_U_1_26;
  MR_Word STATE_VARIABLE_U_2_27;
  MR_Word STATE_VARIABLE_U_3_29;
  MR_Word STATE_VARIABLE_U_4_30;
  MR_Word STATE_VARIABLE_U_8_36;
  MR_Word STATE_VARIABLE_U_12_43;
  MR_Word STATE_VARIABLE_U_13_44;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_46, 0)), 6))));
  MR_Box conv1_STATE_VARIABLE_U_1_26;
  void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv3_STATE_VARIABLE_U_3_29;
  void MR_CALL (* func_13)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv14_STATE_VARIABLE_U_12_43;
  void MR_CALL (* func_15)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv16_STATE_VARIABLE_U_13_44;
  void MR_CALL (* func_17)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv18_STATE_VARIABLE_U_24;

  func_0(((MR_Box) (TypeClassInfo_for_pt_output_46)), ((MR_Box) ((MR_String) ":- pragma foreign_export(")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_0_23)), &conv1_STATE_VARIABLE_U_1_26);
  STATE_VARIABLE_U_1_26 = ((MR_Word) (conv1_STATE_VARIABLE_U_1_26));
  parse_tree__parse_tree_out_misc__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_102_111_114_101_105_103_110_95_108_97_110_103_117_97_103_101_95_115_116_114_105_110_103_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0(TypeClassInfo_for_pt_output_46, ForeignLang_11, STATE_VARIABLE_U_1_26, &STATE_VARIABLE_U_2_27);
  func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_46, 0)), 6))));
  func_2(((MR_Box) (TypeClassInfo_for_pt_output_46)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_27)), &conv3_STATE_VARIABLE_U_3_29);
  STATE_VARIABLE_U_3_29 = ((MR_Word) (conv3_STATE_VARIABLE_U_3_29));
  parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_115_121_109_95_110_97_109_101_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0(TypeClassInfo_for_pt_output_46, SymName_18, STATE_VARIABLE_U_3_29, &STATE_VARIABLE_U_4_30);
  mercury__varset__coerce_2_p_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_var_type_0), (MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_inst_var_type_0), VarSet_14, &InstVarSet_20);
  switch (PredOrFunc_17) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 1:
      {
        MR_Word ArgModes_21;
        MR_Word RetMode_22;
        MR_Word STATE_VARIABLE_U_5_32;
        MR_Word STATE_VARIABLE_U_6_33;
        MR_Word STATE_VARIABLE_U_7_35;
        MR_Box conv4_RetMode_22;
        void MR_CALL (* func_5)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv6_STATE_VARIABLE_U_5_32;
        void MR_CALL (* func_7)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv8_STATE_VARIABLE_U_7_35;

        parse_tree__prog_util__pred_args_to_func_args_3_p_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_mode_0), Modes_19, &ArgModes_21, &conv4_RetMode_22);
        RetMode_22 = ((MR_Word) (conv4_RetMode_22));
        func_5 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_46, 0)), 6))));
        func_5(((MR_Box) (TypeClassInfo_for_pt_output_46)), ((MR_Box) ((MR_String) "(")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_4_30)), &conv6_STATE_VARIABLE_U_5_32);
        STATE_VARIABLE_U_5_32 = ((MR_Word) (conv6_STATE_VARIABLE_U_5_32));
        parse_tree__parse_tree_out_inst__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_109_111_100_101_95_108_105_115_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_6_p_0(TypeClassInfo_for_pt_output_46, Lang_7, InstVarSet_20, ArgModes_21, STATE_VARIABLE_U_5_32, &STATE_VARIABLE_U_6_33);
        func_7 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_46, 0)), 6))));
        func_7(((MR_Box) (TypeClassInfo_for_pt_output_46)), ((MR_Box) ((MR_String) ") = ")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_6_33)), &conv8_STATE_VARIABLE_U_7_35);
        STATE_VARIABLE_U_7_35 = ((MR_Word) (conv8_STATE_VARIABLE_U_7_35));
        parse_tree__parse_tree_out_inst__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_109_111_100_101_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_6_p_0(TypeClassInfo_for_pt_output_46, Lang_7, InstVarSet_20, RetMode_22, STATE_VARIABLE_U_7_35, &STATE_VARIABLE_U_8_36);
      }
      break;
    case (MR_Integer) 0:
      {
        MR_Word STATE_VARIABLE_U_9_38;
        MR_Word STATE_VARIABLE_U_10_39;
        void MR_CALL (* func_9)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_46, 0)), 6))));
        MR_Box conv10_STATE_VARIABLE_U_9_38;
        void MR_CALL (* func_11)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv12_STATE_VARIABLE_U_8_36;

        func_9(((MR_Box) (TypeClassInfo_for_pt_output_46)), ((MR_Box) ((MR_String) "(")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_4_30)), &conv10_STATE_VARIABLE_U_9_38);
        STATE_VARIABLE_U_9_38 = ((MR_Word) (conv10_STATE_VARIABLE_U_9_38));
        parse_tree__parse_tree_out_inst__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_109_111_100_101_95_108_105_115_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_6_p_0(TypeClassInfo_for_pt_output_46, Lang_7, InstVarSet_20, Modes_19, STATE_VARIABLE_U_9_38, &STATE_VARIABLE_U_10_39);
        func_11 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_46, 0)), 6))));
        func_11(((MR_Box) (TypeClassInfo_for_pt_output_46)), ((MR_Box) ((MR_String) ")")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_10_39)), &conv12_STATE_VARIABLE_U_8_36);
        STATE_VARIABLE_U_8_36 = ((MR_Word) (conv12_STATE_VARIABLE_U_8_36));
      }
      break;
  }
  func_13 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_46, 0)), 6))));
  func_13(((MR_Box) (TypeClassInfo_for_pt_output_46)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_8_36)), &conv14_STATE_VARIABLE_U_12_43);
  STATE_VARIABLE_U_12_43 = ((MR_Word) (conv14_STATE_VARIABLE_U_12_43));
  func_15 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_46, 0)), 6))));
  func_15(((MR_Box) (TypeClassInfo_for_pt_output_46)), ((MR_Box) (ExportName_13)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_12_43)), &conv16_STATE_VARIABLE_U_13_44);
  STATE_VARIABLE_U_13_44 = ((MR_Word) (conv16_STATE_VARIABLE_U_13_44));
  func_17 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_46, 0)), 6))));
  func_17(((MR_Box) (TypeClassInfo_for_pt_output_46)), ((MR_Box) ((MR_String) ").\n")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_13_44)), &conv18_STATE_VARIABLE_U_24);
  *STATE_VARIABLE_U_24 = ((MR_Word) (conv18_STATE_VARIABLE_U_24));
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_105_110_112_117_116_95_115_112_101_99_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_43,
  MR_Word S_6,
  MR_Word _Lang_7,
  MR_Word InputSpec_8)
{
  parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_105_110_112_117_116_95_115_112_101_99_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_95_95_91_51_93_95_48_5_p_0(TypeClassInfo_for_pt_output_43, S_6, InputSpec_8);
}

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_105_110_112_117_116_95_115_112_101_99_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_95_95_91_51_93_95_48_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1)
{
  MR_Box wrapper_arg_2;
  MR_Box closure = closure_arg;
  MR_String conv0_Str_5;

  conv0_Str_5 = parse_tree__parse_tree_out_pragma__get_zero_arity_inst_ctor_name_1_f_0(((MR_Word) (wrapper_arg_1)));
  wrapper_arg_2 = ((MR_Box) (conv0_Str_5));
  return wrapper_arg_2;
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_105_110_112_117_116_95_115_112_101_99_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_95_95_91_51_93_95_48_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_43,
  MR_Word S_6,
  MR_Word InputSpec_8)
{
  MR_Word Type_11 = ((MR_Word) ((MR_hl_field(0, InputSpec_8, 1))));
  MR_Word ReplaceOrAdd_12 = ((MR_Unsigned) ((MR_hl_field(0, InputSpec_8, 2))) & (MR_Integer) 1);
  MR_Word OoMInstCtors_13 = ((MR_Word) ((MR_hl_field(0, InputSpec_8, 3))));
  MR_Word TVarSet_16 = ((MR_Word) ((MR_hl_field(0, InputSpec_8, 6))));
  MR_Word InstCtors_19;
  MR_Word InstStrs0_20;
  MR_Word InstStrs_21;
  MR_String InstsStr_22;
  void MR_CALL (* func_1)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv2_STATE_VARIABLE_U_1_29;
  void MR_CALL (* func_3)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv4_STATE_VARIABLE_U_3_33;
  void MR_CALL (* func_9)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv10_STATE_VARIABLE_U_6_38;
  void MR_CALL (* func_11)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv12_STATE_VARIABLE_U_7_40;
  void MR_CALL (* func_13)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv14_STATE_VARIABLE_U_8_41;
  void MR_CALL (* func_15)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv16_STATE_VARIABLE_U_25;

  InstCtors_19 = mercury__one_or_more__one_or_more_to_list_1_f_1((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_inst_ctor_0), OoMInstCtors_13);
  InstStrs0_20 = mercury__list__map_2_f_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_inst_ctor_0), (MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_1[19]), InstCtors_19);
  mercury__list__sort_2_p_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), InstStrs0_20, &InstStrs_21);
  InstsStr_22 = mercury__string__join_list_2_f_0((MR_String) ", ", InstStrs_21);
  func_1 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_1(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) ":- pragma input_spec(")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv2_STATE_VARIABLE_U_1_29);
  parse_tree__parse_tree_out_type__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_116_121_112_101_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_6_p_0(TypeClassInfo_for_pt_output_43, TVarSet_16, (MR_Integer) 0, Type_11, S_6);
  func_3 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_3(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv4_STATE_VARIABLE_U_3_33);
  switch (ReplaceOrAdd_12) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 1:
      {
        void MR_CALL (* func_5)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
        MR_Box conv6_STATE_VARIABLE_U_4_35;

        func_5(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) "add_to_in_mode,\n")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv6_STATE_VARIABLE_U_4_35);
      }
      break;
    case (MR_Integer) 0:
      {
        void MR_CALL (* func_7)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
        MR_Box conv8_STATE_VARIABLE_U_4_35;

        func_7(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) "replace_in_mode,\n")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv8_STATE_VARIABLE_U_4_35);
      }
      break;
  }
  func_9 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_9(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) "    ")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv10_STATE_VARIABLE_U_6_38);
  func_11 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_11(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) "[")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv12_STATE_VARIABLE_U_7_40);
  func_13 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_13(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) (InstsStr_22)), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv14_STATE_VARIABLE_U_8_41);
  func_15 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_15(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) "]).\n")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv16_STATE_VARIABLE_U_25);
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_105_110_112_117_116_95_115_112_101_99_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_43,
  MR_Word _Lang_7,
  MR_Word InputSpec_8,
  MR_Word STATE_VARIABLE_U_0_24,
  MR_Word * STATE_VARIABLE_U_25)
{
  parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_105_110_112_117_116_95_115_112_101_99_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_95_95_91_51_93_95_48_5_p_0(TypeClassInfo_for_pt_output_43, InputSpec_8, STATE_VARIABLE_U_0_24, STATE_VARIABLE_U_25);
}

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_105_110_112_117_116_95_115_112_101_99_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_95_95_91_51_93_95_48_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1)
{
  MR_Box wrapper_arg_2;
  MR_Box closure = closure_arg;
  MR_String conv0_Str_5;

  conv0_Str_5 = parse_tree__parse_tree_out_pragma__get_zero_arity_inst_ctor_name_1_f_0(((MR_Word) (wrapper_arg_1)));
  wrapper_arg_2 = ((MR_Box) (conv0_Str_5));
  return wrapper_arg_2;
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_105_110_112_117_116_95_115_112_101_99_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_95_95_91_51_93_95_48_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_43,
  MR_Word InputSpec_8,
  MR_Word STATE_VARIABLE_U_0_24,
  MR_Word * STATE_VARIABLE_U_25)
{
  MR_Word Type_11 = ((MR_Word) ((MR_hl_field(0, InputSpec_8, 1))));
  MR_Word ReplaceOrAdd_12 = ((MR_Unsigned) ((MR_hl_field(0, InputSpec_8, 2))) & (MR_Integer) 1);
  MR_Word OoMInstCtors_13 = ((MR_Word) ((MR_hl_field(0, InputSpec_8, 3))));
  MR_Word TVarSet_16 = ((MR_Word) ((MR_hl_field(0, InputSpec_8, 6))));
  MR_Word InstCtors_19;
  MR_Word InstStrs0_20;
  MR_Word InstStrs_21;
  MR_String InstsStr_22;
  MR_Word STATE_VARIABLE_U_1_29;
  MR_Word STATE_VARIABLE_U_2_31;
  MR_Word STATE_VARIABLE_U_3_33;
  MR_Word STATE_VARIABLE_U_4_35;
  MR_Word STATE_VARIABLE_U_6_38;
  MR_Word STATE_VARIABLE_U_7_40;
  MR_Word STATE_VARIABLE_U_8_41;
  void MR_CALL (* func_1)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv2_STATE_VARIABLE_U_1_29;
  void MR_CALL (* func_3)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv4_STATE_VARIABLE_U_3_33;
  void MR_CALL (* func_9)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv10_STATE_VARIABLE_U_6_38;
  void MR_CALL (* func_11)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv12_STATE_VARIABLE_U_7_40;
  void MR_CALL (* func_13)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv14_STATE_VARIABLE_U_8_41;
  void MR_CALL (* func_15)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv16_STATE_VARIABLE_U_25;

  InstCtors_19 = mercury__one_or_more__one_or_more_to_list_1_f_1((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_inst_ctor_0), OoMInstCtors_13);
  InstStrs0_20 = mercury__list__map_2_f_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_inst_ctor_0), (MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_1[18]), InstCtors_19);
  mercury__list__sort_2_p_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), InstStrs0_20, &InstStrs_21);
  InstsStr_22 = mercury__string__join_list_2_f_0((MR_String) ", ", InstStrs_21);
  func_1 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_1(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) ":- pragma input_spec(")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_0_24)), &conv2_STATE_VARIABLE_U_1_29);
  STATE_VARIABLE_U_1_29 = ((MR_Word) (conv2_STATE_VARIABLE_U_1_29));
  parse_tree__parse_tree_out_type__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_116_121_112_101_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_6_p_0(TypeClassInfo_for_pt_output_43, TVarSet_16, (MR_Integer) 0, Type_11, STATE_VARIABLE_U_1_29, &STATE_VARIABLE_U_2_31);
  func_3 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_3(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_31)), &conv4_STATE_VARIABLE_U_3_33);
  STATE_VARIABLE_U_3_33 = ((MR_Word) (conv4_STATE_VARIABLE_U_3_33));
  switch (ReplaceOrAdd_12) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 1:
      {
        void MR_CALL (* func_5)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
        MR_Box conv6_STATE_VARIABLE_U_4_35;

        func_5(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) "add_to_in_mode,\n")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_33)), &conv6_STATE_VARIABLE_U_4_35);
        STATE_VARIABLE_U_4_35 = ((MR_Word) (conv6_STATE_VARIABLE_U_4_35));
      }
      break;
    case (MR_Integer) 0:
      {
        void MR_CALL (* func_7)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
        MR_Box conv8_STATE_VARIABLE_U_4_35;

        func_7(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) "replace_in_mode,\n")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_33)), &conv8_STATE_VARIABLE_U_4_35);
        STATE_VARIABLE_U_4_35 = ((MR_Word) (conv8_STATE_VARIABLE_U_4_35));
      }
      break;
  }
  func_9 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_9(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) "    ")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_4_35)), &conv10_STATE_VARIABLE_U_6_38);
  STATE_VARIABLE_U_6_38 = ((MR_Word) (conv10_STATE_VARIABLE_U_6_38));
  func_11 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_11(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) "[")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_6_38)), &conv12_STATE_VARIABLE_U_7_40);
  STATE_VARIABLE_U_7_40 = ((MR_Word) (conv12_STATE_VARIABLE_U_7_40));
  func_13 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_13(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) (InstsStr_22)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_7_40)), &conv14_STATE_VARIABLE_U_8_41);
  STATE_VARIABLE_U_8_41 = ((MR_Word) (conv14_STATE_VARIABLE_U_8_41));
  func_15 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_15(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) "]).\n")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_8_41)), &conv16_STATE_VARIABLE_U_25);
  *STATE_VARIABLE_U_25 = ((MR_Word) (conv16_STATE_VARIABLE_U_25));
}

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_111_98_115_111_108_101_116_101_95_112_114_111_99_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1)
{
  MR_Box wrapper_arg_2;
  MR_Box closure = closure_arg;
  MR_String conv0_Str_4;

  conv0_Str_4 = parse_tree__parse_tree_out_pragma__wrapped_sym_name_arity_to_string_1_f_0(((MR_Word) (wrapper_arg_1)));
  wrapper_arg_2 = ((MR_Box) (conv0_Str_4));
  return wrapper_arg_2;
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_111_98_115_111_108_101_116_101_95_112_114_111_99_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_28,
  MR_Word Lang_6,
  MR_Word ObsoleteProc_7,
  MR_Word S_8)
{
  MR_Word PredNameModesPF_10 = ((MR_Word) ((MR_hl_field(0, ObsoleteProc_7, 0))));
  MR_Word ObsoleteInFavourOf_11 = ((MR_Word) ((MR_hl_field(0, ObsoleteProc_7, 1))));
  MR_String PredStr_14;
  MR_Word ObsoleteStrs_15;
  MR_String ObsoleteStr_16;
  MR_String DeclStr_17;
  MR_String Var_34;
  MR_String Var_36;
  MR_String Var_37;
  void MR_CALL (* func_1)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv2_STATE_VARIABLE_U_19;

  PredStr_14 = parse_tree__parse_tree_out_pragma__proc_pf_name_modes_to_string_2_f_0(Lang_6, PredNameModesPF_10);
  ObsoleteStrs_15 = mercury__list__map_2_f_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_sym_name_arity_0), (MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_1[17]), ObsoleteInFavourOf_11);
  ObsoleteStr_16 = mercury__string__join_list_2_f_0((MR_String) ", ", ObsoleteStrs_15);
  Var_34 = mercury__string__f_43_43_2_f_0(ObsoleteStr_16, (MR_String) "]).\n");
  Var_36 = mercury__string__f_43_43_2_f_0((MR_String) ", [", Var_34);
  Var_37 = mercury__string__f_43_43_2_f_0(PredStr_14, Var_36);
  DeclStr_17 = mercury__string__f_43_43_2_f_0((MR_String) ":- pragma obsolete_proc(", Var_37);
  func_1 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_28, 0)), 6))));
  func_1(((MR_Box) (TypeClassInfo_for_pt_output_28)), ((MR_Box) (DeclStr_17)), ((MR_Box) (S_8)), ((MR_Box) ((MR_Integer) 0)), &conv2_STATE_VARIABLE_U_19);
}

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_111_98_115_111_108_101_116_101_95_112_114_111_99_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1)
{
  MR_Box wrapper_arg_2;
  MR_Box closure = closure_arg;
  MR_String conv0_Str_4;

  conv0_Str_4 = parse_tree__parse_tree_out_pragma__wrapped_sym_name_arity_to_string_1_f_0(((MR_Word) (wrapper_arg_1)));
  wrapper_arg_2 = ((MR_Box) (conv0_Str_4));
  return wrapper_arg_2;
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_111_98_115_111_108_101_116_101_95_112_114_111_99_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_28,
  MR_Word Lang_6,
  MR_Word ObsoleteProc_7,
  MR_Word STATE_VARIABLE_U_0_18,
  MR_Word * STATE_VARIABLE_U_19)
{
  MR_Word PredNameModesPF_10 = ((MR_Word) ((MR_hl_field(0, ObsoleteProc_7, 0))));
  MR_Word ObsoleteInFavourOf_11 = ((MR_Word) ((MR_hl_field(0, ObsoleteProc_7, 1))));
  MR_String PredStr_14;
  MR_Word ObsoleteStrs_15;
  MR_String ObsoleteStr_16;
  MR_String DeclStr_17;
  MR_String Var_34;
  MR_String Var_36;
  MR_String Var_37;
  void MR_CALL (* func_1)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv2_STATE_VARIABLE_U_19;

  PredStr_14 = parse_tree__parse_tree_out_pragma__proc_pf_name_modes_to_string_2_f_0(Lang_6, PredNameModesPF_10);
  ObsoleteStrs_15 = mercury__list__map_2_f_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_sym_name_arity_0), (MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_1[16]), ObsoleteInFavourOf_11);
  ObsoleteStr_16 = mercury__string__join_list_2_f_0((MR_String) ", ", ObsoleteStrs_15);
  Var_34 = mercury__string__f_43_43_2_f_0(ObsoleteStr_16, (MR_String) "]).\n");
  Var_36 = mercury__string__f_43_43_2_f_0((MR_String) ", [", Var_34);
  Var_37 = mercury__string__f_43_43_2_f_0(PredStr_14, Var_36);
  DeclStr_17 = mercury__string__f_43_43_2_f_0((MR_String) ":- pragma obsolete_proc(", Var_37);
  func_1 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_28, 0)), 6))));
  func_1(((MR_Box) (TypeClassInfo_for_pt_output_28)), ((MR_Box) (DeclStr_17)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_0_18)), &conv2_STATE_VARIABLE_U_19);
  *STATE_VARIABLE_U_19 = ((MR_Word) (conv2_STATE_VARIABLE_U_19));
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_114_101_113_117_105_114_101_95_116_97_105_108_95_114_101_99_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_40,
  MR_Word Lang_6,
  MR_Word RequireTR_7,
  MR_Word S_8)
{
  MR_Word PredOrProcSpec_10 = ((MR_Word) ((MR_hl_field(0, RequireTR_7, 0))));
  MR_Word Warn_11 = ((MR_Word) ((MR_hl_field(0, RequireTR_7, 1))));
  MR_String ProcSpecStr_14;
  MR_String DeclStr_16;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv1_STATE_VARIABLE_U_25;

  ProcSpecStr_14 = parse_tree__parse_tree_out_pragma__pred_or_proc_pfumm_name_to_string_2_f_0(Lang_6, PredOrProcSpec_10);
  if (((MR_tag((MR_Word) Warn_11)) == (MR_Integer) 0))
  {
    MR_String Var_54;

    Var_54 = mercury__string__f_43_43_2_f_0(ProcSpecStr_14, (MR_String) ").\n");
    DeclStr_16 = mercury__string__f_43_43_2_f_0((MR_String) ":- pragma disable_non_tail_recursion_reports(", Var_54);
  }
  else
  {
    MR_Word WarnOrError_17 = ((((MR_Unsigned) ((MR_hl_field(1, Warn_11, 0))) >> 2)) & (MR_Integer) 1);
    MR_Word Type_18 = ((((MR_Unsigned) ((MR_hl_field(1, Warn_11, 0))) >> 1)) & (MR_Integer) 1);
    MR_Word Grades_19 = ((MR_Unsigned) ((MR_hl_field(1, Warn_11, 0))) & (MR_Integer) 1);
    MR_String WarnOrErrorStr_21;
    MR_String TypeStr_22;
    MR_String GradesStr_23;
    MR_String Var_42;
    MR_String Var_44;
    MR_String Var_45;
    MR_String Var_47;
    MR_String Var_48;
    MR_String Var_50;
    MR_String Var_51;

    libs__compiler_util__warning_or_error_string_2_p_0(WarnOrError_17, &WarnOrErrorStr_21);
    parse_tree__prog_data_pragma__require_tailrec_type_string_2_p_0(Type_18, &TypeStr_22);
    parse_tree__prog_data_pragma__require_tailrec_grades_string_2_p_0(Grades_19, &GradesStr_23);
    Var_42 = mercury__string__f_43_43_2_f_0(GradesStr_23, (MR_String) "]).\n");
    Var_44 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_42);
    Var_45 = mercury__string__f_43_43_2_f_0(TypeStr_22, Var_44);
    Var_47 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_45);
    Var_48 = mercury__string__f_43_43_2_f_0(WarnOrErrorStr_21, Var_47);
    Var_50 = mercury__string__f_43_43_2_f_0((MR_String) ", [", Var_48);
    Var_51 = mercury__string__f_43_43_2_f_0(ProcSpecStr_14, Var_50);
    DeclStr_16 = mercury__string__f_43_43_2_f_0((MR_String) ":- pragma require_tail_recursion(", Var_51);
  }
  func_0 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_40, 0)), 6))));
  func_0(((MR_Box) (TypeClassInfo_for_pt_output_40)), ((MR_Box) (DeclStr_16)), ((MR_Box) (S_8)), ((MR_Box) ((MR_Integer) 0)), &conv1_STATE_VARIABLE_U_25);
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_114_101_113_117_105_114_101_95_116_97_105_108_95_114_101_99_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_40,
  MR_Word Lang_6,
  MR_Word RequireTR_7,
  MR_Word STATE_VARIABLE_U_0_24,
  MR_Word * STATE_VARIABLE_U_25)
{
  MR_Word PredOrProcSpec_10 = ((MR_Word) ((MR_hl_field(0, RequireTR_7, 0))));
  MR_Word Warn_11 = ((MR_Word) ((MR_hl_field(0, RequireTR_7, 1))));
  MR_String ProcSpecStr_14;
  MR_String DeclStr_16;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv1_STATE_VARIABLE_U_25;

  ProcSpecStr_14 = parse_tree__parse_tree_out_pragma__pred_or_proc_pfumm_name_to_string_2_f_0(Lang_6, PredOrProcSpec_10);
  if (((MR_tag((MR_Word) Warn_11)) == (MR_Integer) 0))
  {
    MR_String Var_54;

    Var_54 = mercury__string__f_43_43_2_f_0(ProcSpecStr_14, (MR_String) ").\n");
    DeclStr_16 = mercury__string__f_43_43_2_f_0((MR_String) ":- pragma disable_non_tail_recursion_reports(", Var_54);
  }
  else
  {
    MR_Word WarnOrError_17 = ((((MR_Unsigned) ((MR_hl_field(1, Warn_11, 0))) >> 2)) & (MR_Integer) 1);
    MR_Word Type_18 = ((((MR_Unsigned) ((MR_hl_field(1, Warn_11, 0))) >> 1)) & (MR_Integer) 1);
    MR_Word Grades_19 = ((MR_Unsigned) ((MR_hl_field(1, Warn_11, 0))) & (MR_Integer) 1);
    MR_String WarnOrErrorStr_21;
    MR_String TypeStr_22;
    MR_String GradesStr_23;
    MR_String Var_42;
    MR_String Var_44;
    MR_String Var_45;
    MR_String Var_47;
    MR_String Var_48;
    MR_String Var_50;
    MR_String Var_51;

    libs__compiler_util__warning_or_error_string_2_p_0(WarnOrError_17, &WarnOrErrorStr_21);
    parse_tree__prog_data_pragma__require_tailrec_type_string_2_p_0(Type_18, &TypeStr_22);
    parse_tree__prog_data_pragma__require_tailrec_grades_string_2_p_0(Grades_19, &GradesStr_23);
    Var_42 = mercury__string__f_43_43_2_f_0(GradesStr_23, (MR_String) "]).\n");
    Var_44 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_42);
    Var_45 = mercury__string__f_43_43_2_f_0(TypeStr_22, Var_44);
    Var_47 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_45);
    Var_48 = mercury__string__f_43_43_2_f_0(WarnOrErrorStr_21, Var_47);
    Var_50 = mercury__string__f_43_43_2_f_0((MR_String) ", [", Var_48);
    Var_51 = mercury__string__f_43_43_2_f_0(ProcSpecStr_14, Var_50);
    DeclStr_16 = mercury__string__f_43_43_2_f_0((MR_String) ":- pragma require_tail_recursion(", Var_51);
  }
  func_0 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_40, 0)), 6))));
  func_0(((MR_Box) (TypeClassInfo_for_pt_output_40)), ((MR_Box) (DeclStr_16)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_0_24)), &conv1_STATE_VARIABLE_U_25);
  *STATE_VARIABLE_U_25 = ((MR_Word) (conv1_STATE_VARIABLE_U_25));
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_115_116_114_117_99_116_95_114_101_117_115_101_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4)
{
  MR_Box closure = closure_arg;

  parse_tree__parse_tree_out_type__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_116_121_112_101_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_6_p_0(((MR_Word) ((MR_hl_field(0, closure, 3)))), ((MR_Word) ((MR_hl_field(0, closure, 4)))), ((MR_Word) ((MR_hl_field(0, closure, 5)))), ((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_115_116_114_117_99_116_95_114_101_117_115_101_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_33,
  MR_Word S_6,
  MR_Word Lang_7,
  MR_Word Reuse_8)
{
  MR_Word PredNameModesPF_10 = ((MR_Word) ((MR_hl_field(0, Reuse_8, 0))));
  MR_Word HeadVars_11 = ((MR_Word) ((MR_hl_field(0, Reuse_8, 1))));
  MR_Word HeadVarTypes_12 = ((MR_Word) ((MR_hl_field(0, Reuse_8, 2))));
  MR_Word VarSet_13 = ((MR_Word) ((MR_hl_field(0, Reuse_8, 3))));
  MR_Word TVarSet_14 = ((MR_Word) ((MR_hl_field(0, Reuse_8, 4))));
  MR_Word MaybeStructureReuseDomain_15 = ((MR_Word) ((MR_hl_field(0, Reuse_8, 5))));
  MR_String PredStr_18;
  MR_String InitStr_19;
  MR_Word Var_30;
  MR_String Var_35;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv1_STATE_VARIABLE_U_1_26;
  void MR_CALL (* func_14)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv15_STATE_VARIABLE_U_3_29;
  MR_Box conv16_STATE_VARIABLE_U_4_31;
  void MR_CALL (* func_17)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv18_STATE_VARIABLE_U_21;

  PredStr_18 = parse_tree__parse_tree_out_pragma__proc_pf_name_modes_to_string_2_f_0(Lang_7, PredNameModesPF_10);
  Var_35 = mercury__string__f_43_43_2_f_0(PredStr_18, (MR_String) ", ");
  InitStr_19 = mercury__string__f_43_43_2_f_0((MR_String) ":- pragma structure_reuse(", Var_35);
  func_0 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
  func_0(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) (InitStr_19)), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv1_STATE_VARIABLE_U_1_26);
  if ((HeadVars_11 == (MR_Word) ((MR_Unsigned) 0U)))
  {
    void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
    MR_Box conv3_STATE_VARIABLE_U_2_27;

    func_2(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) ((MR_String) "vars, types")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv3_STATE_VARIABLE_U_2_27);
  }
  else
  {
    MR_Word Var_46;
    void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
    MR_Box conv5_STATE_VARIABLE_U_2_39;
    void MR_CALL (* func_6)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv7_STATE_VARIABLE_U_4_43;
    void MR_CALL (* func_8)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv9_STATE_VARIABLE_U_5_45;
    void MR_CALL (* func_10)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv11_STATE_VARIABLE_U_6_48;
    void MR_CALL (* func_12)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv13_STATE_VARIABLE_U_2_27;

    func_4(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) ((MR_String) "vars(")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv5_STATE_VARIABLE_U_2_39);
    parse_tree__parse_tree_out_term__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_118_97_114_115_95_118_115_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_6_p_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_var_type_0), TypeClassInfo_for_pt_output_33, VarSet_13, (MR_Integer) 0, HeadVars_11, S_6);
    func_6 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
    func_6(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) ((MR_String) "), ")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv7_STATE_VARIABLE_U_4_43);
    func_8 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
    func_8(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) ((MR_String) "types(")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv9_STATE_VARIABLE_U_5_45);
    {
      Var_46 = (MR_Word) MR_new_object(MR_Word, (6 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(0, Var_46, 0) = ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_8[8]));
      MR_hl_field(0, Var_46, 1) = ((MR_Box) (parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_115_116_114_117_99_116_95_114_101_117_115_101_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0_1));
      MR_hl_field(0, Var_46, 2) = ((MR_Box) ((MR_Integer) 3));
      MR_hl_field(0, Var_46, 3) = ((MR_Box) (TypeClassInfo_for_pt_output_33));
      MR_hl_field(0, Var_46, 4) = ((MR_Box) (TVarSet_14));
      MR_hl_field(0, Var_46, 5) = ((MR_Box) ((MR_Integer) 0));
    }
    func_10 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 25))));
    func_10(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_type_0)), ((MR_Box) (Var_46)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) (HeadVarTypes_12)), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv11_STATE_VARIABLE_U_6_48);
    func_12 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
    func_12(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) ((MR_String) ")")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv13_STATE_VARIABLE_U_2_27);
  }
  func_14 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
  func_14(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv15_STATE_VARIABLE_U_3_29);
  {
    Var_30 = (MR_Word) MR_new_object(MR_Word, (1 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_30, 0) = ((MR_Box) (VarSet_13));
  }
  parse_tree__prog_ctgc__format_interface_maybe_structure_reuse_domain_6_p_0(TypeClassInfo_for_pt_output_33, ((MR_Box) (S_6)), Var_30, TVarSet_14, MaybeStructureReuseDomain_15, ((MR_Box) ((MR_Integer) 0)), &conv16_STATE_VARIABLE_U_4_31);
  func_17 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
  func_17(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) ((MR_String) ").\n")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv18_STATE_VARIABLE_U_21);
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_115_116_114_117_99_116_95_114_101_117_115_101_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4)
{
  MR_Box closure = closure_arg;
  MR_Word conv10_HeadVar__6_6;

  parse_tree__parse_tree_out_type__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_116_121_112_101_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_6_p_0(((MR_Word) ((MR_hl_field(0, closure, 3)))), ((MR_Word) ((MR_hl_field(0, closure, 4)))), ((MR_Word) ((MR_hl_field(0, closure, 5)))), ((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_3)), &conv10_HeadVar__6_6);
  *wrapper_arg_4 = ((MR_Box) (conv10_HeadVar__6_6));
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_115_116_114_117_99_116_95_114_101_117_115_101_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_33,
  MR_Word Lang_7,
  MR_Word Reuse_8,
  MR_Word STATE_VARIABLE_U_0_20,
  MR_Word * STATE_VARIABLE_U_21)
{
  MR_Word PredNameModesPF_10 = ((MR_Word) ((MR_hl_field(0, Reuse_8, 0))));
  MR_Word HeadVars_11 = ((MR_Word) ((MR_hl_field(0, Reuse_8, 1))));
  MR_Word HeadVarTypes_12 = ((MR_Word) ((MR_hl_field(0, Reuse_8, 2))));
  MR_Word VarSet_13 = ((MR_Word) ((MR_hl_field(0, Reuse_8, 3))));
  MR_Word TVarSet_14 = ((MR_Word) ((MR_hl_field(0, Reuse_8, 4))));
  MR_Word MaybeStructureReuseDomain_15 = ((MR_Word) ((MR_hl_field(0, Reuse_8, 5))));
  MR_String PredStr_18;
  MR_String InitStr_19;
  MR_Word STATE_VARIABLE_U_1_26;
  MR_Word STATE_VARIABLE_U_2_27;
  MR_Word STATE_VARIABLE_U_3_29;
  MR_Word Var_30;
  MR_Word STATE_VARIABLE_U_4_31;
  MR_String Var_35;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv1_STATE_VARIABLE_U_1_26;
  void MR_CALL (* func_15)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv16_STATE_VARIABLE_U_3_29;
  MR_Box conv17_STATE_VARIABLE_U_4_31;
  void MR_CALL (* func_18)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv19_STATE_VARIABLE_U_21;

  PredStr_18 = parse_tree__parse_tree_out_pragma__proc_pf_name_modes_to_string_2_f_0(Lang_7, PredNameModesPF_10);
  Var_35 = mercury__string__f_43_43_2_f_0(PredStr_18, (MR_String) ", ");
  InitStr_19 = mercury__string__f_43_43_2_f_0((MR_String) ":- pragma structure_reuse(", Var_35);
  func_0 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
  func_0(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) (InitStr_19)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_0_20)), &conv1_STATE_VARIABLE_U_1_26);
  STATE_VARIABLE_U_1_26 = ((MR_Word) (conv1_STATE_VARIABLE_U_1_26));
  if ((HeadVars_11 == (MR_Word) ((MR_Unsigned) 0U)))
  {
    void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
    MR_Box conv3_STATE_VARIABLE_U_2_27;

    func_2(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) ((MR_String) "vars, types")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_26)), &conv3_STATE_VARIABLE_U_2_27);
    STATE_VARIABLE_U_2_27 = ((MR_Word) (conv3_STATE_VARIABLE_U_2_27));
  }
  else
  {
    MR_Word STATE_VARIABLE_U_2_39;
    MR_Word STATE_VARIABLE_U_3_41;
    MR_Word STATE_VARIABLE_U_4_43;
    MR_Word STATE_VARIABLE_U_5_45;
    MR_Word Var_46;
    MR_Word STATE_VARIABLE_U_6_48;
    void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
    MR_Box conv5_STATE_VARIABLE_U_2_39;
    void MR_CALL (* func_6)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv7_STATE_VARIABLE_U_4_43;
    void MR_CALL (* func_8)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv9_STATE_VARIABLE_U_5_45;
    void MR_CALL (* func_11)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv12_STATE_VARIABLE_U_6_48;
    void MR_CALL (* func_13)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv14_STATE_VARIABLE_U_2_27;

    func_4(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) ((MR_String) "vars(")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_26)), &conv5_STATE_VARIABLE_U_2_39);
    STATE_VARIABLE_U_2_39 = ((MR_Word) (conv5_STATE_VARIABLE_U_2_39));
    parse_tree__parse_tree_out_term__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_118_97_114_115_95_118_115_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_6_p_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_var_type_0), TypeClassInfo_for_pt_output_33, VarSet_13, (MR_Integer) 0, HeadVars_11, STATE_VARIABLE_U_2_39, &STATE_VARIABLE_U_3_41);
    func_6 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
    func_6(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) ((MR_String) "), ")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_41)), &conv7_STATE_VARIABLE_U_4_43);
    STATE_VARIABLE_U_4_43 = ((MR_Word) (conv7_STATE_VARIABLE_U_4_43));
    func_8 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
    func_8(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) ((MR_String) "types(")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_4_43)), &conv9_STATE_VARIABLE_U_5_45);
    STATE_VARIABLE_U_5_45 = ((MR_Word) (conv9_STATE_VARIABLE_U_5_45));
    {
      Var_46 = (MR_Word) MR_new_object(MR_Word, (6 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(0, Var_46, 0) = ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_8[7]));
      MR_hl_field(0, Var_46, 1) = ((MR_Box) (parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_115_116_114_117_99_116_95_114_101_117_115_101_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0_1));
      MR_hl_field(0, Var_46, 2) = ((MR_Box) ((MR_Integer) 3));
      MR_hl_field(0, Var_46, 3) = ((MR_Box) (TypeClassInfo_for_pt_output_33));
      MR_hl_field(0, Var_46, 4) = ((MR_Box) (TVarSet_14));
      MR_hl_field(0, Var_46, 5) = ((MR_Box) ((MR_Integer) 0));
    }
    func_11 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 25))));
    func_11(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_type_0)), ((MR_Box) (Var_46)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) (HeadVarTypes_12)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_5_45)), &conv12_STATE_VARIABLE_U_6_48);
    STATE_VARIABLE_U_6_48 = ((MR_Word) (conv12_STATE_VARIABLE_U_6_48));
    func_13 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
    func_13(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) ((MR_String) ")")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_6_48)), &conv14_STATE_VARIABLE_U_2_27);
    STATE_VARIABLE_U_2_27 = ((MR_Word) (conv14_STATE_VARIABLE_U_2_27));
  }
  func_15 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
  func_15(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_27)), &conv16_STATE_VARIABLE_U_3_29);
  STATE_VARIABLE_U_3_29 = ((MR_Word) (conv16_STATE_VARIABLE_U_3_29));
  {
    Var_30 = (MR_Word) MR_new_object(MR_Word, (1 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_30, 0) = ((MR_Box) (VarSet_13));
  }
  parse_tree__prog_ctgc__format_interface_maybe_structure_reuse_domain_6_p_0(TypeClassInfo_for_pt_output_33, ((MR_Box) ((MR_Integer) 0)), Var_30, TVarSet_14, MaybeStructureReuseDomain_15, ((MR_Box) (STATE_VARIABLE_U_3_29)), &conv17_STATE_VARIABLE_U_4_31);
  STATE_VARIABLE_U_4_31 = ((MR_Word) (conv17_STATE_VARIABLE_U_4_31));
  func_18 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
  func_18(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) ((MR_String) ").\n")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_4_31)), &conv19_STATE_VARIABLE_U_21);
  *STATE_VARIABLE_U_21 = ((MR_Word) (conv19_STATE_VARIABLE_U_21));
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_115_116_114_117_99_116_95_115_104_97_114_105_110_103_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4)
{
  MR_Box closure = closure_arg;

  parse_tree__parse_tree_out_type__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_116_121_112_101_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_6_p_0(((MR_Word) ((MR_hl_field(0, closure, 3)))), ((MR_Word) ((MR_hl_field(0, closure, 4)))), ((MR_Word) ((MR_hl_field(0, closure, 5)))), ((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_115_116_114_117_99_116_95_115_104_97_114_105_110_103_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_33,
  MR_Word S_6,
  MR_Word Lang_7,
  MR_Word Sharing_8)
{
  MR_Word PredNameModesPF_10 = ((MR_Word) ((MR_hl_field(0, Sharing_8, 0))));
  MR_Word HeadVars_11 = ((MR_Word) ((MR_hl_field(0, Sharing_8, 1))));
  MR_Word HeadVarTypes_12 = ((MR_Word) ((MR_hl_field(0, Sharing_8, 2))));
  MR_Word VarSet_13 = ((MR_Word) ((MR_hl_field(0, Sharing_8, 3))));
  MR_Word TVarSet_14 = ((MR_Word) ((MR_hl_field(0, Sharing_8, 4))));
  MR_Word MaybeSharingAs_15 = ((MR_Word) ((MR_hl_field(0, Sharing_8, 5))));
  MR_String PredStr_18;
  MR_String InitStr_19;
  MR_Word Var_30;
  MR_String Var_35;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv1_STATE_VARIABLE_U_1_26;
  void MR_CALL (* func_14)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv15_STATE_VARIABLE_U_3_29;
  MR_Box conv16_STATE_VARIABLE_U_4_31;
  void MR_CALL (* func_17)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv18_STATE_VARIABLE_U_21;

  PredStr_18 = parse_tree__parse_tree_out_pragma__proc_pf_name_modes_to_string_2_f_0(Lang_7, PredNameModesPF_10);
  Var_35 = mercury__string__f_43_43_2_f_0(PredStr_18, (MR_String) ", ");
  InitStr_19 = mercury__string__f_43_43_2_f_0((MR_String) ":- pragma structure_sharing(", Var_35);
  func_0 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
  func_0(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) (InitStr_19)), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv1_STATE_VARIABLE_U_1_26);
  if ((HeadVars_11 == (MR_Word) ((MR_Unsigned) 0U)))
  {
    void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
    MR_Box conv3_STATE_VARIABLE_U_2_27;

    func_2(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) ((MR_String) "vars, types")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv3_STATE_VARIABLE_U_2_27);
  }
  else
  {
    MR_Word Var_46;
    void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
    MR_Box conv5_STATE_VARIABLE_U_2_39;
    void MR_CALL (* func_6)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv7_STATE_VARIABLE_U_4_43;
    void MR_CALL (* func_8)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv9_STATE_VARIABLE_U_5_45;
    void MR_CALL (* func_10)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv11_STATE_VARIABLE_U_6_48;
    void MR_CALL (* func_12)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv13_STATE_VARIABLE_U_2_27;

    func_4(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) ((MR_String) "vars(")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv5_STATE_VARIABLE_U_2_39);
    parse_tree__parse_tree_out_term__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_118_97_114_115_95_118_115_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_6_p_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_var_type_0), TypeClassInfo_for_pt_output_33, VarSet_13, (MR_Integer) 0, HeadVars_11, S_6);
    func_6 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
    func_6(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) ((MR_String) "), ")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv7_STATE_VARIABLE_U_4_43);
    func_8 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
    func_8(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) ((MR_String) "types(")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv9_STATE_VARIABLE_U_5_45);
    {
      Var_46 = (MR_Word) MR_new_object(MR_Word, (6 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(0, Var_46, 0) = ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_8[8]));
      MR_hl_field(0, Var_46, 1) = ((MR_Box) (parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_115_116_114_117_99_116_95_115_104_97_114_105_110_103_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0_1));
      MR_hl_field(0, Var_46, 2) = ((MR_Box) ((MR_Integer) 3));
      MR_hl_field(0, Var_46, 3) = ((MR_Box) (TypeClassInfo_for_pt_output_33));
      MR_hl_field(0, Var_46, 4) = ((MR_Box) (TVarSet_14));
      MR_hl_field(0, Var_46, 5) = ((MR_Box) ((MR_Integer) 0));
    }
    func_10 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 25))));
    func_10(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_type_0)), ((MR_Box) (Var_46)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) (HeadVarTypes_12)), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv11_STATE_VARIABLE_U_6_48);
    func_12 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
    func_12(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) ((MR_String) ")")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv13_STATE_VARIABLE_U_2_27);
  }
  func_14 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
  func_14(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv15_STATE_VARIABLE_U_3_29);
  {
    Var_30 = (MR_Word) MR_new_object(MR_Word, (1 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_30, 0) = ((MR_Box) (VarSet_13));
  }
  parse_tree__prog_ctgc__format_interface_structure_sharing_domain_6_p_0(TypeClassInfo_for_pt_output_33, ((MR_Box) (S_6)), Var_30, TVarSet_14, MaybeSharingAs_15, ((MR_Box) ((MR_Integer) 0)), &conv16_STATE_VARIABLE_U_4_31);
  func_17 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
  func_17(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) ((MR_String) ").\n")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv18_STATE_VARIABLE_U_21);
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_115_116_114_117_99_116_95_115_104_97_114_105_110_103_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4)
{
  MR_Box closure = closure_arg;
  MR_Word conv10_HeadVar__6_6;

  parse_tree__parse_tree_out_type__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_116_121_112_101_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_6_p_0(((MR_Word) ((MR_hl_field(0, closure, 3)))), ((MR_Word) ((MR_hl_field(0, closure, 4)))), ((MR_Word) ((MR_hl_field(0, closure, 5)))), ((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_3)), &conv10_HeadVar__6_6);
  *wrapper_arg_4 = ((MR_Box) (conv10_HeadVar__6_6));
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_115_116_114_117_99_116_95_115_104_97_114_105_110_103_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_33,
  MR_Word Lang_7,
  MR_Word Sharing_8,
  MR_Word STATE_VARIABLE_U_0_20,
  MR_Word * STATE_VARIABLE_U_21)
{
  MR_Word PredNameModesPF_10 = ((MR_Word) ((MR_hl_field(0, Sharing_8, 0))));
  MR_Word HeadVars_11 = ((MR_Word) ((MR_hl_field(0, Sharing_8, 1))));
  MR_Word HeadVarTypes_12 = ((MR_Word) ((MR_hl_field(0, Sharing_8, 2))));
  MR_Word VarSet_13 = ((MR_Word) ((MR_hl_field(0, Sharing_8, 3))));
  MR_Word TVarSet_14 = ((MR_Word) ((MR_hl_field(0, Sharing_8, 4))));
  MR_Word MaybeSharingAs_15 = ((MR_Word) ((MR_hl_field(0, Sharing_8, 5))));
  MR_String PredStr_18;
  MR_String InitStr_19;
  MR_Word STATE_VARIABLE_U_1_26;
  MR_Word STATE_VARIABLE_U_2_27;
  MR_Word STATE_VARIABLE_U_3_29;
  MR_Word Var_30;
  MR_Word STATE_VARIABLE_U_4_31;
  MR_String Var_35;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv1_STATE_VARIABLE_U_1_26;
  void MR_CALL (* func_15)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv16_STATE_VARIABLE_U_3_29;
  MR_Box conv17_STATE_VARIABLE_U_4_31;
  void MR_CALL (* func_18)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv19_STATE_VARIABLE_U_21;

  PredStr_18 = parse_tree__parse_tree_out_pragma__proc_pf_name_modes_to_string_2_f_0(Lang_7, PredNameModesPF_10);
  Var_35 = mercury__string__f_43_43_2_f_0(PredStr_18, (MR_String) ", ");
  InitStr_19 = mercury__string__f_43_43_2_f_0((MR_String) ":- pragma structure_sharing(", Var_35);
  func_0 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
  func_0(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) (InitStr_19)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_0_20)), &conv1_STATE_VARIABLE_U_1_26);
  STATE_VARIABLE_U_1_26 = ((MR_Word) (conv1_STATE_VARIABLE_U_1_26));
  if ((HeadVars_11 == (MR_Word) ((MR_Unsigned) 0U)))
  {
    void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
    MR_Box conv3_STATE_VARIABLE_U_2_27;

    func_2(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) ((MR_String) "vars, types")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_26)), &conv3_STATE_VARIABLE_U_2_27);
    STATE_VARIABLE_U_2_27 = ((MR_Word) (conv3_STATE_VARIABLE_U_2_27));
  }
  else
  {
    MR_Word STATE_VARIABLE_U_2_39;
    MR_Word STATE_VARIABLE_U_3_41;
    MR_Word STATE_VARIABLE_U_4_43;
    MR_Word STATE_VARIABLE_U_5_45;
    MR_Word Var_46;
    MR_Word STATE_VARIABLE_U_6_48;
    void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
    MR_Box conv5_STATE_VARIABLE_U_2_39;
    void MR_CALL (* func_6)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv7_STATE_VARIABLE_U_4_43;
    void MR_CALL (* func_8)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv9_STATE_VARIABLE_U_5_45;
    void MR_CALL (* func_11)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv12_STATE_VARIABLE_U_6_48;
    void MR_CALL (* func_13)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv14_STATE_VARIABLE_U_2_27;

    func_4(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) ((MR_String) "vars(")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_26)), &conv5_STATE_VARIABLE_U_2_39);
    STATE_VARIABLE_U_2_39 = ((MR_Word) (conv5_STATE_VARIABLE_U_2_39));
    parse_tree__parse_tree_out_term__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_118_97_114_115_95_118_115_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_6_p_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_var_type_0), TypeClassInfo_for_pt_output_33, VarSet_13, (MR_Integer) 0, HeadVars_11, STATE_VARIABLE_U_2_39, &STATE_VARIABLE_U_3_41);
    func_6 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
    func_6(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) ((MR_String) "), ")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_41)), &conv7_STATE_VARIABLE_U_4_43);
    STATE_VARIABLE_U_4_43 = ((MR_Word) (conv7_STATE_VARIABLE_U_4_43));
    func_8 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
    func_8(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) ((MR_String) "types(")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_4_43)), &conv9_STATE_VARIABLE_U_5_45);
    STATE_VARIABLE_U_5_45 = ((MR_Word) (conv9_STATE_VARIABLE_U_5_45));
    {
      Var_46 = (MR_Word) MR_new_object(MR_Word, (6 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(0, Var_46, 0) = ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_8[7]));
      MR_hl_field(0, Var_46, 1) = ((MR_Box) (parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_115_116_114_117_99_116_95_115_104_97_114_105_110_103_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0_1));
      MR_hl_field(0, Var_46, 2) = ((MR_Box) ((MR_Integer) 3));
      MR_hl_field(0, Var_46, 3) = ((MR_Box) (TypeClassInfo_for_pt_output_33));
      MR_hl_field(0, Var_46, 4) = ((MR_Box) (TVarSet_14));
      MR_hl_field(0, Var_46, 5) = ((MR_Box) ((MR_Integer) 0));
    }
    func_11 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 25))));
    func_11(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_type_0)), ((MR_Box) (Var_46)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) (HeadVarTypes_12)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_5_45)), &conv12_STATE_VARIABLE_U_6_48);
    STATE_VARIABLE_U_6_48 = ((MR_Word) (conv12_STATE_VARIABLE_U_6_48));
    func_13 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
    func_13(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) ((MR_String) ")")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_6_48)), &conv14_STATE_VARIABLE_U_2_27);
    STATE_VARIABLE_U_2_27 = ((MR_Word) (conv14_STATE_VARIABLE_U_2_27));
  }
  func_15 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
  func_15(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_27)), &conv16_STATE_VARIABLE_U_3_29);
  STATE_VARIABLE_U_3_29 = ((MR_Word) (conv16_STATE_VARIABLE_U_3_29));
  {
    Var_30 = (MR_Word) MR_new_object(MR_Word, (1 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_30, 0) = ((MR_Box) (VarSet_13));
  }
  parse_tree__prog_ctgc__format_interface_structure_sharing_domain_6_p_0(TypeClassInfo_for_pt_output_33, ((MR_Box) ((MR_Integer) 0)), Var_30, TVarSet_14, MaybeSharingAs_15, ((MR_Box) (STATE_VARIABLE_U_3_29)), &conv17_STATE_VARIABLE_U_4_31);
  STATE_VARIABLE_U_4_31 = ((MR_Word) (conv17_STATE_VARIABLE_U_4_31));
  func_18 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
  func_18(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) ((MR_String) ").\n")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_4_31)), &conv19_STATE_VARIABLE_U_21);
  *STATE_VARIABLE_U_21 = ((MR_Word) (conv19_STATE_VARIABLE_U_21));
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_101_114_109_105_110_97_116_105_111_110_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_31,
  MR_Word S_6,
  MR_Word Lang_7,
  MR_Word Term_8)
{
  MR_Word PredNameModesPF_10 = ((MR_Word) ((MR_hl_field(0, Term_8, 0))));
  MR_Word MaybeArgSize_11 = ((MR_Word) ((MR_hl_field(0, Term_8, 1))));
  MR_Word MaybeTermination_12 = ((MR_Word) ((MR_hl_field(0, Term_8, 2))));
  MR_String PredStr_15;
  MR_String ArgSizeStr_16;
  MR_String TermStr_17;
  MR_String DeclStr_18;
  MR_String Var_34;
  MR_String Var_36;
  MR_String Var_37;
  MR_String Var_39;
  MR_String Var_40;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv1_STATE_VARIABLE_U_20;

  PredStr_15 = parse_tree__parse_tree_out_pragma__proc_pf_name_modes_to_string_2_f_0(Lang_7, PredNameModesPF_10);
  ArgSizeStr_16 = parse_tree__parse_tree_out_pragma__maybe_arg_size_info_to_string_2_f_0((MR_Word) (&mercury__unit__unit__type_ctor_info_unit_0), (MR_Integer) 0, MaybeArgSize_11);
  TermStr_17 = parse_tree__parse_tree_out_pragma__maybe_termination_info_to_string_2_f_0((MR_Word) (&mercury__unit__unit__type_ctor_info_unit_0), (MR_Word) (&mercury__unit__unit__type_ctor_info_unit_0), (MR_Integer) 0, MaybeTermination_12);
  Var_34 = mercury__string__f_43_43_2_f_0(TermStr_17, (MR_String) ").\n");
  Var_36 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_34);
  Var_37 = mercury__string__f_43_43_2_f_0(ArgSizeStr_16, Var_36);
  Var_39 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_37);
  Var_40 = mercury__string__f_43_43_2_f_0(PredStr_15, Var_39);
  DeclStr_18 = mercury__string__f_43_43_2_f_0((MR_String) ":- pragma termination_info(", Var_40);
  func_0 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_31, 0)), 6))));
  func_0(((MR_Box) (TypeClassInfo_for_pt_output_31)), ((MR_Box) (DeclStr_18)), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv1_STATE_VARIABLE_U_20);
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_101_114_109_105_110_97_116_105_111_110_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_31,
  MR_Word Lang_7,
  MR_Word Term_8,
  MR_Word STATE_VARIABLE_U_0_19,
  MR_Word * STATE_VARIABLE_U_20)
{
  MR_Word PredNameModesPF_10 = ((MR_Word) ((MR_hl_field(0, Term_8, 0))));
  MR_Word MaybeArgSize_11 = ((MR_Word) ((MR_hl_field(0, Term_8, 1))));
  MR_Word MaybeTermination_12 = ((MR_Word) ((MR_hl_field(0, Term_8, 2))));
  MR_String PredStr_15;
  MR_String ArgSizeStr_16;
  MR_String TermStr_17;
  MR_String DeclStr_18;
  MR_String Var_34;
  MR_String Var_36;
  MR_String Var_37;
  MR_String Var_39;
  MR_String Var_40;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv1_STATE_VARIABLE_U_20;

  PredStr_15 = parse_tree__parse_tree_out_pragma__proc_pf_name_modes_to_string_2_f_0(Lang_7, PredNameModesPF_10);
  ArgSizeStr_16 = parse_tree__parse_tree_out_pragma__maybe_arg_size_info_to_string_2_f_0((MR_Word) (&mercury__unit__unit__type_ctor_info_unit_0), (MR_Integer) 0, MaybeArgSize_11);
  TermStr_17 = parse_tree__parse_tree_out_pragma__maybe_termination_info_to_string_2_f_0((MR_Word) (&mercury__unit__unit__type_ctor_info_unit_0), (MR_Word) (&mercury__unit__unit__type_ctor_info_unit_0), (MR_Integer) 0, MaybeTermination_12);
  Var_34 = mercury__string__f_43_43_2_f_0(TermStr_17, (MR_String) ").\n");
  Var_36 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_34);
  Var_37 = mercury__string__f_43_43_2_f_0(ArgSizeStr_16, Var_36);
  Var_39 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_37);
  Var_40 = mercury__string__f_43_43_2_f_0(PredStr_15, Var_39);
  DeclStr_18 = mercury__string__f_43_43_2_f_0((MR_String) ":- pragma termination_info(", Var_40);
  func_0 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_31, 0)), 6))));
  func_0(((MR_Box) (TypeClassInfo_for_pt_output_31)), ((MR_Box) (DeclStr_18)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_0_19)), &conv1_STATE_VARIABLE_U_20);
  *STATE_VARIABLE_U_20 = ((MR_Word) (conv1_STATE_VARIABLE_U_20));
}

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_101_114_109_105_110_97_116_105_111_110_50_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0_2(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1)
{
  MR_Box wrapper_arg_2;
  MR_Box closure = closure_arg;
  MR_String conv1_Str_4;

  conv1_Str_4 = parse_tree__parse_tree_out_pragma__arg_size_constr_to_string_1_f_0(((MR_Word) (wrapper_arg_1)));
  wrapper_arg_2 = ((MR_Box) (conv1_Str_4));
  return wrapper_arg_2;
}

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_101_114_109_105_110_97_116_105_111_110_50_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1)
{
  MR_Box wrapper_arg_2;
  MR_Box closure = closure_arg;
  MR_String conv0_Str_4;

  conv0_Str_4 = parse_tree__parse_tree_out_pragma__arg_size_constr_to_string_1_f_0(((MR_Word) (wrapper_arg_1)));
  wrapper_arg_2 = ((MR_Box) (conv0_Str_4));
  return wrapper_arg_2;
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_101_114_109_105_110_97_116_105_111_110_50_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_33,
  MR_Word S_6,
  MR_Word Lang_7,
  MR_Word Term2_8)
{
  MR_Word PredNameModesPF_10 = ((MR_Word) ((MR_hl_field(0, Term2_8, 0))));
  MR_Word MaybeSuccess_11 = ((MR_Word) ((MR_hl_field(0, Term2_8, 1))));
  MR_Word MaybeFailure_12 = ((MR_Word) ((MR_hl_field(0, Term2_8, 2))));
  MR_Word MaybeTermination_13 = ((MR_Word) ((MR_hl_field(0, Term2_8, 3))));
  MR_String PredStr_16;
  MR_String SuccessStr_17;
  MR_String FailureStr_18;
  MR_String TermStr_19;
  MR_String DeclStr_20;
  MR_String Var_35;
  MR_String Var_37;
  MR_String Var_38;
  MR_String Var_40;
  MR_String Var_41;
  MR_String Var_43;
  MR_String Var_44;
  void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv3_STATE_VARIABLE_U_22;

  PredStr_16 = parse_tree__parse_tree_out_pragma__proc_pf_name_modes_to_string_2_f_0(Lang_7, PredNameModesPF_10);
  if ((MaybeSuccess_11 == (MR_Word) ((MR_Unsigned) 0U)))
    SuccessStr_17 = (MR_String) "not_set";
  else
  {
    MR_Word ArgSizeConstraints_46 = ((MR_Word) ((MR_hl_field(1, MaybeSuccess_11, 0))));
    MR_Word ConstraintStrs_47;
    MR_String ConstraintsStr_48;
    MR_String Var_54;

    ConstraintStrs_47 = mercury__list__map_2_f_0((MR_Word) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_arg_size_constr_0), (MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_1[14]), ArgSizeConstraints_46);
    ConstraintsStr_48 = mercury__string__join_list_2_f_0((MR_String) ", ", ConstraintStrs_47);
    Var_54 = mercury__string__f_43_43_2_f_0(ConstraintsStr_48, (MR_String) "])");
    SuccessStr_17 = mercury__string__f_43_43_2_f_0((MR_String) "constraints([", Var_54);
  }
  if ((MaybeFailure_12 == (MR_Word) ((MR_Unsigned) 0U)))
    FailureStr_18 = (MR_String) "not_set";
  else
  {
    MR_Word ArgSizeConstraints_56 = ((MR_Word) ((MR_hl_field(1, MaybeFailure_12, 0))));
    MR_Word ConstraintStrs_57;
    MR_String ConstraintsStr_58;
    MR_String Var_64;

    ConstraintStrs_57 = mercury__list__map_2_f_0((MR_Word) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_arg_size_constr_0), (MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_1[15]), ArgSizeConstraints_56);
    ConstraintsStr_58 = mercury__string__join_list_2_f_0((MR_String) ", ", ConstraintStrs_57);
    Var_64 = mercury__string__f_43_43_2_f_0(ConstraintsStr_58, (MR_String) "])");
    FailureStr_18 = mercury__string__f_43_43_2_f_0((MR_String) "constraints([", Var_64);
  }
  if ((MaybeTermination_13 == (MR_Word) ((MR_Unsigned) 0U)))
    TermStr_19 = (MR_String) "not_set";
  else
  {
    MR_Word Termination_66 = ((MR_Word) ((MR_hl_field(1, MaybeTermination_13, 0))));

    if (((MR_tag((MR_Word) Termination_66)) == (MR_Integer) 1))
      TermStr_19 = (MR_String) "can_loop";
    else
      TermStr_19 = (MR_String) "cannot_loop";
  }
  Var_35 = mercury__string__f_43_43_2_f_0(TermStr_19, (MR_String) ").\n");
  Var_37 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_35);
  Var_38 = mercury__string__f_43_43_2_f_0(FailureStr_18, Var_37);
  Var_40 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_38);
  Var_41 = mercury__string__f_43_43_2_f_0(SuccessStr_17, Var_40);
  Var_43 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_41);
  Var_44 = mercury__string__f_43_43_2_f_0(PredStr_16, Var_43);
  DeclStr_20 = mercury__string__f_43_43_2_f_0((MR_String) ":- pragma termination2_info(", Var_44);
  func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
  func_2(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) (DeclStr_20)), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv3_STATE_VARIABLE_U_22);
}

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_101_114_109_105_110_97_116_105_111_110_50_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0_2(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1)
{
  MR_Box wrapper_arg_2;
  MR_Box closure = closure_arg;
  MR_String conv1_Str_4;

  conv1_Str_4 = parse_tree__parse_tree_out_pragma__arg_size_constr_to_string_1_f_0(((MR_Word) (wrapper_arg_1)));
  wrapper_arg_2 = ((MR_Box) (conv1_Str_4));
  return wrapper_arg_2;
}

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_101_114_109_105_110_97_116_105_111_110_50_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1)
{
  MR_Box wrapper_arg_2;
  MR_Box closure = closure_arg;
  MR_String conv0_Str_4;

  conv0_Str_4 = parse_tree__parse_tree_out_pragma__arg_size_constr_to_string_1_f_0(((MR_Word) (wrapper_arg_1)));
  wrapper_arg_2 = ((MR_Box) (conv0_Str_4));
  return wrapper_arg_2;
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_101_114_109_105_110_97_116_105_111_110_50_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_33,
  MR_Word Lang_7,
  MR_Word Term2_8,
  MR_Word STATE_VARIABLE_U_0_21,
  MR_Word * STATE_VARIABLE_U_22)
{
  MR_Word PredNameModesPF_10 = ((MR_Word) ((MR_hl_field(0, Term2_8, 0))));
  MR_Word MaybeSuccess_11 = ((MR_Word) ((MR_hl_field(0, Term2_8, 1))));
  MR_Word MaybeFailure_12 = ((MR_Word) ((MR_hl_field(0, Term2_8, 2))));
  MR_Word MaybeTermination_13 = ((MR_Word) ((MR_hl_field(0, Term2_8, 3))));
  MR_String PredStr_16;
  MR_String SuccessStr_17;
  MR_String FailureStr_18;
  MR_String TermStr_19;
  MR_String DeclStr_20;
  MR_String Var_35;
  MR_String Var_37;
  MR_String Var_38;
  MR_String Var_40;
  MR_String Var_41;
  MR_String Var_43;
  MR_String Var_44;
  void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv3_STATE_VARIABLE_U_22;

  PredStr_16 = parse_tree__parse_tree_out_pragma__proc_pf_name_modes_to_string_2_f_0(Lang_7, PredNameModesPF_10);
  if ((MaybeSuccess_11 == (MR_Word) ((MR_Unsigned) 0U)))
    SuccessStr_17 = (MR_String) "not_set";
  else
  {
    MR_Word ArgSizeConstraints_46 = ((MR_Word) ((MR_hl_field(1, MaybeSuccess_11, 0))));
    MR_Word ConstraintStrs_47;
    MR_String ConstraintsStr_48;
    MR_String Var_54;

    ConstraintStrs_47 = mercury__list__map_2_f_0((MR_Word) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_arg_size_constr_0), (MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_1[12]), ArgSizeConstraints_46);
    ConstraintsStr_48 = mercury__string__join_list_2_f_0((MR_String) ", ", ConstraintStrs_47);
    Var_54 = mercury__string__f_43_43_2_f_0(ConstraintsStr_48, (MR_String) "])");
    SuccessStr_17 = mercury__string__f_43_43_2_f_0((MR_String) "constraints([", Var_54);
  }
  if ((MaybeFailure_12 == (MR_Word) ((MR_Unsigned) 0U)))
    FailureStr_18 = (MR_String) "not_set";
  else
  {
    MR_Word ArgSizeConstraints_56 = ((MR_Word) ((MR_hl_field(1, MaybeFailure_12, 0))));
    MR_Word ConstraintStrs_57;
    MR_String ConstraintsStr_58;
    MR_String Var_64;

    ConstraintStrs_57 = mercury__list__map_2_f_0((MR_Word) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_arg_size_constr_0), (MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_1[13]), ArgSizeConstraints_56);
    ConstraintsStr_58 = mercury__string__join_list_2_f_0((MR_String) ", ", ConstraintStrs_57);
    Var_64 = mercury__string__f_43_43_2_f_0(ConstraintsStr_58, (MR_String) "])");
    FailureStr_18 = mercury__string__f_43_43_2_f_0((MR_String) "constraints([", Var_64);
  }
  if ((MaybeTermination_13 == (MR_Word) ((MR_Unsigned) 0U)))
    TermStr_19 = (MR_String) "not_set";
  else
  {
    MR_Word Termination_66 = ((MR_Word) ((MR_hl_field(1, MaybeTermination_13, 0))));

    if (((MR_tag((MR_Word) Termination_66)) == (MR_Integer) 1))
      TermStr_19 = (MR_String) "can_loop";
    else
      TermStr_19 = (MR_String) "cannot_loop";
  }
  Var_35 = mercury__string__f_43_43_2_f_0(TermStr_19, (MR_String) ").\n");
  Var_37 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_35);
  Var_38 = mercury__string__f_43_43_2_f_0(FailureStr_18, Var_37);
  Var_40 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_38);
  Var_41 = mercury__string__f_43_43_2_f_0(SuccessStr_17, Var_40);
  Var_43 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_41);
  Var_44 = mercury__string__f_43_43_2_f_0(PredStr_16, Var_43);
  DeclStr_20 = mercury__string__f_43_43_2_f_0((MR_String) ":- pragma termination2_info(", Var_44);
  func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
  func_2(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) (DeclStr_20)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_0_21)), &conv3_STATE_VARIABLE_U_22);
  *STATE_VARIABLE_U_22 = ((MR_Word) (conv3_STATE_VARIABLE_U_22));
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_121_112_101_95_115_112_101_99_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4)
{
  MR_Box closure = closure_arg;

  parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_116_118_97_114_95_115_117_98_115_116_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(((MR_Word) ((MR_hl_field(0, closure, 3)))), ((MR_Word) ((MR_hl_field(0, closure, 4)))), ((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_121_112_101_95_115_112_101_99_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_36,
  MR_Word S_6,
  MR_Word Lang_7,
  MR_Word TypeSpec_8)
{
  MR_Word PFUMM_10 = ((MR_Word) ((MR_hl_field(0, TypeSpec_8, 0))));
  MR_Word PredName_11 = ((MR_Word) ((MR_hl_field(0, TypeSpec_8, 1))));
  MR_Word TypeSubst_13 = ((MR_Word) ((MR_hl_field(0, TypeSpec_8, 3))));
  MR_Word TVarSet_14 = ((MR_Word) ((MR_hl_field(0, TypeSpec_8, 4))));
  MR_Word HeadTypeSubst_78;
  MR_Word TailTypeSubsts_79;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
  MR_Box conv1_STATE_VARIABLE_U_1_28;
  void MR_CALL (* func_30)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv31_STATE_VARIABLE_U_5_33;
  void MR_CALL (* func_38)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv39_STATE_VARIABLE_U_26;

  func_0(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) ((MR_String) ":- pragma type_spec(")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv1_STATE_VARIABLE_U_1_28);
  switch (MR_tag((MR_Word) PFUMM_10)) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 0:
      {
        MR_Word ModesOrArity_45 = ((MR_Word) ((MR_hl_field(0, PFUMM_10, 0))));

        if (((MR_tag((MR_Word) ModesOrArity_45)) == (MR_Integer) 1))
        {
          MR_Word Arity_37 = ((MR_Word) ((MR_hl_field(1, ModesOrArity_45, 0))));
          MR_String Var_62;
          MR_Integer Arity_69;
          void MR_CALL (* func_14)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          MR_Box conv15_STATE_VARIABLE_U_1_63;
          void MR_CALL (* func_16)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          MR_Box conv17_STATE_VARIABLE_U_2_65;
          void MR_CALL (* func_18)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          MR_Box conv19_STATE_VARIABLE_U_2_72;
          void MR_CALL (* func_20)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          MR_Box conv21_STATE_VARIABLE_U_3_67;
          void MR_CALL (* func_22)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          MR_Box conv23_STATE_VARIABLE_U_2_29;

          Var_62 = mdbcomp__prim_data__pred_or_func_to_str_1_f_0((MR_Integer) 0);
          func_14 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
          func_14(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) (Var_62)), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv15_STATE_VARIABLE_U_1_63);
          func_16 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
          func_16(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) ((MR_String) "(")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv17_STATE_VARIABLE_U_2_65);
          Arity_69 = (MR_Integer) (Arity_37);
          parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_98_114_97_99_107_101_116_101_100_95_115_121_109_95_110_97_109_101_95_110_103_116_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_36, (MR_Integer) 1, PredName_11, S_6);
          func_18 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
          func_18(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) ((MR_String) "/")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv19_STATE_VARIABLE_U_2_72);
          func_20 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 10))));
          func_20(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) (Arity_69)), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv21_STATE_VARIABLE_U_3_67);
          func_22 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
          func_22(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) ((MR_String) ")")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv23_STATE_VARIABLE_U_2_29);
        }
        else
        {
          MR_Word Modes_38 = ((MR_Word) ((MR_hl_field(0, ModesOrArity_45, 0))));
          MR_Word PredNameModesPF_39;
          MR_String PredStr_40;
          void MR_CALL (* func_24)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          MR_Box conv25_STATE_VARIABLE_U_2_29;

          {
            PredNameModesPF_39 = (MR_Word) MR_new_object(MR_Word, (3 * sizeof(MR_Word)), NULL, NULL);
            MR_hl_field(0, PredNameModesPF_39, 0) = (MR_Box) ((MR_Unsigned) ((MR_Integer) 0));
            MR_hl_field(0, PredNameModesPF_39, 1) = ((MR_Box) (PredName_11));
            MR_hl_field(0, PredNameModesPF_39, 2) = ((MR_Box) (Modes_38));
          }
          PredStr_40 = parse_tree__parse_tree_out_pragma__proc_pf_name_modes_to_string_2_f_0(Lang_7, PredNameModesPF_39);
          func_24 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
          func_24(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) (PredStr_40)), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv25_STATE_VARIABLE_U_2_29);
        }
      }
      break;
    case (MR_Integer) 1:
      {
        MR_Word ModesOrArity_18 = ((MR_Word) ((MR_hl_field(1, PFUMM_10, 0))));

        if (((MR_tag((MR_Word) ModesOrArity_18)) == (MR_Integer) 1))
        {
          MR_Word Arity_23 = ((MR_Word) ((MR_hl_field(1, ModesOrArity_18, 0))));
          MR_String Var_51;
          MR_Integer Arity_58;
          void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          MR_Box conv3_STATE_VARIABLE_U_1_52;
          void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          MR_Box conv5_STATE_VARIABLE_U_2_54;
          void MR_CALL (* func_6)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          MR_Box conv7_STATE_VARIABLE_U_2_61;
          void MR_CALL (* func_8)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          MR_Box conv9_STATE_VARIABLE_U_3_56;
          void MR_CALL (* func_10)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          MR_Box conv11_STATE_VARIABLE_U_2_29;

          Var_51 = mdbcomp__prim_data__pred_or_func_to_str_1_f_0((MR_Integer) 1);
          func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
          func_2(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) (Var_51)), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv3_STATE_VARIABLE_U_1_52);
          func_4 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
          func_4(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) ((MR_String) "(")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv5_STATE_VARIABLE_U_2_54);
          Arity_58 = (MR_Integer) (Arity_23);
          parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_98_114_97_99_107_101_116_101_100_95_115_121_109_95_110_97_109_101_95_110_103_116_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_36, (MR_Integer) 1, PredName_11, S_6);
          func_6 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
          func_6(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) ((MR_String) "/")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv7_STATE_VARIABLE_U_2_61);
          func_8 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 10))));
          func_8(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) (Arity_58)), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv9_STATE_VARIABLE_U_3_56);
          func_10 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
          func_10(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) ((MR_String) ")")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv11_STATE_VARIABLE_U_2_29);
        }
        else
        {
          MR_Word Modes_20 = ((MR_Word) ((MR_hl_field(0, ModesOrArity_18, 0))));
          MR_Word PredNameModesPF_21;
          MR_String PredStr_22;
          void MR_CALL (* func_12)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          MR_Box conv13_STATE_VARIABLE_U_2_29;

          {
            PredNameModesPF_21 = (MR_Word) MR_new_object(MR_Word, (3 * sizeof(MR_Word)), NULL, NULL);
            MR_hl_field(0, PredNameModesPF_21, 0) = (MR_Box) ((MR_Unsigned) ((MR_Integer) 1));
            MR_hl_field(0, PredNameModesPF_21, 1) = ((MR_Box) (PredName_11));
            MR_hl_field(0, PredNameModesPF_21, 2) = ((MR_Box) (Modes_20));
          }
          PredStr_22 = parse_tree__parse_tree_out_pragma__proc_pf_name_modes_to_string_2_f_0(Lang_7, PredNameModesPF_21);
          func_12 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
          func_12(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) (PredStr_22)), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv13_STATE_VARIABLE_U_2_29);
        }
      }
      break;
    case (MR_Integer) 2:
      {
        MR_Word PredArity_24 = ((MR_Word) ((MR_hl_field(2, PFUMM_10, 0))));
        MR_Integer Arity_74 = (MR_Integer) (PredArity_24);
        void MR_CALL (* func_26)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv27_STATE_VARIABLE_U_2_77;
        void MR_CALL (* func_28)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv29_STATE_VARIABLE_U_2_29;

        parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_98_114_97_99_107_101_116_101_100_95_115_121_109_95_110_97_109_101_95_110_103_116_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_36, (MR_Integer) 0, PredName_11, S_6);
        func_26 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
        func_26(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) ((MR_String) "/")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv27_STATE_VARIABLE_U_2_77);
        func_28 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 10))));
        func_28(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) (Arity_74)), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv29_STATE_VARIABLE_U_2_29);
      }
      break;
  }
  func_30 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
  func_30(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv31_STATE_VARIABLE_U_5_33);
  HeadTypeSubst_78 = ((MR_Word) ((MR_hl_field(0, TypeSubst_13, 0))));
  TailTypeSubsts_79 = ((MR_Word) ((MR_hl_field(0, TypeSubst_13, 1))));
  if ((TailTypeSubsts_79 == (MR_Word) ((MR_Unsigned) 0U)))
    parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_116_118_97_114_95_115_117_98_115_116_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_36, TVarSet_14, HeadTypeSubst_78, S_6);
  else
  {
    MR_Word Var_82;
    MR_Word Var_84;
    void MR_CALL (* func_32)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
    MR_Box conv33_STATE_VARIABLE_U_2_81;
    void MR_CALL (* func_34)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv35_STATE_VARIABLE_U_3_85;
    void MR_CALL (* func_36)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv37_STATE_VARIABLE_U_6_34;

    func_32(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) ((MR_String) "(")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv33_STATE_VARIABLE_U_2_81);
    {
      Var_82 = (MR_Word) MR_new_object(MR_Word, (5 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(0, Var_82, 0) = ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_7[3]));
      MR_hl_field(0, Var_82, 1) = ((MR_Box) (parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_121_112_101_95_115_112_101_99_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0_1));
      MR_hl_field(0, Var_82, 2) = ((MR_Box) ((MR_Integer) 2));
      MR_hl_field(0, Var_82, 3) = ((MR_Box) (TypeClassInfo_for_pt_output_36));
      MR_hl_field(0, Var_82, 4) = ((MR_Box) (TVarSet_14));
    }
    {
      Var_84 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
      MR_hl_field(1, Var_84, 0) = ((MR_Box) (HeadTypeSubst_78));
      MR_hl_field(1, Var_84, 1) = ((MR_Box) (TailTypeSubsts_79));
    }
    func_34 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 25))));
    func_34(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_tvar_subst_0)), ((MR_Box) (Var_82)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) (Var_84)), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv35_STATE_VARIABLE_U_3_85);
    func_36 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
    func_36(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) ((MR_String) ")")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv37_STATE_VARIABLE_U_6_34);
  }
  func_38 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
  func_38(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) ((MR_String) ").\n")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv39_STATE_VARIABLE_U_26);
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_121_112_101_95_115_112_101_99_95_99_111_110_115_116_114_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_40,
  MR_Word S_6,
  MR_Word _Lang_7,
  MR_Word TypeSpecConstr_8)
{
  parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_121_112_101_95_115_112_101_99_95_99_111_110_115_116_114_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_95_95_91_51_93_95_48_5_p_0(TypeClassInfo_for_pt_output_40, S_6, TypeSpecConstr_8);
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_121_112_101_95_115_112_101_99_95_99_111_110_115_116_114_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_95_95_91_51_93_95_48_5_p_0_2(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4)
{
  MR_Box closure = closure_arg;

  parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_116_121_112_101_95_115_117_98_115_116_95_110_101_119_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_6_p_0(((MR_Word) ((MR_hl_field(0, closure, 3)))), ((MR_String) ((MR_hl_field(0, closure, 4)))), ((MR_Word) ((MR_hl_field(0, closure, 5)))), ((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_121_112_101_95_115_112_101_99_95_99_111_110_115_116_114_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_95_95_91_51_93_95_48_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4)
{
  MR_Box closure = closure_arg;

  parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_116_121_112_101_95_115_112_101_99_95_99_111_110_115_116_114_97_105_110_116_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_6_p_0(((MR_Word) ((MR_hl_field(0, closure, 3)))), ((MR_String) ((MR_hl_field(0, closure, 4)))), ((MR_Word) ((MR_hl_field(0, closure, 5)))), ((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_121_112_101_95_115_112_101_99_95_99_111_110_115_116_114_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_95_95_91_51_93_95_48_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_40,
  MR_Word S_6,
  MR_Word TypeSpecConstr_8)
{
  MR_Word OoMConstraints_11 = ((MR_Word) ((MR_hl_field(0, TypeSpecConstr_8, 1))));
  MR_Word ApplyToSupers_12 = ((MR_Unsigned) ((MR_hl_field(0, TypeSpecConstr_8, 2))) & (MR_Integer) 1);
  MR_Word OoMTypeSubsts_13 = ((MR_Word) ((MR_hl_field(0, TypeSpecConstr_8, 3))));
  MR_Word TVarSet_14 = ((MR_Word) ((MR_hl_field(0, TypeSpecConstr_8, 4))));
  MR_Word Var_23;
  MR_Word Var_25;
  MR_Word Var_35;
  MR_Word Var_37;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_40, 0)), 6))));
  MR_Box conv1_STATE_VARIABLE_U_1_22;
  void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv3_STATE_VARIABLE_U_2_26;
  void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv5_STATE_VARIABLE_U_3_28;
  void MR_CALL (* func_10)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv11_STATE_VARIABLE_U_6_34;
  void MR_CALL (* func_12)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv13_STATE_VARIABLE_U_7_38;
  void MR_CALL (* func_14)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv15_STATE_VARIABLE_U_20;

  func_0(((MR_Box) (TypeClassInfo_for_pt_output_40)), ((MR_Box) ((MR_String) ":- pragma type_spec_constrained_preds([")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv1_STATE_VARIABLE_U_1_22);
  {
    Var_23 = (MR_Word) MR_new_object(MR_Word, (6 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_23, 0) = ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_8[5]));
    MR_hl_field(0, Var_23, 1) = ((MR_Box) (parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_121_112_101_95_115_112_101_99_95_99_111_110_115_116_114_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_95_95_91_51_93_95_48_5_p_0_1));
    MR_hl_field(0, Var_23, 2) = ((MR_Box) ((MR_Integer) 3));
    MR_hl_field(0, Var_23, 3) = ((MR_Box) (TypeClassInfo_for_pt_output_40));
    MR_hl_field(0, Var_23, 4) = ((MR_Box) ((MR_String) "    "));
    MR_hl_field(0, Var_23, 5) = ((MR_Box) (TVarSet_14));
  }
  Var_25 = mercury__one_or_more__one_or_more_to_list_1_f_1((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_var_or_ground_constraint_0), OoMConstraints_11);
  func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_40, 0)), 25))));
  func_2(((MR_Box) (TypeClassInfo_for_pt_output_40)), ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_var_or_ground_constraint_0)), ((MR_Box) (Var_23)), ((MR_Box) ((MR_String) ",\n")), ((MR_Box) (Var_25)), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv3_STATE_VARIABLE_U_2_26);
  func_4 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_40, 0)), 6))));
  func_4(((MR_Box) (TypeClassInfo_for_pt_output_40)), ((MR_Box) ((MR_String) "\n], ")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv5_STATE_VARIABLE_U_3_28);
  switch (ApplyToSupers_12) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 1:
      {
        void MR_CALL (* func_6)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_40, 0)), 6))));
        MR_Box conv7_STATE_VARIABLE_U_4_30;

        func_6(((MR_Box) (TypeClassInfo_for_pt_output_40)), ((MR_Box) ((MR_String) "apply_to_superclasses, ")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv7_STATE_VARIABLE_U_4_30);
      }
      break;
    case (MR_Integer) 0:
      {
        void MR_CALL (* func_8)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_40, 0)), 6))));
        MR_Box conv9_STATE_VARIABLE_U_4_30;

        func_8(((MR_Box) (TypeClassInfo_for_pt_output_40)), ((MR_Box) ((MR_String) "do_not_apply_to_superclasses, ")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv9_STATE_VARIABLE_U_4_30);
      }
      break;
  }
  func_10 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_40, 0)), 6))));
  func_10(((MR_Box) (TypeClassInfo_for_pt_output_40)), ((MR_Box) ((MR_String) "[\n")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv11_STATE_VARIABLE_U_6_34);
  {
    Var_35 = (MR_Word) MR_new_object(MR_Word, (6 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_35, 0) = ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_8[6]));
    MR_hl_field(0, Var_35, 1) = ((MR_Box) (parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_121_112_101_95_115_112_101_99_95_99_111_110_115_116_114_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_95_95_91_51_93_95_48_5_p_0_2));
    MR_hl_field(0, Var_35, 2) = ((MR_Box) ((MR_Integer) 3));
    MR_hl_field(0, Var_35, 3) = ((MR_Box) (TypeClassInfo_for_pt_output_40));
    MR_hl_field(0, Var_35, 4) = ((MR_Box) ((MR_String) "    "));
    MR_hl_field(0, Var_35, 5) = ((MR_Box) (TVarSet_14));
  }
  Var_37 = mercury__one_or_more__one_or_more_to_list_1_f_1((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_4[0]), OoMTypeSubsts_13);
  func_12 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_40, 0)), 25))));
  func_12(((MR_Box) (TypeClassInfo_for_pt_output_40)), ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_4[0])), ((MR_Box) (Var_35)), ((MR_Box) ((MR_String) ",\n")), ((MR_Box) (Var_37)), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv13_STATE_VARIABLE_U_7_38);
  func_14 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_40, 0)), 6))));
  func_14(((MR_Box) (TypeClassInfo_for_pt_output_40)), ((MR_Box) ((MR_String) "\n]).\n")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv15_STATE_VARIABLE_U_20);
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_121_112_101_95_115_112_101_99_95_99_111_110_115_116_114_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_40,
  MR_Word _Lang_7,
  MR_Word TypeSpecConstr_8,
  MR_Word STATE_VARIABLE_U_0_19,
  MR_Word * STATE_VARIABLE_U_20)
{
  parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_121_112_101_95_115_112_101_99_95_99_111_110_115_116_114_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_95_95_91_51_93_95_48_5_p_0(TypeClassInfo_for_pt_output_40, TypeSpecConstr_8, STATE_VARIABLE_U_0_19, STATE_VARIABLE_U_20);
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_121_112_101_95_115_112_101_99_95_99_111_110_115_116_114_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_95_95_91_51_93_95_48_5_p_0_2(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4)
{
  MR_Box closure = closure_arg;
  MR_Word conv13_STATE_VARIABLE_U_15;

  parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_116_121_112_101_95_115_117_98_115_116_95_110_101_119_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_6_p_0(((MR_Word) ((MR_hl_field(0, closure, 3)))), ((MR_String) ((MR_hl_field(0, closure, 4)))), ((MR_Word) ((MR_hl_field(0, closure, 5)))), ((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_3)), &conv13_STATE_VARIABLE_U_15);
  *wrapper_arg_4 = ((MR_Box) (conv13_STATE_VARIABLE_U_15));
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_121_112_101_95_115_112_101_99_95_99_111_110_115_116_114_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_95_95_91_51_93_95_48_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4)
{
  MR_Box closure = closure_arg;
  MR_Word conv2_STATE_VARIABLE_U_16;

  parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_116_121_112_101_95_115_112_101_99_95_99_111_110_115_116_114_97_105_110_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_6_p_0(((MR_Word) ((MR_hl_field(0, closure, 3)))), ((MR_String) ((MR_hl_field(0, closure, 4)))), ((MR_Word) ((MR_hl_field(0, closure, 5)))), ((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_3)), &conv2_STATE_VARIABLE_U_16);
  *wrapper_arg_4 = ((MR_Box) (conv2_STATE_VARIABLE_U_16));
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_121_112_101_95_115_112_101_99_95_99_111_110_115_116_114_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_95_95_91_51_93_95_48_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_40,
  MR_Word TypeSpecConstr_8,
  MR_Word STATE_VARIABLE_U_0_19,
  MR_Word * STATE_VARIABLE_U_20)
{
  MR_Word OoMConstraints_11 = ((MR_Word) ((MR_hl_field(0, TypeSpecConstr_8, 1))));
  MR_Word ApplyToSupers_12 = ((MR_Unsigned) ((MR_hl_field(0, TypeSpecConstr_8, 2))) & (MR_Integer) 1);
  MR_Word OoMTypeSubsts_13 = ((MR_Word) ((MR_hl_field(0, TypeSpecConstr_8, 3))));
  MR_Word TVarSet_14 = ((MR_Word) ((MR_hl_field(0, TypeSpecConstr_8, 4))));
  MR_Word STATE_VARIABLE_U_1_22;
  MR_Word Var_23;
  MR_Word Var_25;
  MR_Word STATE_VARIABLE_U_2_26;
  MR_Word STATE_VARIABLE_U_3_28;
  MR_Word STATE_VARIABLE_U_4_30;
  MR_Word STATE_VARIABLE_U_6_34;
  MR_Word Var_35;
  MR_Word Var_37;
  MR_Word STATE_VARIABLE_U_7_38;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_40, 0)), 6))));
  MR_Box conv1_STATE_VARIABLE_U_1_22;
  void MR_CALL (* func_3)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv4_STATE_VARIABLE_U_2_26;
  void MR_CALL (* func_5)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv6_STATE_VARIABLE_U_3_28;
  void MR_CALL (* func_11)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv12_STATE_VARIABLE_U_6_34;
  void MR_CALL (* func_14)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv15_STATE_VARIABLE_U_7_38;
  void MR_CALL (* func_16)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv17_STATE_VARIABLE_U_20;

  func_0(((MR_Box) (TypeClassInfo_for_pt_output_40)), ((MR_Box) ((MR_String) ":- pragma type_spec_constrained_preds([")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_0_19)), &conv1_STATE_VARIABLE_U_1_22);
  STATE_VARIABLE_U_1_22 = ((MR_Word) (conv1_STATE_VARIABLE_U_1_22));
  {
    Var_23 = (MR_Word) MR_new_object(MR_Word, (6 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_23, 0) = ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_8[3]));
    MR_hl_field(0, Var_23, 1) = ((MR_Box) (parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_121_112_101_95_115_112_101_99_95_99_111_110_115_116_114_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_95_95_91_51_93_95_48_5_p_0_1));
    MR_hl_field(0, Var_23, 2) = ((MR_Box) ((MR_Integer) 3));
    MR_hl_field(0, Var_23, 3) = ((MR_Box) (TypeClassInfo_for_pt_output_40));
    MR_hl_field(0, Var_23, 4) = ((MR_Box) ((MR_String) "    "));
    MR_hl_field(0, Var_23, 5) = ((MR_Box) (TVarSet_14));
  }
  Var_25 = mercury__one_or_more__one_or_more_to_list_1_f_1((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_var_or_ground_constraint_0), OoMConstraints_11);
  func_3 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_40, 0)), 25))));
  func_3(((MR_Box) (TypeClassInfo_for_pt_output_40)), ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_var_or_ground_constraint_0)), ((MR_Box) (Var_23)), ((MR_Box) ((MR_String) ",\n")), ((MR_Box) (Var_25)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_22)), &conv4_STATE_VARIABLE_U_2_26);
  STATE_VARIABLE_U_2_26 = ((MR_Word) (conv4_STATE_VARIABLE_U_2_26));
  func_5 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_40, 0)), 6))));
  func_5(((MR_Box) (TypeClassInfo_for_pt_output_40)), ((MR_Box) ((MR_String) "\n], ")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_26)), &conv6_STATE_VARIABLE_U_3_28);
  STATE_VARIABLE_U_3_28 = ((MR_Word) (conv6_STATE_VARIABLE_U_3_28));
  switch (ApplyToSupers_12) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 1:
      {
        void MR_CALL (* func_7)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_40, 0)), 6))));
        MR_Box conv8_STATE_VARIABLE_U_4_30;

        func_7(((MR_Box) (TypeClassInfo_for_pt_output_40)), ((MR_Box) ((MR_String) "apply_to_superclasses, ")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_28)), &conv8_STATE_VARIABLE_U_4_30);
        STATE_VARIABLE_U_4_30 = ((MR_Word) (conv8_STATE_VARIABLE_U_4_30));
      }
      break;
    case (MR_Integer) 0:
      {
        void MR_CALL (* func_9)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_40, 0)), 6))));
        MR_Box conv10_STATE_VARIABLE_U_4_30;

        func_9(((MR_Box) (TypeClassInfo_for_pt_output_40)), ((MR_Box) ((MR_String) "do_not_apply_to_superclasses, ")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_28)), &conv10_STATE_VARIABLE_U_4_30);
        STATE_VARIABLE_U_4_30 = ((MR_Word) (conv10_STATE_VARIABLE_U_4_30));
      }
      break;
  }
  func_11 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_40, 0)), 6))));
  func_11(((MR_Box) (TypeClassInfo_for_pt_output_40)), ((MR_Box) ((MR_String) "[\n")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_4_30)), &conv12_STATE_VARIABLE_U_6_34);
  STATE_VARIABLE_U_6_34 = ((MR_Word) (conv12_STATE_VARIABLE_U_6_34));
  {
    Var_35 = (MR_Word) MR_new_object(MR_Word, (6 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_35, 0) = ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_8[4]));
    MR_hl_field(0, Var_35, 1) = ((MR_Box) (parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_121_112_101_95_115_112_101_99_95_99_111_110_115_116_114_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_95_95_91_51_93_95_48_5_p_0_2));
    MR_hl_field(0, Var_35, 2) = ((MR_Box) ((MR_Integer) 3));
    MR_hl_field(0, Var_35, 3) = ((MR_Box) (TypeClassInfo_for_pt_output_40));
    MR_hl_field(0, Var_35, 4) = ((MR_Box) ((MR_String) "    "));
    MR_hl_field(0, Var_35, 5) = ((MR_Box) (TVarSet_14));
  }
  Var_37 = mercury__one_or_more__one_or_more_to_list_1_f_1((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_4[0]), OoMTypeSubsts_13);
  func_14 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_40, 0)), 25))));
  func_14(((MR_Box) (TypeClassInfo_for_pt_output_40)), ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_4[0])), ((MR_Box) (Var_35)), ((MR_Box) ((MR_String) ",\n")), ((MR_Box) (Var_37)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_6_34)), &conv15_STATE_VARIABLE_U_7_38);
  STATE_VARIABLE_U_7_38 = ((MR_Word) (conv15_STATE_VARIABLE_U_7_38));
  func_16 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_40, 0)), 6))));
  func_16(((MR_Box) (TypeClassInfo_for_pt_output_40)), ((MR_Box) ((MR_String) "\n]).\n")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_7_38)), &conv17_STATE_VARIABLE_U_20);
  *STATE_VARIABLE_U_20 = ((MR_Word) (conv17_STATE_VARIABLE_U_20));
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_116_118_97_114_95_115_117_98_115_116_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_19,
  MR_Word VarSet_6,
  MR_Word TVarSubst_7,
  MR_Word S_8)
{
  MR_Word Var_10 = ((MR_Word) ((MR_hl_field(0, TVarSubst_7, 0))));
  MR_Word Type_11 = ((MR_Word) ((MR_hl_field(0, TVarSubst_7, 1))));
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv1_STATE_VARIABLE_U_2_17;

  parse_tree__parse_tree_out_term__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_118_97_114_95_118_115_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_6_p_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_tvar_type_0), TypeClassInfo_for_pt_output_19, VarSet_6, (MR_Integer) 0, Var_10, S_8);
  func_0 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_19, 0)), 6))));
  func_0(((MR_Box) (TypeClassInfo_for_pt_output_19)), ((MR_Box) ((MR_String) " = ")), ((MR_Box) (S_8)), ((MR_Box) ((MR_Integer) 0)), &conv1_STATE_VARIABLE_U_2_17);
  parse_tree__parse_tree_out_type__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_116_121_112_101_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_6_p_0(TypeClassInfo_for_pt_output_19, VarSet_6, (MR_Integer) 0, Type_11, S_8);
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_118_97_114_95_111_114_95_103_114_111_117_110_100_95_116_121_112_101_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_18,
  MR_Word TVarSet_6,
  MR_Word Arg_7,
  MR_Word S_8)
{
  if (((MR_tag((MR_Word) Arg_7)) == (MR_Integer) 1))
  {
    MR_Word GroundType_12 = ((MR_Word) ((MR_hl_field(1, Arg_7, 0))));
    MR_Word Type_13 = (MR_Word) (GroundType_12);

    parse_tree__parse_tree_out_type__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_116_121_112_101_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_6_p_0(TypeClassInfo_for_pt_output_18, TVarSet_6, (MR_Integer) 0, Type_13, S_8);
  }
  else
  {
    MR_String VarName_11 = ((MR_String) ((MR_hl_field(0, Arg_7, 1))));
    void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_18, 0)), 6))));
    MR_Box conv1_STATE_VARIABLE_U_15;

    func_0(((MR_Box) (TypeClassInfo_for_pt_output_18)), ((MR_Box) (VarName_11)), ((MR_Box) (S_8)), ((MR_Box) ((MR_Integer) 0)), &conv1_STATE_VARIABLE_U_15);
  }
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_118_97_114_95_111_114_95_103_114_111_117_110_100_95_116_121_112_101_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_18,
  MR_Word TVarSet_6,
  MR_Word Arg_7,
  MR_Word STATE_VARIABLE_U_0_14,
  MR_Word * STATE_VARIABLE_U_15)
{
  if (((MR_tag((MR_Word) Arg_7)) == (MR_Integer) 1))
  {
    MR_Word GroundType_12 = ((MR_Word) ((MR_hl_field(1, Arg_7, 0))));
    MR_Word Type_13 = (MR_Word) (GroundType_12);

    parse_tree__parse_tree_out_type__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_116_121_112_101_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_6_p_0(TypeClassInfo_for_pt_output_18, TVarSet_6, (MR_Integer) 0, Type_13, STATE_VARIABLE_U_0_14, STATE_VARIABLE_U_15);
  }
  else
  {
    MR_String VarName_11 = ((MR_String) ((MR_hl_field(0, Arg_7, 1))));
    void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_18, 0)), 6))));
    MR_Box conv1_STATE_VARIABLE_U_15;

    func_0(((MR_Box) (TypeClassInfo_for_pt_output_18)), ((MR_Box) (VarName_11)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_0_14)), &conv1_STATE_VARIABLE_U_15);
    *STATE_VARIABLE_U_15 = ((MR_Word) (conv1_STATE_VARIABLE_U_15));
  }
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_116_121_112_101_95_115_112_101_99_95_99_111_110_115_116_114_97_105_110_116_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_6_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4)
{
  MR_Box closure = closure_arg;

  parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_118_97_114_95_111_114_95_103_114_111_117_110_100_95_116_121_112_101_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(((MR_Word) ((MR_hl_field(0, closure, 3)))), ((MR_Word) ((MR_hl_field(0, closure, 4)))), ((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_116_121_112_101_95_115_112_101_99_95_99_111_110_115_116_114_97_105_110_116_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_6_p_0(
  MR_Word TypeClassInfo_for_pt_output_25,
  MR_String Prefix_7,
  MR_Word TVarSet_8,
  MR_Word Constraint_9,
  MR_Word S_10)
{
  MR_Word Name_12;
  MR_Word Args_13;
  MR_Word Var_21;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_25, 0)), 6))));
  MR_Box conv1_STATE_VARIABLE_U_1_17;
  void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv3_STATE_VARIABLE_U_3_20;
  void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv5_STATE_VARIABLE_U_4_23;
  void MR_CALL (* func_6)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv7_STATE_VARIABLE_U_16;

  func_0(((MR_Box) (TypeClassInfo_for_pt_output_25)), ((MR_Box) (Prefix_7)), ((MR_Box) (S_10)), ((MR_Box) ((MR_Integer) 0)), &conv1_STATE_VARIABLE_U_1_17);
  Name_12 = ((MR_Word) ((MR_hl_field(0, Constraint_9, 0))));
  Args_13 = ((MR_Word) ((MR_hl_field(0, Constraint_9, 1))));
  parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_115_121_109_95_110_97_109_101_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0(TypeClassInfo_for_pt_output_25, Name_12, S_10);
  func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_25, 0)), 6))));
  func_2(((MR_Box) (TypeClassInfo_for_pt_output_25)), ((MR_Box) ((MR_String) "(")), ((MR_Box) (S_10)), ((MR_Box) ((MR_Integer) 0)), &conv3_STATE_VARIABLE_U_3_20);
  {
    Var_21 = (MR_Word) MR_new_object(MR_Word, (5 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_21, 0) = ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_7[5]));
    MR_hl_field(0, Var_21, 1) = ((MR_Box) (parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_116_121_112_101_95_115_112_101_99_95_99_111_110_115_116_114_97_105_110_116_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_6_p_0_1));
    MR_hl_field(0, Var_21, 2) = ((MR_Box) ((MR_Integer) 2));
    MR_hl_field(0, Var_21, 3) = ((MR_Box) (TypeClassInfo_for_pt_output_25));
    MR_hl_field(0, Var_21, 4) = ((MR_Box) (TVarSet_8));
  }
  func_4 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_25, 0)), 25))));
  func_4(((MR_Box) (TypeClassInfo_for_pt_output_25)), ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_var_or_ground_type_0)), ((MR_Box) (Var_21)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) (Args_13)), ((MR_Box) (S_10)), ((MR_Box) ((MR_Integer) 0)), &conv5_STATE_VARIABLE_U_4_23);
  func_6 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_25, 0)), 6))));
  func_6(((MR_Box) (TypeClassInfo_for_pt_output_25)), ((MR_Box) ((MR_String) ")")), ((MR_Box) (S_10)), ((MR_Box) ((MR_Integer) 0)), &conv7_STATE_VARIABLE_U_16);
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_116_121_112_101_95_115_112_101_99_95_99_111_110_115_116_114_97_105_110_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_6_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4)
{
  MR_Box closure = closure_arg;
  MR_Word conv4_STATE_VARIABLE_U_15;

  parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_118_97_114_95_111_114_95_103_114_111_117_110_100_95_116_121_112_101_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(((MR_Word) ((MR_hl_field(0, closure, 3)))), ((MR_Word) ((MR_hl_field(0, closure, 4)))), ((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_3)), &conv4_STATE_VARIABLE_U_15);
  *wrapper_arg_4 = ((MR_Box) (conv4_STATE_VARIABLE_U_15));
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_116_121_112_101_95_115_112_101_99_95_99_111_110_115_116_114_97_105_110_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_6_p_0(
  MR_Word TypeClassInfo_for_pt_output_25,
  MR_String Prefix_7,
  MR_Word TVarSet_8,
  MR_Word Constraint_9,
  MR_Word STATE_VARIABLE_U_0_15,
  MR_Word * STATE_VARIABLE_U_16)
{
  MR_Word Name_12;
  MR_Word Args_13;
  MR_Word STATE_VARIABLE_U_1_17;
  MR_Word STATE_VARIABLE_U_2_18;
  MR_Word STATE_VARIABLE_U_3_20;
  MR_Word Var_21;
  MR_Word STATE_VARIABLE_U_4_23;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_25, 0)), 6))));
  MR_Box conv1_STATE_VARIABLE_U_1_17;
  void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv3_STATE_VARIABLE_U_3_20;
  void MR_CALL (* func_5)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv6_STATE_VARIABLE_U_4_23;
  void MR_CALL (* func_7)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv8_STATE_VARIABLE_U_16;

  func_0(((MR_Box) (TypeClassInfo_for_pt_output_25)), ((MR_Box) (Prefix_7)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_0_15)), &conv1_STATE_VARIABLE_U_1_17);
  STATE_VARIABLE_U_1_17 = ((MR_Word) (conv1_STATE_VARIABLE_U_1_17));
  Name_12 = ((MR_Word) ((MR_hl_field(0, Constraint_9, 0))));
  Args_13 = ((MR_Word) ((MR_hl_field(0, Constraint_9, 1))));
  parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_115_121_109_95_110_97_109_101_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0(TypeClassInfo_for_pt_output_25, Name_12, STATE_VARIABLE_U_1_17, &STATE_VARIABLE_U_2_18);
  func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_25, 0)), 6))));
  func_2(((MR_Box) (TypeClassInfo_for_pt_output_25)), ((MR_Box) ((MR_String) "(")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_18)), &conv3_STATE_VARIABLE_U_3_20);
  STATE_VARIABLE_U_3_20 = ((MR_Word) (conv3_STATE_VARIABLE_U_3_20));
  {
    Var_21 = (MR_Word) MR_new_object(MR_Word, (5 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_21, 0) = ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_7[4]));
    MR_hl_field(0, Var_21, 1) = ((MR_Box) (parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_116_121_112_101_95_115_112_101_99_95_99_111_110_115_116_114_97_105_110_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_6_p_0_1));
    MR_hl_field(0, Var_21, 2) = ((MR_Box) ((MR_Integer) 2));
    MR_hl_field(0, Var_21, 3) = ((MR_Box) (TypeClassInfo_for_pt_output_25));
    MR_hl_field(0, Var_21, 4) = ((MR_Box) (TVarSet_8));
  }
  func_5 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_25, 0)), 25))));
  func_5(((MR_Box) (TypeClassInfo_for_pt_output_25)), ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_var_or_ground_type_0)), ((MR_Box) (Var_21)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) (Args_13)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_20)), &conv6_STATE_VARIABLE_U_4_23);
  STATE_VARIABLE_U_4_23 = ((MR_Word) (conv6_STATE_VARIABLE_U_4_23));
  func_7 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_25, 0)), 6))));
  func_7(((MR_Box) (TypeClassInfo_for_pt_output_25)), ((MR_Box) ((MR_String) ")")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_4_23)), &conv8_STATE_VARIABLE_U_16);
  *STATE_VARIABLE_U_16 = ((MR_Word) (conv8_STATE_VARIABLE_U_16));
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_116_121_112_101_95_115_117_98_115_116_95_110_101_119_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_6_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4)
{
  MR_Box closure = closure_arg;

  parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_116_118_97_114_95_115_117_98_115_116_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(((MR_Word) ((MR_hl_field(0, closure, 3)))), ((MR_Word) ((MR_hl_field(0, closure, 4)))), ((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_2)));
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_116_121_112_101_95_115_117_98_115_116_95_110_101_119_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_6_p_0(
  MR_Word TypeClassInfo_for_pt_output_24,
  MR_String Prefix_7,
  MR_Word TVarSet_8,
  MR_Word TypeSubst_9,
  MR_Word S_10)
{
  MR_Word HeadTypeSubst_12 = ((MR_Word) ((MR_hl_field(0, TypeSubst_9, 0))));
  MR_Word TailTypeSubsts_13 = ((MR_Word) ((MR_hl_field(0, TypeSubst_9, 1))));
  MR_Word Var_19;
  MR_Word Var_21;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_24, 0)), 6))));
  MR_Box conv1_STATE_VARIABLE_U_1_16;
  void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv3_STATE_VARIABLE_U_2_18;
  void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv5_STATE_VARIABLE_U_3_22;
  void MR_CALL (* func_6)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv7_STATE_VARIABLE_U_15;

  func_0(((MR_Box) (TypeClassInfo_for_pt_output_24)), ((MR_Box) (Prefix_7)), ((MR_Box) (S_10)), ((MR_Box) ((MR_Integer) 0)), &conv1_STATE_VARIABLE_U_1_16);
  func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_24, 0)), 6))));
  func_2(((MR_Box) (TypeClassInfo_for_pt_output_24)), ((MR_Box) ((MR_String) "subst([")), ((MR_Box) (S_10)), ((MR_Box) ((MR_Integer) 0)), &conv3_STATE_VARIABLE_U_2_18);
  {
    Var_19 = (MR_Word) MR_new_object(MR_Word, (5 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_19, 0) = ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_7[3]));
    MR_hl_field(0, Var_19, 1) = ((MR_Box) (parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_116_121_112_101_95_115_117_98_115_116_95_110_101_119_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_6_p_0_1));
    MR_hl_field(0, Var_19, 2) = ((MR_Box) ((MR_Integer) 2));
    MR_hl_field(0, Var_19, 3) = ((MR_Box) (TypeClassInfo_for_pt_output_24));
    MR_hl_field(0, Var_19, 4) = ((MR_Box) (TVarSet_8));
  }
  {
    Var_21 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
    MR_hl_field(1, Var_21, 0) = ((MR_Box) (HeadTypeSubst_12));
    MR_hl_field(1, Var_21, 1) = ((MR_Box) (TailTypeSubsts_13));
  }
  func_4 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_24, 0)), 25))));
  func_4(((MR_Box) (TypeClassInfo_for_pt_output_24)), ((MR_Box) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_tvar_subst_0)), ((MR_Box) (Var_19)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) (Var_21)), ((MR_Box) (S_10)), ((MR_Box) ((MR_Integer) 0)), &conv5_STATE_VARIABLE_U_3_22);
  func_6 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_24, 0)), 6))));
  func_6(((MR_Box) (TypeClassInfo_for_pt_output_24)), ((MR_Box) ((MR_String) "])")), ((MR_Box) (S_10)), ((MR_Box) ((MR_Integer) 0)), &conv7_STATE_VARIABLE_U_15);
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_116_121_112_101_95_115_117_98_115_116_95_110_101_119_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_6_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4)
{
  MR_Box closure = closure_arg;
  MR_Word conv4_STATE_VARIABLE_U_13;

  parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_116_118_97_114_95_115_117_98_115_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(((MR_Word) ((MR_hl_field(0, closure, 3)))), ((MR_Word) ((MR_hl_field(0, closure, 4)))), ((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_3)), &conv4_STATE_VARIABLE_U_13);
  *wrapper_arg_4 = ((MR_Box) (conv4_STATE_VARIABLE_U_13));
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_116_121_112_101_95_115_117_98_115_116_95_110_101_119_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_6_p_0(
  MR_Word TypeClassInfo_for_pt_output_24,
  MR_String Prefix_7,
  MR_Word TVarSet_8,
  MR_Word TypeSubst_9,
  MR_Word STATE_VARIABLE_U_0_14,
  MR_Word * STATE_VARIABLE_U_15)
{
  MR_Word HeadTypeSubst_12 = ((MR_Word) ((MR_hl_field(0, TypeSubst_9, 0))));
  MR_Word TailTypeSubsts_13 = ((MR_Word) ((MR_hl_field(0, TypeSubst_9, 1))));
  MR_Word STATE_VARIABLE_U_1_16;
  MR_Word STATE_VARIABLE_U_2_18;
  MR_Word Var_19;
  MR_Word Var_21;
  MR_Word STATE_VARIABLE_U_3_22;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_24, 0)), 6))));
  MR_Box conv1_STATE_VARIABLE_U_1_16;
  void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv3_STATE_VARIABLE_U_2_18;
  void MR_CALL (* func_5)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv6_STATE_VARIABLE_U_3_22;
  void MR_CALL (* func_7)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv8_STATE_VARIABLE_U_15;

  func_0(((MR_Box) (TypeClassInfo_for_pt_output_24)), ((MR_Box) (Prefix_7)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_0_14)), &conv1_STATE_VARIABLE_U_1_16);
  STATE_VARIABLE_U_1_16 = ((MR_Word) (conv1_STATE_VARIABLE_U_1_16));
  func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_24, 0)), 6))));
  func_2(((MR_Box) (TypeClassInfo_for_pt_output_24)), ((MR_Box) ((MR_String) "subst([")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_16)), &conv3_STATE_VARIABLE_U_2_18);
  STATE_VARIABLE_U_2_18 = ((MR_Word) (conv3_STATE_VARIABLE_U_2_18));
  {
    Var_19 = (MR_Word) MR_new_object(MR_Word, (5 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_19, 0) = ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_7[1]));
    MR_hl_field(0, Var_19, 1) = ((MR_Box) (parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_116_121_112_101_95_115_117_98_115_116_95_110_101_119_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_6_p_0_1));
    MR_hl_field(0, Var_19, 2) = ((MR_Box) ((MR_Integer) 2));
    MR_hl_field(0, Var_19, 3) = ((MR_Box) (TypeClassInfo_for_pt_output_24));
    MR_hl_field(0, Var_19, 4) = ((MR_Box) (TVarSet_8));
  }
  {
    Var_21 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
    MR_hl_field(1, Var_21, 0) = ((MR_Box) (HeadTypeSubst_12));
    MR_hl_field(1, Var_21, 1) = ((MR_Box) (TailTypeSubsts_13));
  }
  func_5 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_24, 0)), 25))));
  func_5(((MR_Box) (TypeClassInfo_for_pt_output_24)), ((MR_Box) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_tvar_subst_0)), ((MR_Box) (Var_19)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) (Var_21)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_18)), &conv6_STATE_VARIABLE_U_3_22);
  STATE_VARIABLE_U_3_22 = ((MR_Word) (conv6_STATE_VARIABLE_U_3_22));
  func_7 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_24, 0)), 6))));
  func_7(((MR_Box) (TypeClassInfo_for_pt_output_24)), ((MR_Box) ((MR_String) "])")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_22)), &conv8_STATE_VARIABLE_U_15);
  *STATE_VARIABLE_U_15 = ((MR_Word) (conv8_STATE_VARIABLE_U_15));
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_required_feature_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_11,
  MR_Word Feature_5,
  MR_Box S_6,
  MR_Box STATE_VARIABLE_U_0_9,
  MR_Box * STATE_VARIABLE_U_10)
{
  MR_String Str_8 = ((&parse_tree__parse_tree_out_pragma_vector_common_10[13 + Feature_5]))->parse_tree__parse_tree_out_pragma__vector_common_type_10_0__vct_10_f_0;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_11, 0)), 6))));

  func_0(((MR_Box) (TypeClassInfo_for_pt_output_11)), ((MR_Box) (Str_8)), S_6, STATE_VARIABLE_U_0_9, STATE_VARIABLE_U_10);
}

static MR_String MR_CALL 
parse_tree__parse_tree_out_pragma__arg_size_term_to_string_1_f_0(
  MR_Word HeadVar__1_1)
{
  MR_String HeadVar__2_2;
  MR_Integer VarId_3 = ((MR_Integer) ((MR_hl_field(0, HeadVar__1_1, 0))));
  MR_Word Coeff_4 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 1))));
  MR_String Var_10;
  MR_String Var_13;
  MR_String Var_15;
  MR_String Var_16;
  MR_String Var_23;

  Var_10 = libs__rat__to_rat_string_1_f_0(Coeff_4);
  Var_13 = mercury__string__f_43_43_2_f_0(Var_10, (MR_String) ")");
  Var_15 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_13);
  mercury__string__format__format_signed_int_component_nowidth_noprec_3_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_5[0]), VarId_3, &Var_16);
  Var_23 = mercury__string__f_43_43_2_f_0(Var_16, Var_15);
  HeadVar__2_2 = mercury__string__f_43_43_2_f_0((MR_String) "term(", Var_23);
  return HeadVar__2_2;
}

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__arg_size_constr_to_string_1_f_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1)
{
  MR_Box wrapper_arg_2;
  MR_Box closure = closure_arg;
  MR_String conv0_HeadVar__2_2;

  conv0_HeadVar__2_2 = parse_tree__parse_tree_out_pragma__arg_size_term_to_string_1_f_0(((MR_Word) (wrapper_arg_1)));
  wrapper_arg_2 = ((MR_Box) (conv0_HeadVar__2_2));
  return wrapper_arg_2;
}

static MR_String MR_CALL 
parse_tree__parse_tree_out_pragma__arg_size_constr_to_string_1_f_0(
  MR_Word Constraint_3)
{
  MR_String Str_4;
  MR_Word Terms_5;
  MR_Word Constant_6;
  MR_String OpStr_7;
  MR_Word TermStrs_8;
  MR_String TermsStr_9;
  MR_String Var_19;
  MR_String Var_26;
  MR_String Var_28;
  MR_String Var_29;
  MR_String Var_31;

  if (((MR_tag((MR_Word) Constraint_3)) == (MR_Integer) 1))
  {
    Terms_5 = ((MR_Word) ((MR_hl_field(1, Constraint_3, 0))));
    Constant_6 = ((MR_Word) ((MR_hl_field(1, Constraint_3, 1))));
    OpStr_7 = (MR_String) "eq";
  }
  else
  {
    Terms_5 = ((MR_Word) ((MR_hl_field(0, Constraint_3, 0))));
    Constant_6 = ((MR_Word) ((MR_hl_field(0, Constraint_3, 1))));
    OpStr_7 = (MR_String) "le";
  }
  TermStrs_8 = mercury__list__map_2_f_0((MR_Word) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_arg_size_term_0), (MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_1[11]), Terms_5);
  TermsStr_9 = mercury__string__join_list_2_f_0((MR_String) ", ", TermStrs_8);
  Var_19 = libs__rat__to_rat_string_1_f_0(Constant_6);
  Var_26 = mercury__string__f_43_43_2_f_0(Var_19, (MR_String) ")");
  Var_28 = mercury__string__f_43_43_2_f_0((MR_String) "], ", Var_26);
  Var_29 = mercury__string__f_43_43_2_f_0(TermsStr_9, Var_28);
  Var_31 = mercury__string__f_43_43_2_f_0((MR_String) "([", Var_29);
  Str_4 = mercury__string__f_43_43_2_f_0(OpStr_7, Var_31);
  return Str_4;
}

static MR_String MR_CALL 
parse_tree__parse_tree_out_pragma__bool_to_string_1_f_0(
  MR_Word HeadVar__1_1)
{
  MR_String HeadVar__2_2;

  switch (HeadVar__1_1) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 0:
      HeadVar__2_2 = (MR_String) "no";
      break;
    case (MR_Integer) 1:
      HeadVar__2_2 = (MR_String) "yes";
      break;
  }
  return HeadVar__2_2;
}

static MR_String MR_CALL 
parse_tree__parse_tree_out_pragma__wrapped_sym_name_arity_to_string_1_f_0(
  MR_Word SNA_3)
{
  MR_String Str_4;
  MR_Word SymName_5 = ((MR_Word) ((MR_hl_field(0, SNA_3, 0))));
  MR_Integer Arity_6 = ((MR_Integer) ((MR_hl_field(0, SNA_3, 1))));
  MR_String Var_7;
  MR_String Var_8;
  MR_String Var_10;

  Var_7 = parse_tree__parse_tree_out_sym_name__mercury_bracketed_sym_name_to_string_1_f_0(SymName_5);
  Var_10 = mercury__string__int_to_string_1_f_0(Arity_6);
  Var_8 = mercury__string__f_43_43_2_f_0((MR_String) "/", Var_10);
  Str_4 = mercury__string__f_43_43_2_f_0(Var_7, Var_8);
  return Str_4;
}

static MR_String MR_CALL 
parse_tree__parse_tree_out_pragma__get_zero_arity_inst_ctor_name_1_f_0(
  MR_Word HeadVar__1_1)
{
  MR_bool succeeded;
  MR_String Str_5;
  MR_Word SymName_3 = ((MR_Word) ((MR_hl_field(0, HeadVar__1_1, 0))));
  MR_Integer Arity_4 = ((MR_Integer) ((MR_hl_field(0, HeadVar__1_1, 1))));

  succeeded = (Arity_4 == (MR_Integer) 0);
  if (succeeded)
    Str_5 = mdbcomp__sym_name__sym_name_to_string_1_f_0(SymName_3);
  else
    mercury__require__unexpected_2_p_0((MR_String) "function \140parse_tree.parse_tree_out_pragma.get_zero_arity_inst_ctor_name\'/1", (MR_String) "nonzero arity");
  return Str_5;
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_type_subst_new_6_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4)
{
  MR_Box closure = closure_arg;

  parse_tree__parse_tree_out_pragma__mercury_format_tvar_subst_5_p_0(((MR_Word) ((MR_hl_field(0, closure, 3)))), ((MR_Word) ((MR_hl_field(0, closure, 4)))), ((MR_Word) (wrapper_arg_1)), wrapper_arg_2, wrapper_arg_3, wrapper_arg_4);
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_type_subst_new_6_p_0(
  MR_Word TypeClassInfo_for_pt_output_24,
  MR_String Prefix_7,
  MR_Word TVarSet_8,
  MR_Word TypeSubst_9,
  MR_Box S_10,
  MR_Box STATE_VARIABLE_U_0_14,
  MR_Box * STATE_VARIABLE_U_15)
{
  MR_Word HeadTypeSubst_12 = ((MR_Word) ((MR_hl_field(0, TypeSubst_9, 0))));
  MR_Word TailTypeSubsts_13 = ((MR_Word) ((MR_hl_field(0, TypeSubst_9, 1))));
  MR_Box STATE_VARIABLE_U_1_16;
  MR_Box STATE_VARIABLE_U_2_18;
  MR_Word Var_19;
  MR_Word Var_21;
  MR_Box STATE_VARIABLE_U_3_22;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_24, 0)), 6))));
  void MR_CALL (* func_1)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_3)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

  func_0(((MR_Box) (TypeClassInfo_for_pt_output_24)), ((MR_Box) (Prefix_7)), S_10, STATE_VARIABLE_U_0_14, &STATE_VARIABLE_U_1_16);
  func_1 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_24, 0)), 6))));
  func_1(((MR_Box) (TypeClassInfo_for_pt_output_24)), ((MR_Box) ((MR_String) "subst([")), S_10, STATE_VARIABLE_U_1_16, &STATE_VARIABLE_U_2_18);
  {
    Var_19 = (MR_Word) MR_new_object(MR_Word, (5 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_19, 0) = ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_7[0]));
    MR_hl_field(0, Var_19, 1) = ((MR_Box) (parse_tree__parse_tree_out_pragma__mercury_format_type_subst_new_6_p_0_1));
    MR_hl_field(0, Var_19, 2) = ((MR_Box) ((MR_Integer) 2));
    MR_hl_field(0, Var_19, 3) = ((MR_Box) (TypeClassInfo_for_pt_output_24));
    MR_hl_field(0, Var_19, 4) = ((MR_Box) (TVarSet_8));
  }
  {
    Var_21 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
    MR_hl_field(1, Var_21, 0) = ((MR_Box) (HeadTypeSubst_12));
    MR_hl_field(1, Var_21, 1) = ((MR_Box) (TailTypeSubsts_13));
  }
  func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_24, 0)), 25))));
  func_2(((MR_Box) (TypeClassInfo_for_pt_output_24)), ((MR_Box) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_tvar_subst_0)), ((MR_Box) (Var_19)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) (Var_21)), S_10, STATE_VARIABLE_U_2_18, &STATE_VARIABLE_U_3_22);
  func_3 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_24, 0)), 6))));
  func_3(((MR_Box) (TypeClassInfo_for_pt_output_24)), ((MR_Box) ((MR_String) "])")), S_10, STATE_VARIABLE_U_3_22, STATE_VARIABLE_U_15);
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_var_or_ground_type_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_18,
  MR_Word TVarSet_6,
  MR_Word Arg_7,
  MR_Box S_8,
  MR_Box STATE_VARIABLE_U_0_14,
  MR_Box * STATE_VARIABLE_U_15)
{
  if (((MR_tag((MR_Word) Arg_7)) == (MR_Integer) 1))
  {
    MR_Word GroundType_12 = ((MR_Word) ((MR_hl_field(1, Arg_7, 0))));
    MR_Word Type_13 = (MR_Word) (GroundType_12);

    parse_tree__parse_tree_out_type__mercury_format_type_6_p_0(TypeClassInfo_for_pt_output_18, TVarSet_6, (MR_Integer) 0, Type_13, S_8, STATE_VARIABLE_U_0_14, STATE_VARIABLE_U_15);
  }
  else
  {
    MR_String VarName_11 = ((MR_String) ((MR_hl_field(0, Arg_7, 1))));
    void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_18, 0)), 6))));

    func_0(((MR_Box) (TypeClassInfo_for_pt_output_18)), ((MR_Box) (VarName_11)), S_8, STATE_VARIABLE_U_0_14, STATE_VARIABLE_U_15);
  }
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_type_spec_constraint_6_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4)
{
  MR_Box closure = closure_arg;

  parse_tree__parse_tree_out_pragma__mercury_format_var_or_ground_type_5_p_0(((MR_Word) ((MR_hl_field(0, closure, 3)))), ((MR_Word) ((MR_hl_field(0, closure, 4)))), ((MR_Word) (wrapper_arg_1)), wrapper_arg_2, wrapper_arg_3, wrapper_arg_4);
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_type_spec_constraint_6_p_0(
  MR_Word TypeClassInfo_for_pt_output_25,
  MR_String Prefix_7,
  MR_Word TVarSet_8,
  MR_Word Constraint_9,
  MR_Box S_10,
  MR_Box STATE_VARIABLE_U_0_15,
  MR_Box * STATE_VARIABLE_U_16)
{
  MR_Word Name_12;
  MR_Word Args_13;
  MR_Box STATE_VARIABLE_U_1_17;
  MR_Box STATE_VARIABLE_U_2_18;
  MR_Box STATE_VARIABLE_U_3_20;
  MR_Word Var_21;
  MR_Box STATE_VARIABLE_U_4_23;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_25, 0)), 6))));
  void MR_CALL (* func_1)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_3)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

  func_0(((MR_Box) (TypeClassInfo_for_pt_output_25)), ((MR_Box) (Prefix_7)), S_10, STATE_VARIABLE_U_0_15, &STATE_VARIABLE_U_1_17);
  Name_12 = ((MR_Word) ((MR_hl_field(0, Constraint_9, 0))));
  Args_13 = ((MR_Word) ((MR_hl_field(0, Constraint_9, 1))));
  parse_tree__parse_tree_out_sym_name__mercury_format_sym_name_4_p_0(TypeClassInfo_for_pt_output_25, Name_12, S_10, STATE_VARIABLE_U_1_17, &STATE_VARIABLE_U_2_18);
  func_1 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_25, 0)), 6))));
  func_1(((MR_Box) (TypeClassInfo_for_pt_output_25)), ((MR_Box) ((MR_String) "(")), S_10, STATE_VARIABLE_U_2_18, &STATE_VARIABLE_U_3_20);
  {
    Var_21 = (MR_Word) MR_new_object(MR_Word, (5 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_21, 0) = ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_7[2]));
    MR_hl_field(0, Var_21, 1) = ((MR_Box) (parse_tree__parse_tree_out_pragma__mercury_format_type_spec_constraint_6_p_0_1));
    MR_hl_field(0, Var_21, 2) = ((MR_Box) ((MR_Integer) 2));
    MR_hl_field(0, Var_21, 3) = ((MR_Box) (TypeClassInfo_for_pt_output_25));
    MR_hl_field(0, Var_21, 4) = ((MR_Box) (TVarSet_8));
  }
  func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_25, 0)), 25))));
  func_2(((MR_Box) (TypeClassInfo_for_pt_output_25)), ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_var_or_ground_type_0)), ((MR_Box) (Var_21)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) (Args_13)), S_10, STATE_VARIABLE_U_3_20, &STATE_VARIABLE_U_4_23);
  func_3 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_25, 0)), 6))));
  func_3(((MR_Box) (TypeClassInfo_for_pt_output_25)), ((MR_Box) ((MR_String) ")")), S_10, STATE_VARIABLE_U_4_23, STATE_VARIABLE_U_16);
}

static MR_String MR_CALL 
parse_tree__parse_tree_out_pragma__unit_selector_to_string_2_f_0(
  MR_Word TypeVarSet_4,
  MR_Word UnitSelector_5)
{
  MR_String String_6;

  if (((MR_tag((MR_Word) UnitSelector_5)) == (MR_Integer) 0))
    mercury__require__unexpected_2_p_0((MR_String) "function \140parse_tree.parse_tree_out_pragma.unit_selector_to_string\'/2", (MR_String) "termsel in user-annotated sharing");
  else
  {
    MR_Word Type_7 = ((MR_Word) ((MR_hl_field(1, UnitSelector_5, 0))));

    String_6 = parse_tree__parse_tree_out_type__mercury_type_to_string_3_f_0(TypeVarSet_4, (MR_Integer) 0, Type_7);
  }
  return String_6;
}

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__sharing_pair_to_string_3_f_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1)
{
  MR_Box wrapper_arg_2;
  MR_Box closure = closure_arg;
  MR_String conv0_String_6;

  conv0_String_6 = parse_tree__parse_tree_out_pragma__unit_selector_to_string_2_f_0(((MR_Word) ((MR_hl_field(0, closure, 3)))), ((MR_Word) (wrapper_arg_1)));
  wrapper_arg_2 = ((MR_Box) (conv0_String_6));
  return wrapper_arg_2;
}

static MR_String MR_CALL 
parse_tree__parse_tree_out_pragma__sharing_pair_to_string_3_f_0(
  MR_Word VarSet_5,
  MR_Word TypeVarSet_6,
  MR_Word HeadVar__3_3)
{
  MR_String Str_9;
  MR_Word DataA_7 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 0))));
  MR_Word DataB_8 = ((MR_Word) ((MR_hl_field(0, HeadVar__3_3, 1))));
  MR_Word VarA_10 = ((MR_Word) ((MR_hl_field(0, DataA_7, 0))));
  MR_Word SelectorA_11 = ((MR_Word) ((MR_hl_field(0, DataA_7, 1))));
  MR_Word VarB_12 = ((MR_Word) ((MR_hl_field(0, DataB_8, 0))));
  MR_Word SelectorB_13 = ((MR_Word) ((MR_hl_field(0, DataB_8, 1))));
  MR_String VarStrA_14;
  MR_String VarStrB_15;
  MR_String SelectorStrA_16;
  MR_String SelectorStrB_17;
  MR_String StrA_18;
  MR_String StrB_19;
  MR_String Var_23;
  MR_String Var_24;
  MR_String Var_26;
  MR_String Var_29;
  MR_String Var_30;
  MR_String Var_32;
  MR_String Var_34;
  MR_Word UnitStrs_37;
  MR_Word Var_38;
  MR_Word UnitStrs_42;

  VarStrA_14 = parse_tree__parse_tree_out_term__mercury_var_to_string_vs_3_f_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_var_type_0), VarSet_5, (MR_Integer) 0, VarA_10);
  VarStrB_15 = parse_tree__parse_tree_out_term__mercury_var_to_string_vs_3_f_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_var_type_0), VarSet_5, (MR_Integer) 0, VarB_12);
  {
    Var_38 = (MR_Word) MR_new_object(MR_Word, (4 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_38, 0) = ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_13[0]));
    MR_hl_field(0, Var_38, 1) = ((MR_Box) (parse_tree__parse_tree_out_pragma__sharing_pair_to_string_3_f_0_1));
    MR_hl_field(0, Var_38, 2) = ((MR_Box) ((MR_Integer) 1));
    MR_hl_field(0, Var_38, 3) = ((MR_Box) (TypeVarSet_6));
  }
  UnitStrs_37 = mercury__list__map_2_f_0((MR_Word) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_unit_selector_0), (MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), Var_38, SelectorA_11);
  SelectorStrA_16 = mercury__string__join_list_2_f_0((MR_String) ", ", UnitStrs_37);
  UnitStrs_42 = mercury__list__map_2_f_0((MR_Word) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_unit_selector_0), (MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), Var_38, SelectorB_13);
  SelectorStrB_17 = mercury__string__join_list_2_f_0((MR_String) ", ", UnitStrs_42);
  Var_26 = mercury__string__f_43_43_2_f_0(SelectorStrA_16, (MR_String) "])");
  Var_24 = mercury__string__f_43_43_2_f_0((MR_String) ", [", Var_26);
  Var_23 = mercury__string__f_43_43_2_f_0(VarStrA_14, Var_24);
  StrA_18 = mercury__string__f_43_43_2_f_0((MR_String) "cel(", Var_23);
  Var_32 = mercury__string__f_43_43_2_f_0(SelectorStrB_17, (MR_String) "])");
  Var_30 = mercury__string__f_43_43_2_f_0((MR_String) ", [", Var_32);
  Var_29 = mercury__string__f_43_43_2_f_0(VarStrB_15, Var_30);
  StrB_19 = mercury__string__f_43_43_2_f_0((MR_String) "cel(", Var_29);
  Var_34 = mercury__string__f_43_43_2_f_0((MR_String) " - ", StrB_19);
  Str_9 = mercury__string__f_43_43_2_f_0(StrA_18, Var_34);
  return Str_9;
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_escaped_char_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_16,
  MR_Box S_5,
  MR_Char Char_6,
  MR_Box STATE_VARIABLE_U_0_9,
  MR_Box * STATE_VARIABLE_U_10)
{
  MR_bool succeeded;
  MR_Char QuoteChar_8;

  switch (Char_6) {
    default:
      succeeded = MR_FALSE;
      break;
    case (MR_Char) 8:
      {
        QuoteChar_8 = (MR_Char) 98;
        succeeded = MR_TRUE;
      }
      break;
    case (MR_Char) 34:
      {
        QuoteChar_8 = (MR_Char) 34;
        succeeded = MR_TRUE;
      }
      break;
    case (MR_Char) 39:
      {
        QuoteChar_8 = (MR_Char) 39;
        succeeded = MR_TRUE;
      }
      break;
    case (MR_Char) 92:
      {
        QuoteChar_8 = (MR_Char) 92;
        succeeded = MR_TRUE;
      }
      break;
  }
  if (succeeded)
  {
    MR_Box STATE_VARIABLE_U_1_12;
    void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 5))));
    void MR_CALL (* func_1)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

    func_0(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (MR_Word) ((MR_Char) 92)), S_5, STATE_VARIABLE_U_0_9, &STATE_VARIABLE_U_1_12);
    func_1 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 5))));
    func_1(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (MR_Word) (QuoteChar_8)), S_5, STATE_VARIABLE_U_1_12, STATE_VARIABLE_U_10);
  }
  else
  {
    switch (Char_6) {
      default:
        succeeded = MR_FALSE;
        break;
      case (MR_Char) 9:
        succeeded = MR_TRUE;
        break;
      case (MR_Char) 10:
        succeeded = MR_TRUE;
        break;
    }
    if (!(succeeded))
    {
      succeeded = mercury__term_io__is_mercury_punctuation_char_1_p_0(Char_6);
      if (!(succeeded))
        succeeded = mercury__char__is_alnum_1_p_0(Char_6);
    }
    if (succeeded)
    {
      void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 5))));

      func_2(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (MR_Word) (Char_6)), S_5, STATE_VARIABLE_U_0_9, STATE_VARIABLE_U_10);
    }
    else
    {
      MR_String Var_15;
      void MR_CALL (* func_3)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

      Var_15 = mercury__term_io__mercury_escape_char_1_f_0(Char_6);
      func_3 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
      func_3(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (Var_15)), S_5, STATE_VARIABLE_U_0_9, STATE_VARIABLE_U_10);
    }
  }
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_input_spec_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_43,
  MR_Box S_6,
  MR_Word _Lang_7,
  MR_Word InputSpec_8,
  MR_Box STATE_VARIABLE_U_0_24,
  MR_Box * STATE_VARIABLE_U_25)
{
  parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_105_110_112_117_116_95_115_112_101_99_95_95_91_51_93_95_48_5_p_0(TypeClassInfo_for_pt_output_43, S_6, InputSpec_8, STATE_VARIABLE_U_0_24, STATE_VARIABLE_U_25);
}

MR_String MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_pragma_type_spec_to_string_2_f_0(
  MR_Word Lang_4,
  MR_Word TypeSpec_5)
{
  MR_String Str_6;
  MR_Word State0_7;
  MR_Word State_8;

  State0_7 = mercury__string__builder__init_0_f_0();
  parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_121_112_101_95_115_112_101_99_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), Lang_4, TypeSpec_5, State0_7, &State_8);
  Str_6 = mercury__string__builder__to_string_1_f_0(State_8);
  return Str_6;
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_121_112_101_95_115_112_101_99_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4)
{
  MR_Box closure = closure_arg;
  MR_Word conv34_STATE_VARIABLE_U_13;

  parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_116_118_97_114_95_115_117_98_115_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(((MR_Word) ((MR_hl_field(0, closure, 3)))), ((MR_Word) ((MR_hl_field(0, closure, 4)))), ((MR_Word) (wrapper_arg_1)), ((MR_Word) (wrapper_arg_3)), &conv34_STATE_VARIABLE_U_13);
  *wrapper_arg_4 = ((MR_Box) (conv34_STATE_VARIABLE_U_13));
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_121_112_101_95_115_112_101_99_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_36,
  MR_Word Lang_7,
  MR_Word TypeSpec_8,
  MR_Word STATE_VARIABLE_U_0_25,
  MR_Word * STATE_VARIABLE_U_26)
{
  MR_Word PFUMM_10 = ((MR_Word) ((MR_hl_field(0, TypeSpec_8, 0))));
  MR_Word PredName_11 = ((MR_Word) ((MR_hl_field(0, TypeSpec_8, 1))));
  MR_Word TypeSubst_13 = ((MR_Word) ((MR_hl_field(0, TypeSpec_8, 3))));
  MR_Word TVarSet_14 = ((MR_Word) ((MR_hl_field(0, TypeSpec_8, 4))));
  MR_Word STATE_VARIABLE_U_1_28;
  MR_Word STATE_VARIABLE_U_2_29;
  MR_Word STATE_VARIABLE_U_5_33;
  MR_Word STATE_VARIABLE_U_6_34;
  MR_Word HeadTypeSubst_78;
  MR_Word TailTypeSubsts_79;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
  MR_Box conv1_STATE_VARIABLE_U_1_28;
  void MR_CALL (* func_30)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv31_STATE_VARIABLE_U_5_33;
  void MR_CALL (* func_39)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv40_STATE_VARIABLE_U_26;

  func_0(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) ((MR_String) ":- pragma type_spec(")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_0_25)), &conv1_STATE_VARIABLE_U_1_28);
  STATE_VARIABLE_U_1_28 = ((MR_Word) (conv1_STATE_VARIABLE_U_1_28));
  switch (MR_tag((MR_Word) PFUMM_10)) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 0:
      {
        MR_Word ModesOrArity_45 = ((MR_Word) ((MR_hl_field(0, PFUMM_10, 0))));

        if (((MR_tag((MR_Word) ModesOrArity_45)) == (MR_Integer) 1))
        {
          MR_Word Arity_37 = ((MR_Word) ((MR_hl_field(1, ModesOrArity_45, 0))));
          MR_String Var_62;
          MR_Word STATE_VARIABLE_U_1_63;
          MR_Word STATE_VARIABLE_U_2_65;
          MR_Word STATE_VARIABLE_U_3_67;
          MR_Integer Arity_69;
          MR_Word STATE_VARIABLE_U_1_70;
          MR_Word STATE_VARIABLE_U_2_72;
          void MR_CALL (* func_14)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          MR_Box conv15_STATE_VARIABLE_U_1_63;
          void MR_CALL (* func_16)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          MR_Box conv17_STATE_VARIABLE_U_2_65;
          void MR_CALL (* func_18)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          MR_Box conv19_STATE_VARIABLE_U_2_72;
          void MR_CALL (* func_20)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          MR_Box conv21_STATE_VARIABLE_U_3_67;
          void MR_CALL (* func_22)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          MR_Box conv23_STATE_VARIABLE_U_2_29;

          Var_62 = mdbcomp__prim_data__pred_or_func_to_str_1_f_0((MR_Integer) 0);
          func_14 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
          func_14(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) (Var_62)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_28)), &conv15_STATE_VARIABLE_U_1_63);
          STATE_VARIABLE_U_1_63 = ((MR_Word) (conv15_STATE_VARIABLE_U_1_63));
          func_16 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
          func_16(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) ((MR_String) "(")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_63)), &conv17_STATE_VARIABLE_U_2_65);
          STATE_VARIABLE_U_2_65 = ((MR_Word) (conv17_STATE_VARIABLE_U_2_65));
          Arity_69 = (MR_Integer) (Arity_37);
          parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_98_114_97_99_107_101_116_101_100_95_115_121_109_95_110_97_109_101_95_110_103_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_36, (MR_Integer) 1, PredName_11, STATE_VARIABLE_U_2_65, &STATE_VARIABLE_U_1_70);
          func_18 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
          func_18(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) ((MR_String) "/")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_70)), &conv19_STATE_VARIABLE_U_2_72);
          STATE_VARIABLE_U_2_72 = ((MR_Word) (conv19_STATE_VARIABLE_U_2_72));
          func_20 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 10))));
          func_20(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) (Arity_69)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_72)), &conv21_STATE_VARIABLE_U_3_67);
          STATE_VARIABLE_U_3_67 = ((MR_Word) (conv21_STATE_VARIABLE_U_3_67));
          func_22 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
          func_22(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) ((MR_String) ")")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_67)), &conv23_STATE_VARIABLE_U_2_29);
          STATE_VARIABLE_U_2_29 = ((MR_Word) (conv23_STATE_VARIABLE_U_2_29));
        }
        else
        {
          MR_Word Modes_38 = ((MR_Word) ((MR_hl_field(0, ModesOrArity_45, 0))));
          MR_Word PredNameModesPF_39;
          MR_String PredStr_40;
          void MR_CALL (* func_24)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          MR_Box conv25_STATE_VARIABLE_U_2_29;

          {
            PredNameModesPF_39 = (MR_Word) MR_new_object(MR_Word, (3 * sizeof(MR_Word)), NULL, NULL);
            MR_hl_field(0, PredNameModesPF_39, 0) = (MR_Box) ((MR_Unsigned) ((MR_Integer) 0));
            MR_hl_field(0, PredNameModesPF_39, 1) = ((MR_Box) (PredName_11));
            MR_hl_field(0, PredNameModesPF_39, 2) = ((MR_Box) (Modes_38));
          }
          PredStr_40 = parse_tree__parse_tree_out_pragma__proc_pf_name_modes_to_string_2_f_0(Lang_7, PredNameModesPF_39);
          func_24 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
          func_24(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) (PredStr_40)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_28)), &conv25_STATE_VARIABLE_U_2_29);
          STATE_VARIABLE_U_2_29 = ((MR_Word) (conv25_STATE_VARIABLE_U_2_29));
        }
      }
      break;
    case (MR_Integer) 1:
      {
        MR_Word ModesOrArity_18 = ((MR_Word) ((MR_hl_field(1, PFUMM_10, 0))));

        if (((MR_tag((MR_Word) ModesOrArity_18)) == (MR_Integer) 1))
        {
          MR_Word Arity_23 = ((MR_Word) ((MR_hl_field(1, ModesOrArity_18, 0))));
          MR_String Var_51;
          MR_Word STATE_VARIABLE_U_1_52;
          MR_Word STATE_VARIABLE_U_2_54;
          MR_Word STATE_VARIABLE_U_3_56;
          MR_Integer Arity_58;
          MR_Word STATE_VARIABLE_U_1_59;
          MR_Word STATE_VARIABLE_U_2_61;
          void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          MR_Box conv3_STATE_VARIABLE_U_1_52;
          void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          MR_Box conv5_STATE_VARIABLE_U_2_54;
          void MR_CALL (* func_6)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          MR_Box conv7_STATE_VARIABLE_U_2_61;
          void MR_CALL (* func_8)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          MR_Box conv9_STATE_VARIABLE_U_3_56;
          void MR_CALL (* func_10)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          MR_Box conv11_STATE_VARIABLE_U_2_29;

          Var_51 = mdbcomp__prim_data__pred_or_func_to_str_1_f_0((MR_Integer) 1);
          func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
          func_2(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) (Var_51)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_28)), &conv3_STATE_VARIABLE_U_1_52);
          STATE_VARIABLE_U_1_52 = ((MR_Word) (conv3_STATE_VARIABLE_U_1_52));
          func_4 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
          func_4(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) ((MR_String) "(")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_52)), &conv5_STATE_VARIABLE_U_2_54);
          STATE_VARIABLE_U_2_54 = ((MR_Word) (conv5_STATE_VARIABLE_U_2_54));
          Arity_58 = (MR_Integer) (Arity_23);
          parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_98_114_97_99_107_101_116_101_100_95_115_121_109_95_110_97_109_101_95_110_103_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_36, (MR_Integer) 1, PredName_11, STATE_VARIABLE_U_2_54, &STATE_VARIABLE_U_1_59);
          func_6 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
          func_6(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) ((MR_String) "/")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_59)), &conv7_STATE_VARIABLE_U_2_61);
          STATE_VARIABLE_U_2_61 = ((MR_Word) (conv7_STATE_VARIABLE_U_2_61));
          func_8 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 10))));
          func_8(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) (Arity_58)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_61)), &conv9_STATE_VARIABLE_U_3_56);
          STATE_VARIABLE_U_3_56 = ((MR_Word) (conv9_STATE_VARIABLE_U_3_56));
          func_10 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
          func_10(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) ((MR_String) ")")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_56)), &conv11_STATE_VARIABLE_U_2_29);
          STATE_VARIABLE_U_2_29 = ((MR_Word) (conv11_STATE_VARIABLE_U_2_29));
        }
        else
        {
          MR_Word Modes_20 = ((MR_Word) ((MR_hl_field(0, ModesOrArity_18, 0))));
          MR_Word PredNameModesPF_21;
          MR_String PredStr_22;
          void MR_CALL (* func_12)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          MR_Box conv13_STATE_VARIABLE_U_2_29;

          {
            PredNameModesPF_21 = (MR_Word) MR_new_object(MR_Word, (3 * sizeof(MR_Word)), NULL, NULL);
            MR_hl_field(0, PredNameModesPF_21, 0) = (MR_Box) ((MR_Unsigned) ((MR_Integer) 1));
            MR_hl_field(0, PredNameModesPF_21, 1) = ((MR_Box) (PredName_11));
            MR_hl_field(0, PredNameModesPF_21, 2) = ((MR_Box) (Modes_20));
          }
          PredStr_22 = parse_tree__parse_tree_out_pragma__proc_pf_name_modes_to_string_2_f_0(Lang_7, PredNameModesPF_21);
          func_12 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
          func_12(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) (PredStr_22)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_28)), &conv13_STATE_VARIABLE_U_2_29);
          STATE_VARIABLE_U_2_29 = ((MR_Word) (conv13_STATE_VARIABLE_U_2_29));
        }
      }
      break;
    case (MR_Integer) 2:
      {
        MR_Word PredArity_24 = ((MR_Word) ((MR_hl_field(2, PFUMM_10, 0))));
        MR_Integer Arity_74 = (MR_Integer) (PredArity_24);
        MR_Word STATE_VARIABLE_U_1_75;
        MR_Word STATE_VARIABLE_U_2_77;
        void MR_CALL (* func_26)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv27_STATE_VARIABLE_U_2_77;
        void MR_CALL (* func_28)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv29_STATE_VARIABLE_U_2_29;

        parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_98_114_97_99_107_101_116_101_100_95_115_121_109_95_110_97_109_101_95_110_103_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_36, (MR_Integer) 0, PredName_11, STATE_VARIABLE_U_1_28, &STATE_VARIABLE_U_1_75);
        func_26 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
        func_26(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) ((MR_String) "/")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_75)), &conv27_STATE_VARIABLE_U_2_77);
        STATE_VARIABLE_U_2_77 = ((MR_Word) (conv27_STATE_VARIABLE_U_2_77));
        func_28 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 10))));
        func_28(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) (Arity_74)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_77)), &conv29_STATE_VARIABLE_U_2_29);
        STATE_VARIABLE_U_2_29 = ((MR_Word) (conv29_STATE_VARIABLE_U_2_29));
      }
      break;
  }
  func_30 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
  func_30(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_29)), &conv31_STATE_VARIABLE_U_5_33);
  STATE_VARIABLE_U_5_33 = ((MR_Word) (conv31_STATE_VARIABLE_U_5_33));
  HeadTypeSubst_78 = ((MR_Word) ((MR_hl_field(0, TypeSubst_13, 0))));
  TailTypeSubsts_79 = ((MR_Word) ((MR_hl_field(0, TypeSubst_13, 1))));
  if ((TailTypeSubsts_79 == (MR_Word) ((MR_Unsigned) 0U)))
    parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_116_118_97_114_95_115_117_98_115_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_36, TVarSet_14, HeadTypeSubst_78, STATE_VARIABLE_U_5_33, &STATE_VARIABLE_U_6_34);
  else
  {
    MR_Word STATE_VARIABLE_U_2_81;
    MR_Word Var_82;
    MR_Word Var_84;
    MR_Word STATE_VARIABLE_U_3_85;
    void MR_CALL (* func_32)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
    MR_Box conv33_STATE_VARIABLE_U_2_81;
    void MR_CALL (* func_35)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv36_STATE_VARIABLE_U_3_85;
    void MR_CALL (* func_37)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv38_STATE_VARIABLE_U_6_34;

    func_32(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) ((MR_String) "(")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_5_33)), &conv33_STATE_VARIABLE_U_2_81);
    STATE_VARIABLE_U_2_81 = ((MR_Word) (conv33_STATE_VARIABLE_U_2_81));
    {
      Var_82 = (MR_Word) MR_new_object(MR_Word, (5 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(0, Var_82, 0) = ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_7[1]));
      MR_hl_field(0, Var_82, 1) = ((MR_Box) (parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_121_112_101_95_115_112_101_99_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0_1));
      MR_hl_field(0, Var_82, 2) = ((MR_Box) ((MR_Integer) 2));
      MR_hl_field(0, Var_82, 3) = ((MR_Box) (TypeClassInfo_for_pt_output_36));
      MR_hl_field(0, Var_82, 4) = ((MR_Box) (TVarSet_14));
    }
    {
      Var_84 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
      MR_hl_field(1, Var_84, 0) = ((MR_Box) (HeadTypeSubst_78));
      MR_hl_field(1, Var_84, 1) = ((MR_Box) (TailTypeSubsts_79));
    }
    func_35 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 25))));
    func_35(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_tvar_subst_0)), ((MR_Box) (Var_82)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) (Var_84)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_81)), &conv36_STATE_VARIABLE_U_3_85);
    STATE_VARIABLE_U_3_85 = ((MR_Word) (conv36_STATE_VARIABLE_U_3_85));
    func_37 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
    func_37(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) ((MR_String) ")")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_85)), &conv38_STATE_VARIABLE_U_6_34);
    STATE_VARIABLE_U_6_34 = ((MR_Word) (conv38_STATE_VARIABLE_U_6_34));
  }
  func_39 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
  func_39(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) ((MR_String) ").\n")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_6_34)), &conv40_STATE_VARIABLE_U_26);
  *STATE_VARIABLE_U_26 = ((MR_Word) (conv40_STATE_VARIABLE_U_26));
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_116_118_97_114_95_115_117_98_115_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_19,
  MR_Word VarSet_6,
  MR_Word TVarSubst_7,
  MR_Word STATE_VARIABLE_U_0_12,
  MR_Word * STATE_VARIABLE_U_13)
{
  MR_Word Var_10 = ((MR_Word) ((MR_hl_field(0, TVarSubst_7, 0))));
  MR_Word Type_11 = ((MR_Word) ((MR_hl_field(0, TVarSubst_7, 1))));
  MR_Word STATE_VARIABLE_U_1_15;
  MR_Word STATE_VARIABLE_U_2_17;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv1_STATE_VARIABLE_U_2_17;

  parse_tree__parse_tree_out_term__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_118_97_114_95_118_115_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_6_p_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_tvar_type_0), TypeClassInfo_for_pt_output_19, VarSet_6, (MR_Integer) 0, Var_10, STATE_VARIABLE_U_0_12, &STATE_VARIABLE_U_1_15);
  func_0 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_19, 0)), 6))));
  func_0(((MR_Box) (TypeClassInfo_for_pt_output_19)), ((MR_Box) ((MR_String) " = ")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_15)), &conv1_STATE_VARIABLE_U_2_17);
  STATE_VARIABLE_U_2_17 = ((MR_Word) (conv1_STATE_VARIABLE_U_2_17));
  parse_tree__parse_tree_out_type__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_116_121_112_101_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_6_p_0(TypeClassInfo_for_pt_output_19, VarSet_6, (MR_Integer) 0, Type_11, STATE_VARIABLE_U_2_17, STATE_VARIABLE_U_13);
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_type_spec_constr_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_40,
  MR_Box S_6,
  MR_Word _Lang_7,
  MR_Word TypeSpecConstr_8,
  MR_Box STATE_VARIABLE_U_0_19,
  MR_Box * STATE_VARIABLE_U_20)
{
  parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_121_112_101_95_115_112_101_99_95_99_111_110_115_116_114_95_95_91_51_93_95_48_5_p_0(TypeClassInfo_for_pt_output_40, S_6, TypeSpecConstr_8, STATE_VARIABLE_U_0_19, STATE_VARIABLE_U_20);
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_item_foreign_proc_5_p_0_2(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box * wrapper_arg_3)
{
  MR_Box closure = closure_arg;

  parse_tree__parse_tree_out_pragma__mercury_format_escaped_char_4_p_0(((MR_Word) ((MR_hl_field(0, closure, 3)))), (MR_hl_field(0, closure, 4)), ((MR_Char) (MR_Word) wrapper_arg_1), wrapper_arg_2, wrapper_arg_3);
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_item_foreign_proc_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4)
{
  MR_Box closure = closure_arg;

  parse_tree__parse_tree_output__add_string_4_p_0(((MR_Word) ((MR_hl_field(0, closure, 3)))), ((MR_String) (wrapper_arg_1)), wrapper_arg_2, wrapper_arg_3, wrapper_arg_4);
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_item_foreign_proc_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_53,
  MR_Box S_6,
  MR_Word Lang_7,
  MR_Word FPInfo_8,
  MR_Box STATE_VARIABLE_U_0_27,
  MR_Box * STATE_VARIABLE_U_28)
{
  MR_Word TypeInfo_16_69;
  MR_Word Attributes_10 = ((MR_Word) ((MR_hl_field(0, FPInfo_8, 0))));
  MR_Word PredName_11 = ((MR_Word) ((MR_hl_field(0, FPInfo_8, 1))));
  MR_Word PredOrFunc_12 = ((MR_Unsigned) ((MR_hl_field(0, FPInfo_8, 2))) & (MR_Integer) 1);
  MR_Word Vars0_13 = ((MR_Word) ((MR_hl_field(0, FPInfo_8, 3))));
  MR_Word ProgVarSet_14 = ((MR_Word) ((MR_hl_field(0, FPInfo_8, 4))));
  MR_Word InstVarSet_15 = ((MR_Word) ((MR_hl_field(0, FPInfo_8, 5))));
  MR_Word PragmaCode_16 = ((MR_Word) ((MR_hl_field(0, FPInfo_8, 6))));
  MR_Word ForeignLang_19;
  MR_String C_Code_25;
  MR_Box STATE_VARIABLE_U_1_30;
  MR_Box STATE_VARIABLE_U_2_31;
  MR_Box STATE_VARIABLE_U_3_33;
  MR_Box STATE_VARIABLE_U_4_34;
  MR_Box STATE_VARIABLE_U_10_45;
  MR_Box STATE_VARIABLE_U_11_47;
  MR_Box STATE_VARIABLE_U_12_48;
  MR_Box STATE_VARIABLE_U_13_50;
  MR_Box STATE_VARIABLE_U_14_51;
  MR_Box STATE_VARIABLE_U_1_56;
  MR_Word Var_57;
  MR_Word Var_59;
  MR_Box STATE_VARIABLE_U_2_60;
  MR_Box STATE_VARIABLE_U_1_64;
  MR_Box STATE_VARIABLE_U_2_65;
  MR_Word Var_67;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
  void MR_CALL (* func_1)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_23)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_24)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_25)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_26)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_27)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_28)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_29)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_30)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

  func_0(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) ":- pragma foreign_proc(")), S_6, STATE_VARIABLE_U_0_27, &STATE_VARIABLE_U_1_30);
  ForeignLang_19 = parse_tree__prog_data_foreign__get_foreign_language_1_f_0(Attributes_10);
  parse_tree__parse_tree_out_misc__mercury_format_foreign_language_string_4_p_0(TypeClassInfo_for_pt_output_53, ForeignLang_19, S_6, STATE_VARIABLE_U_1_30, &STATE_VARIABLE_U_2_31);
  func_1 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
  func_1(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) ",\n    ")), S_6, STATE_VARIABLE_U_2_31, &STATE_VARIABLE_U_3_33);
  parse_tree__parse_tree_out_sym_name__mercury_format_sym_name_4_p_0(TypeClassInfo_for_pt_output_53, PredName_11, S_6, STATE_VARIABLE_U_3_33, &STATE_VARIABLE_U_4_34);
  switch (PredOrFunc_12) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 1:
      {
        MR_Word Vars_20;
        MR_Box STATE_VARIABLE_U_7_40;
        MR_Box STATE_VARIABLE_U_8_42;
        MR_Box STATE_VARIABLE_U_9_43;
        MR_Word Var_157;
        MR_String VarName_161;
        MR_Word Mode_162;
        MR_Box STATE_VARIABLE_U_1_168;
        MR_Box STATE_VARIABLE_U_2_170;
        MR_Box conv2_Var_157;
        void MR_CALL (* func_11)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        void MR_CALL (* func_12)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        void MR_CALL (* func_13)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        void MR_CALL (* func_14)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

        parse_tree__prog_util__pred_args_to_func_args_3_p_0((MR_Word) (&parse_tree__prog_data_foreign__parse_tree__prog_data_foreign__type_ctor_info_pragma_var_0), Vars0_13, &Vars_20, &conv2_Var_157);
        Var_157 = ((MR_Word) (conv2_Var_157));
        if ((Vars_20 == (MR_Word) ((MR_Unsigned) 0U)))
          STATE_VARIABLE_U_7_40 = STATE_VARIABLE_U_4_34;
        else
        {
          MR_Box STATE_VARIABLE_U_5_37;
          MR_Box STATE_VARIABLE_U_6_38;
          MR_Word Var_79;
          MR_Word Vars_80;
          MR_String VarName_83;
          MR_Word Mode_84;
          MR_Box STATE_VARIABLE_U_1_90;
          MR_Box STATE_VARIABLE_U_2_92;
          MR_Box STATE_VARIABLE_U_3_93;
          void MR_CALL (* func_3)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
          void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          void MR_CALL (* func_5)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          void MR_CALL (* func_10)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

          func_3(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) "(")), S_6, STATE_VARIABLE_U_4_34, &STATE_VARIABLE_U_5_37);
          Var_79 = ((MR_Word) ((MR_hl_field(1, Vars_20, 0))));
          Vars_80 = ((MR_Word) ((MR_hl_field(1, Vars_20, 1))));
          VarName_83 = ((MR_String) ((MR_hl_field(0, Var_79, 1))));
          Mode_84 = ((MR_Word) ((MR_hl_field(0, Var_79, 2))));
          func_4 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
          func_4(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) (VarName_83)), S_6, STATE_VARIABLE_U_5_37, &STATE_VARIABLE_U_1_90);
          func_5 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
          func_5(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) " :: ")), S_6, STATE_VARIABLE_U_1_90, &STATE_VARIABLE_U_2_92);
          parse_tree__parse_tree_out_inst__mercury_format_mode_6_p_0(TypeClassInfo_for_pt_output_53, Lang_7, InstVarSet_15, Mode_84, S_6, STATE_VARIABLE_U_2_92, &STATE_VARIABLE_U_3_93);
          if ((Vars_80 == (MR_Word) ((MR_Unsigned) 0U)))
            STATE_VARIABLE_U_6_38 = STATE_VARIABLE_U_3_93;
          else
          {
            MR_Box STATE_VARIABLE_U_4_95;
            MR_Word Var_131;
            MR_Word Vars_132;
            MR_String VarName_135;
            MR_Word Mode_136;
            MR_Box STATE_VARIABLE_U_1_142;
            MR_Box STATE_VARIABLE_U_2_144;
            MR_Box STATE_VARIABLE_U_3_145;
            MR_Box STATE_VARIABLE_U_4_147;
            void MR_CALL (* func_6)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
            void MR_CALL (* func_7)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
            void MR_CALL (* func_8)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

            func_6(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) ", ")), S_6, STATE_VARIABLE_U_3_93, &STATE_VARIABLE_U_4_95);
            Var_131 = ((MR_Word) ((MR_hl_field(1, Vars_80, 0))));
            Vars_132 = ((MR_Word) ((MR_hl_field(1, Vars_80, 1))));
            VarName_135 = ((MR_String) ((MR_hl_field(0, Var_131, 1))));
            Mode_136 = ((MR_Word) ((MR_hl_field(0, Var_131, 2))));
            func_7 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
            func_7(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) (VarName_135)), S_6, STATE_VARIABLE_U_4_95, &STATE_VARIABLE_U_1_142);
            func_8 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
            func_8(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) " :: ")), S_6, STATE_VARIABLE_U_1_142, &STATE_VARIABLE_U_2_144);
            parse_tree__parse_tree_out_inst__mercury_format_mode_6_p_0(TypeClassInfo_for_pt_output_53, Lang_7, InstVarSet_15, Mode_136, S_6, STATE_VARIABLE_U_2_144, &STATE_VARIABLE_U_3_145);
            if ((Vars_132 == (MR_Word) ((MR_Unsigned) 0U)))
              STATE_VARIABLE_U_4_147 = STATE_VARIABLE_U_3_145;
            else
            {
              void MR_CALL (* func_9)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));

              func_9(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) ", ")), S_6, STATE_VARIABLE_U_3_145, &STATE_VARIABLE_U_4_147);
            }
            parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_102_111_114_101_105_103_110_95_112_114_111_99_95_118_97_114_115_95_95_91_51_93_95_48_7_p_0(TypeClassInfo_for_pt_output_53, Lang_7, InstVarSet_15, Vars_132, S_6, STATE_VARIABLE_U_4_147, &STATE_VARIABLE_U_6_38);
          }
          func_10 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
          func_10(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) ")")), S_6, STATE_VARIABLE_U_6_38, &STATE_VARIABLE_U_7_40);
        }
        func_11 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
        func_11(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) " = (")), S_6, STATE_VARIABLE_U_7_40, &STATE_VARIABLE_U_8_42);
        VarName_161 = ((MR_String) ((MR_hl_field(0, Var_157, 1))));
        Mode_162 = ((MR_Word) ((MR_hl_field(0, Var_157, 2))));
        func_12 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
        func_12(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) (VarName_161)), S_6, STATE_VARIABLE_U_8_42, &STATE_VARIABLE_U_1_168);
        func_13 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
        func_13(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) " :: ")), S_6, STATE_VARIABLE_U_1_168, &STATE_VARIABLE_U_2_170);
        parse_tree__parse_tree_out_inst__mercury_format_mode_6_p_0(TypeClassInfo_for_pt_output_53, Lang_7, InstVarSet_15, Mode_162, S_6, STATE_VARIABLE_U_2_170, &STATE_VARIABLE_U_9_43);
        func_14 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
        func_14(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) ")")), S_6, STATE_VARIABLE_U_9_43, &STATE_VARIABLE_U_10_45);
      }
      break;
    case (MR_Integer) 0:
      if ((Vars0_13 == (MR_Word) ((MR_Unsigned) 0U)))
        STATE_VARIABLE_U_10_45 = STATE_VARIABLE_U_4_34;
      else
      {
        MR_Box STATE_VARIABLE_U_5_262;
        MR_Box STATE_VARIABLE_U_6_263;
        MR_Word Var_265;
        MR_Word Vars_266;
        MR_String VarName_268;
        MR_Word Mode_269;
        MR_Box STATE_VARIABLE_U_1_271;
        MR_Box STATE_VARIABLE_U_2_273;
        MR_Box STATE_VARIABLE_U_3_274;
        void MR_CALL (* func_15)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
        void MR_CALL (* func_16)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        void MR_CALL (* func_17)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        void MR_CALL (* func_22)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

        func_15(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) "(")), S_6, STATE_VARIABLE_U_4_34, &STATE_VARIABLE_U_5_262);
        Var_265 = ((MR_Word) ((MR_hl_field(1, Vars0_13, 0))));
        Vars_266 = ((MR_Word) ((MR_hl_field(1, Vars0_13, 1))));
        VarName_268 = ((MR_String) ((MR_hl_field(0, Var_265, 1))));
        Mode_269 = ((MR_Word) ((MR_hl_field(0, Var_265, 2))));
        func_16 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
        func_16(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) (VarName_268)), S_6, STATE_VARIABLE_U_5_262, &STATE_VARIABLE_U_1_271);
        func_17 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
        func_17(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) " :: ")), S_6, STATE_VARIABLE_U_1_271, &STATE_VARIABLE_U_2_273);
        parse_tree__parse_tree_out_inst__mercury_format_mode_6_p_0(TypeClassInfo_for_pt_output_53, Lang_7, InstVarSet_15, Mode_269, S_6, STATE_VARIABLE_U_2_273, &STATE_VARIABLE_U_3_274);
        if ((Vars_266 == (MR_Word) ((MR_Unsigned) 0U)))
          STATE_VARIABLE_U_6_263 = STATE_VARIABLE_U_3_274;
        else
        {
          MR_Box STATE_VARIABLE_U_4_234;
          MR_Word Var_235;
          MR_Word Vars_236;
          MR_String VarName_238;
          MR_Word Mode_239;
          MR_Box STATE_VARIABLE_U_1_241;
          MR_Box STATE_VARIABLE_U_2_243;
          MR_Box STATE_VARIABLE_U_3_244;
          MR_Box STATE_VARIABLE_U_4_246;
          void MR_CALL (* func_18)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
          void MR_CALL (* func_19)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          void MR_CALL (* func_20)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

          func_18(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) ", ")), S_6, STATE_VARIABLE_U_3_274, &STATE_VARIABLE_U_4_234);
          Var_235 = ((MR_Word) ((MR_hl_field(1, Vars_266, 0))));
          Vars_236 = ((MR_Word) ((MR_hl_field(1, Vars_266, 1))));
          VarName_238 = ((MR_String) ((MR_hl_field(0, Var_235, 1))));
          Mode_239 = ((MR_Word) ((MR_hl_field(0, Var_235, 2))));
          func_19 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
          func_19(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) (VarName_238)), S_6, STATE_VARIABLE_U_4_234, &STATE_VARIABLE_U_1_241);
          func_20 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
          func_20(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) " :: ")), S_6, STATE_VARIABLE_U_1_241, &STATE_VARIABLE_U_2_243);
          parse_tree__parse_tree_out_inst__mercury_format_mode_6_p_0(TypeClassInfo_for_pt_output_53, Lang_7, InstVarSet_15, Mode_239, S_6, STATE_VARIABLE_U_2_243, &STATE_VARIABLE_U_3_244);
          if ((Vars_236 == (MR_Word) ((MR_Unsigned) 0U)))
            STATE_VARIABLE_U_4_246 = STATE_VARIABLE_U_3_244;
          else
          {
            void MR_CALL (* func_21)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));

            func_21(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) ", ")), S_6, STATE_VARIABLE_U_3_244, &STATE_VARIABLE_U_4_246);
          }
          parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_102_111_114_101_105_103_110_95_112_114_111_99_95_118_97_114_115_95_95_91_51_93_95_48_7_p_0(TypeClassInfo_for_pt_output_53, Lang_7, InstVarSet_15, Vars_236, S_6, STATE_VARIABLE_U_4_246, &STATE_VARIABLE_U_6_263);
        }
        func_22 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
        func_22(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) ")")), S_6, STATE_VARIABLE_U_6_263, &STATE_VARIABLE_U_10_45);
      }
      break;
  }
  func_23 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
  func_23(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) ",\n    ")), S_6, STATE_VARIABLE_U_10_45, &STATE_VARIABLE_U_11_47);
  func_24 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
  func_24(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) "[")), S_6, STATE_VARIABLE_U_11_47, &STATE_VARIABLE_U_1_56);
  {
    Var_57 = (MR_Word) MR_new_object(MR_Word, (4 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_57, 0) = ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_9[4]));
    MR_hl_field(0, Var_57, 1) = ((MR_Box) (parse_tree__parse_tree_out_pragma__mercury_format_item_foreign_proc_5_p_0_1));
    MR_hl_field(0, Var_57, 2) = ((MR_Box) ((MR_Integer) 1));
    MR_hl_field(0, Var_57, 3) = ((MR_Box) (TypeClassInfo_for_pt_output_53));
  }
  Var_59 = parse_tree__parse_tree_out_pragma__foreign_proc_attributes_to_strings_2_f_0(Attributes_10, ProgVarSet_14);
  func_25 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 25))));
  func_25(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_string_0)), ((MR_Box) (Var_57)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) (Var_59)), S_6, STATE_VARIABLE_U_1_56, &STATE_VARIABLE_U_2_60);
  func_26 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
  func_26(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) "]")), S_6, STATE_VARIABLE_U_2_60, &STATE_VARIABLE_U_12_48);
  func_27 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
  func_27(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) ",\n")), S_6, STATE_VARIABLE_U_12_48, &STATE_VARIABLE_U_13_50);
  C_Code_25 = ((MR_String) ((MR_hl_field(0, PragmaCode_16, 0))));
  func_28 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
  func_28(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) "\"")), S_6, STATE_VARIABLE_U_13_50, &STATE_VARIABLE_U_1_64);
  {
    Var_67 = (MR_Word) MR_new_object(MR_Word, (5 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_67, 0) = ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_9[0]));
    MR_hl_field(0, Var_67, 1) = ((MR_Box) (parse_tree__parse_tree_out_pragma__mercury_format_item_foreign_proc_5_p_0_2));
    MR_hl_field(0, Var_67, 2) = ((MR_Box) ((MR_Integer) 2));
    MR_hl_field(0, Var_67, 3) = ((MR_Box) (TypeClassInfo_for_pt_output_53));
    MR_hl_field(0, Var_67, 4) = S_6;
  }
  mercury__private_builtin__type_info_from_typeclass_info_3_p_0(TypeClassInfo_for_pt_output_53, (MR_Integer) 3, &TypeInfo_16_69);
  mercury__string__foldl_4_p_0(TypeInfo_16_69, Var_67, C_Code_25, STATE_VARIABLE_U_1_64, &STATE_VARIABLE_U_2_65);
  func_29 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
  func_29(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) "\"")), S_6, STATE_VARIABLE_U_2_65, &STATE_VARIABLE_U_14_51);
  func_30 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
  func_30(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) ").\n")), S_6, STATE_VARIABLE_U_14_51, STATE_VARIABLE_U_28);
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_102_111_114_101_105_103_110_95_112_114_111_99_95_118_97_114_115_95_95_91_51_93_95_48_7_p_0(
  MR_Word TypeClassInfo_for_pt_output_36,
  MR_Word Lang_1,
  MR_Word InstVarSet_3,
  MR_Word HeadVar__4_4,
  MR_Box HeadVar__5_5,
  MR_Box STATE_VARIABLE_U_0_6,
  MR_Box * STATE_VARIABLE_U_7)
{
  while (MR_TRUE)
  {
    // setup for model_det tailcalls optimized into a loop
    ;
    if ((HeadVar__4_4 == (MR_Word) ((MR_Unsigned) 0U)))
      *STATE_VARIABLE_U_7 = STATE_VARIABLE_U_0_6;
    else
    {
      MR_Word Var_18 = ((MR_Word) ((MR_hl_field(1, HeadVar__4_4, 0))));
      MR_Word Vars_19 = ((MR_Word) ((MR_hl_field(1, HeadVar__4_4, 1))));
      MR_String VarName_23 = ((MR_String) ((MR_hl_field(0, Var_18, 1))));
      MR_Word Mode_24 = ((MR_Word) ((MR_hl_field(0, Var_18, 2))));
      MR_Box STATE_VARIABLE_U_1_30;
      MR_Box STATE_VARIABLE_U_2_32;
      MR_Box STATE_VARIABLE_U_3_33;
      MR_Box STATE_VARIABLE_U_4_35;
      void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
      void MR_CALL (* func_1)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
      MR_Word next_value_of_HeadVar__4_4;
      MR_Box next_value_of_STATE_VARIABLE_U_0_6;

      func_0(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) (VarName_23)), HeadVar__5_5, STATE_VARIABLE_U_0_6, &STATE_VARIABLE_U_1_30);
      func_1 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
      func_1(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) ((MR_String) " :: ")), HeadVar__5_5, STATE_VARIABLE_U_1_30, &STATE_VARIABLE_U_2_32);
      parse_tree__parse_tree_out_inst__mercury_format_mode_6_p_0(TypeClassInfo_for_pt_output_36, Lang_1, InstVarSet_3, Mode_24, HeadVar__5_5, STATE_VARIABLE_U_2_32, &STATE_VARIABLE_U_3_33);
      if ((Vars_19 == (MR_Word) ((MR_Unsigned) 0U)))
        STATE_VARIABLE_U_4_35 = STATE_VARIABLE_U_3_33;
      else
      {
        void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));

        func_2(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) ((MR_String) ", ")), HeadVar__5_5, STATE_VARIABLE_U_3_33, &STATE_VARIABLE_U_4_35);
      }
      // direct tailcall eliminated
      ;
      next_value_of_HeadVar__4_4 = Vars_19;
      next_value_of_STATE_VARIABLE_U_0_6 = STATE_VARIABLE_U_4_35;
      HeadVar__4_4 = next_value_of_HeadVar__4_4;
      STATE_VARIABLE_U_0_6 = next_value_of_STATE_VARIABLE_U_0_6;
      continue;
    }
    break;
  }
}

MR_String MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_item_foreign_proc_to_string_2_f_0(
  MR_Word Lang_4,
  MR_Word FPInfo_5)
{
  MR_String Str_6;
  MR_Word State0_7;
  MR_Word State_8;

  State0_7 = mercury__string__builder__init_0_f_0();
  parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_105_116_101_109_95_102_111_114_101_105_103_110_95_112_114_111_99_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), Lang_4, FPInfo_5, State0_7, &State_8);
  Str_6 = mercury__string__builder__to_string_1_f_0(State_8);
  return Str_6;
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_105_116_101_109_95_102_111_114_101_105_103_110_95_112_114_111_99_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0_2(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box * wrapper_arg_3)
{
  MR_Box closure = closure_arg;
  MR_Word conv57_STATE_VARIABLE_U_10;

  parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_101_115_99_97_112_101_100_95_99_104_97_114_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0(((MR_Word) ((MR_hl_field(0, closure, 3)))), ((MR_Char) (MR_Word) wrapper_arg_1), ((MR_Word) (wrapper_arg_2)), &conv57_STATE_VARIABLE_U_10);
  *wrapper_arg_3 = ((MR_Box) (conv57_STATE_VARIABLE_U_10));
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_105_116_101_109_95_102_111_114_101_105_103_110_95_112_114_111_99_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4)
{
  MR_Box closure = closure_arg;

  parse_tree__parse_tree_output__add_string_4_p_0(((MR_Word) ((MR_hl_field(0, closure, 3)))), ((MR_String) (wrapper_arg_1)), wrapper_arg_2, wrapper_arg_3, wrapper_arg_4);
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_105_116_101_109_95_102_111_114_101_105_103_110_95_112_114_111_99_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_53,
  MR_Word Lang_7,
  MR_Word FPInfo_8,
  MR_Word STATE_VARIABLE_U_0_27,
  MR_Word * STATE_VARIABLE_U_28)
{
  MR_Word TypeInfo_16_69;
  MR_Word Attributes_10 = ((MR_Word) ((MR_hl_field(0, FPInfo_8, 0))));
  MR_Word PredName_11 = ((MR_Word) ((MR_hl_field(0, FPInfo_8, 1))));
  MR_Word PredOrFunc_12 = ((MR_Unsigned) ((MR_hl_field(0, FPInfo_8, 2))) & (MR_Integer) 1);
  MR_Word Vars0_13 = ((MR_Word) ((MR_hl_field(0, FPInfo_8, 3))));
  MR_Word ProgVarSet_14 = ((MR_Word) ((MR_hl_field(0, FPInfo_8, 4))));
  MR_Word InstVarSet_15 = ((MR_Word) ((MR_hl_field(0, FPInfo_8, 5))));
  MR_Word PragmaCode_16 = ((MR_Word) ((MR_hl_field(0, FPInfo_8, 6))));
  MR_Word ForeignLang_19;
  MR_String C_Code_25;
  MR_Word STATE_VARIABLE_U_1_30;
  MR_Word STATE_VARIABLE_U_2_31;
  MR_Word STATE_VARIABLE_U_3_33;
  MR_Word STATE_VARIABLE_U_4_34;
  MR_Word STATE_VARIABLE_U_10_45;
  MR_Word STATE_VARIABLE_U_11_47;
  MR_Word STATE_VARIABLE_U_12_48;
  MR_Word STATE_VARIABLE_U_13_50;
  MR_Word STATE_VARIABLE_U_14_51;
  MR_Word STATE_VARIABLE_U_1_56;
  MR_Word Var_57;
  MR_Word Var_59;
  MR_Word STATE_VARIABLE_U_2_60;
  MR_Word STATE_VARIABLE_U_1_64;
  MR_Word STATE_VARIABLE_U_2_65;
  MR_Word Var_67;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
  MR_Box conv1_STATE_VARIABLE_U_1_30;
  void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv3_STATE_VARIABLE_U_3_33;
  void MR_CALL (* func_45)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv46_STATE_VARIABLE_U_11_47;
  void MR_CALL (* func_47)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv48_STATE_VARIABLE_U_1_56;
  void MR_CALL (* func_49)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv50_STATE_VARIABLE_U_2_60;
  void MR_CALL (* func_51)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv52_STATE_VARIABLE_U_12_48;
  void MR_CALL (* func_53)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv54_STATE_VARIABLE_U_13_50;
  void MR_CALL (* func_55)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv56_STATE_VARIABLE_U_1_64;
  MR_Box conv58_STATE_VARIABLE_U_2_65;
  void MR_CALL (* func_59)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv60_STATE_VARIABLE_U_14_51;
  void MR_CALL (* func_61)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv62_STATE_VARIABLE_U_28;

  func_0(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) ":- pragma foreign_proc(")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_0_27)), &conv1_STATE_VARIABLE_U_1_30);
  STATE_VARIABLE_U_1_30 = ((MR_Word) (conv1_STATE_VARIABLE_U_1_30));
  ForeignLang_19 = parse_tree__prog_data_foreign__get_foreign_language_1_f_0(Attributes_10);
  parse_tree__parse_tree_out_misc__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_102_111_114_101_105_103_110_95_108_97_110_103_117_97_103_101_95_115_116_114_105_110_103_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0(TypeClassInfo_for_pt_output_53, ForeignLang_19, STATE_VARIABLE_U_1_30, &STATE_VARIABLE_U_2_31);
  func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
  func_2(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) ",\n    ")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_31)), &conv3_STATE_VARIABLE_U_3_33);
  STATE_VARIABLE_U_3_33 = ((MR_Word) (conv3_STATE_VARIABLE_U_3_33));
  parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_115_121_109_95_110_97_109_101_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0(TypeClassInfo_for_pt_output_53, PredName_11, STATE_VARIABLE_U_3_33, &STATE_VARIABLE_U_4_34);
  switch (PredOrFunc_12) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 1:
      {
        MR_Word Vars_20;
        MR_Word STATE_VARIABLE_U_7_40;
        MR_Word STATE_VARIABLE_U_8_42;
        MR_Word STATE_VARIABLE_U_9_43;
        MR_Word Var_157;
        MR_String VarName_161;
        MR_Word Mode_162;
        MR_Word STATE_VARIABLE_U_1_168;
        MR_Word STATE_VARIABLE_U_2_170;
        MR_Box conv4_Var_157;
        void MR_CALL (* func_21)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv22_STATE_VARIABLE_U_8_42;
        void MR_CALL (* func_23)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv24_STATE_VARIABLE_U_1_168;
        void MR_CALL (* func_25)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv26_STATE_VARIABLE_U_2_170;
        void MR_CALL (* func_27)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv28_STATE_VARIABLE_U_10_45;

        parse_tree__prog_util__pred_args_to_func_args_3_p_0((MR_Word) (&parse_tree__prog_data_foreign__parse_tree__prog_data_foreign__type_ctor_info_pragma_var_0), Vars0_13, &Vars_20, &conv4_Var_157);
        Var_157 = ((MR_Word) (conv4_Var_157));
        if ((Vars_20 == (MR_Word) ((MR_Unsigned) 0U)))
          STATE_VARIABLE_U_7_40 = STATE_VARIABLE_U_4_34;
        else
        {
          MR_Word STATE_VARIABLE_U_5_37;
          MR_Word STATE_VARIABLE_U_6_38;
          MR_Word Var_79;
          MR_Word Vars_80;
          MR_String VarName_83;
          MR_Word Mode_84;
          MR_Word STATE_VARIABLE_U_1_90;
          MR_Word STATE_VARIABLE_U_2_92;
          MR_Word STATE_VARIABLE_U_3_93;
          void MR_CALL (* func_5)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
          MR_Box conv6_STATE_VARIABLE_U_5_37;
          void MR_CALL (* func_7)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          MR_Box conv8_STATE_VARIABLE_U_1_90;
          void MR_CALL (* func_9)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          MR_Box conv10_STATE_VARIABLE_U_2_92;
          void MR_CALL (* func_19)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          MR_Box conv20_STATE_VARIABLE_U_7_40;

          func_5(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) "(")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_4_34)), &conv6_STATE_VARIABLE_U_5_37);
          STATE_VARIABLE_U_5_37 = ((MR_Word) (conv6_STATE_VARIABLE_U_5_37));
          Var_79 = ((MR_Word) ((MR_hl_field(1, Vars_20, 0))));
          Vars_80 = ((MR_Word) ((MR_hl_field(1, Vars_20, 1))));
          VarName_83 = ((MR_String) ((MR_hl_field(0, Var_79, 1))));
          Mode_84 = ((MR_Word) ((MR_hl_field(0, Var_79, 2))));
          func_7 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
          func_7(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) (VarName_83)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_5_37)), &conv8_STATE_VARIABLE_U_1_90);
          STATE_VARIABLE_U_1_90 = ((MR_Word) (conv8_STATE_VARIABLE_U_1_90));
          func_9 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
          func_9(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) " :: ")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_90)), &conv10_STATE_VARIABLE_U_2_92);
          STATE_VARIABLE_U_2_92 = ((MR_Word) (conv10_STATE_VARIABLE_U_2_92));
          parse_tree__parse_tree_out_inst__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_109_111_100_101_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_6_p_0(TypeClassInfo_for_pt_output_53, Lang_7, InstVarSet_15, Mode_84, STATE_VARIABLE_U_2_92, &STATE_VARIABLE_U_3_93);
          if ((Vars_80 == (MR_Word) ((MR_Unsigned) 0U)))
            STATE_VARIABLE_U_6_38 = STATE_VARIABLE_U_3_93;
          else
          {
            MR_Word STATE_VARIABLE_U_4_95;
            MR_Word Var_131;
            MR_Word Vars_132;
            MR_String VarName_135;
            MR_Word Mode_136;
            MR_Word STATE_VARIABLE_U_1_142;
            MR_Word STATE_VARIABLE_U_2_144;
            MR_Word STATE_VARIABLE_U_3_145;
            MR_Word STATE_VARIABLE_U_4_147;
            void MR_CALL (* func_11)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
            MR_Box conv12_STATE_VARIABLE_U_4_95;
            void MR_CALL (* func_13)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
            MR_Box conv14_STATE_VARIABLE_U_1_142;
            void MR_CALL (* func_15)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
            MR_Box conv16_STATE_VARIABLE_U_2_144;

            func_11(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_93)), &conv12_STATE_VARIABLE_U_4_95);
            STATE_VARIABLE_U_4_95 = ((MR_Word) (conv12_STATE_VARIABLE_U_4_95));
            Var_131 = ((MR_Word) ((MR_hl_field(1, Vars_80, 0))));
            Vars_132 = ((MR_Word) ((MR_hl_field(1, Vars_80, 1))));
            VarName_135 = ((MR_String) ((MR_hl_field(0, Var_131, 1))));
            Mode_136 = ((MR_Word) ((MR_hl_field(0, Var_131, 2))));
            func_13 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
            func_13(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) (VarName_135)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_4_95)), &conv14_STATE_VARIABLE_U_1_142);
            STATE_VARIABLE_U_1_142 = ((MR_Word) (conv14_STATE_VARIABLE_U_1_142));
            func_15 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
            func_15(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) " :: ")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_142)), &conv16_STATE_VARIABLE_U_2_144);
            STATE_VARIABLE_U_2_144 = ((MR_Word) (conv16_STATE_VARIABLE_U_2_144));
            parse_tree__parse_tree_out_inst__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_109_111_100_101_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_6_p_0(TypeClassInfo_for_pt_output_53, Lang_7, InstVarSet_15, Mode_136, STATE_VARIABLE_U_2_144, &STATE_VARIABLE_U_3_145);
            if ((Vars_132 == (MR_Word) ((MR_Unsigned) 0U)))
              STATE_VARIABLE_U_4_147 = STATE_VARIABLE_U_3_145;
            else
            {
              void MR_CALL (* func_17)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
              MR_Box conv18_STATE_VARIABLE_U_4_147;

              func_17(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_145)), &conv18_STATE_VARIABLE_U_4_147);
              STATE_VARIABLE_U_4_147 = ((MR_Word) (conv18_STATE_VARIABLE_U_4_147));
            }
            parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_102_111_114_101_105_103_110_95_112_114_111_99_95_118_97_114_115_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_95_95_91_51_93_95_48_7_p_0(TypeClassInfo_for_pt_output_53, Lang_7, InstVarSet_15, Vars_132, STATE_VARIABLE_U_4_147, &STATE_VARIABLE_U_6_38);
          }
          func_19 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
          func_19(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) ")")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_6_38)), &conv20_STATE_VARIABLE_U_7_40);
          STATE_VARIABLE_U_7_40 = ((MR_Word) (conv20_STATE_VARIABLE_U_7_40));
        }
        func_21 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
        func_21(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) " = (")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_7_40)), &conv22_STATE_VARIABLE_U_8_42);
        STATE_VARIABLE_U_8_42 = ((MR_Word) (conv22_STATE_VARIABLE_U_8_42));
        VarName_161 = ((MR_String) ((MR_hl_field(0, Var_157, 1))));
        Mode_162 = ((MR_Word) ((MR_hl_field(0, Var_157, 2))));
        func_23 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
        func_23(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) (VarName_161)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_8_42)), &conv24_STATE_VARIABLE_U_1_168);
        STATE_VARIABLE_U_1_168 = ((MR_Word) (conv24_STATE_VARIABLE_U_1_168));
        func_25 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
        func_25(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) " :: ")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_168)), &conv26_STATE_VARIABLE_U_2_170);
        STATE_VARIABLE_U_2_170 = ((MR_Word) (conv26_STATE_VARIABLE_U_2_170));
        parse_tree__parse_tree_out_inst__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_109_111_100_101_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_6_p_0(TypeClassInfo_for_pt_output_53, Lang_7, InstVarSet_15, Mode_162, STATE_VARIABLE_U_2_170, &STATE_VARIABLE_U_9_43);
        func_27 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
        func_27(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) ")")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_9_43)), &conv28_STATE_VARIABLE_U_10_45);
        STATE_VARIABLE_U_10_45 = ((MR_Word) (conv28_STATE_VARIABLE_U_10_45));
      }
      break;
    case (MR_Integer) 0:
      if ((Vars0_13 == (MR_Word) ((MR_Unsigned) 0U)))
        STATE_VARIABLE_U_10_45 = STATE_VARIABLE_U_4_34;
      else
      {
        MR_Word STATE_VARIABLE_U_5_262;
        MR_Word STATE_VARIABLE_U_6_263;
        MR_Word Var_265;
        MR_Word Vars_266;
        MR_String VarName_268;
        MR_Word Mode_269;
        MR_Word STATE_VARIABLE_U_1_271;
        MR_Word STATE_VARIABLE_U_2_273;
        MR_Word STATE_VARIABLE_U_3_274;
        void MR_CALL (* func_29)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
        MR_Box conv30_STATE_VARIABLE_U_5_262;
        void MR_CALL (* func_31)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv32_STATE_VARIABLE_U_1_271;
        void MR_CALL (* func_33)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv34_STATE_VARIABLE_U_2_273;
        void MR_CALL (* func_43)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv44_STATE_VARIABLE_U_10_45;

        func_29(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) "(")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_4_34)), &conv30_STATE_VARIABLE_U_5_262);
        STATE_VARIABLE_U_5_262 = ((MR_Word) (conv30_STATE_VARIABLE_U_5_262));
        Var_265 = ((MR_Word) ((MR_hl_field(1, Vars0_13, 0))));
        Vars_266 = ((MR_Word) ((MR_hl_field(1, Vars0_13, 1))));
        VarName_268 = ((MR_String) ((MR_hl_field(0, Var_265, 1))));
        Mode_269 = ((MR_Word) ((MR_hl_field(0, Var_265, 2))));
        func_31 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
        func_31(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) (VarName_268)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_5_262)), &conv32_STATE_VARIABLE_U_1_271);
        STATE_VARIABLE_U_1_271 = ((MR_Word) (conv32_STATE_VARIABLE_U_1_271));
        func_33 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
        func_33(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) " :: ")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_271)), &conv34_STATE_VARIABLE_U_2_273);
        STATE_VARIABLE_U_2_273 = ((MR_Word) (conv34_STATE_VARIABLE_U_2_273));
        parse_tree__parse_tree_out_inst__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_109_111_100_101_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_6_p_0(TypeClassInfo_for_pt_output_53, Lang_7, InstVarSet_15, Mode_269, STATE_VARIABLE_U_2_273, &STATE_VARIABLE_U_3_274);
        if ((Vars_266 == (MR_Word) ((MR_Unsigned) 0U)))
          STATE_VARIABLE_U_6_263 = STATE_VARIABLE_U_3_274;
        else
        {
          MR_Word STATE_VARIABLE_U_4_234;
          MR_Word Var_235;
          MR_Word Vars_236;
          MR_String VarName_238;
          MR_Word Mode_239;
          MR_Word STATE_VARIABLE_U_1_241;
          MR_Word STATE_VARIABLE_U_2_243;
          MR_Word STATE_VARIABLE_U_3_244;
          MR_Word STATE_VARIABLE_U_4_246;
          void MR_CALL (* func_35)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
          MR_Box conv36_STATE_VARIABLE_U_4_234;
          void MR_CALL (* func_37)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          MR_Box conv38_STATE_VARIABLE_U_1_241;
          void MR_CALL (* func_39)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          MR_Box conv40_STATE_VARIABLE_U_2_243;

          func_35(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_274)), &conv36_STATE_VARIABLE_U_4_234);
          STATE_VARIABLE_U_4_234 = ((MR_Word) (conv36_STATE_VARIABLE_U_4_234));
          Var_235 = ((MR_Word) ((MR_hl_field(1, Vars_266, 0))));
          Vars_236 = ((MR_Word) ((MR_hl_field(1, Vars_266, 1))));
          VarName_238 = ((MR_String) ((MR_hl_field(0, Var_235, 1))));
          Mode_239 = ((MR_Word) ((MR_hl_field(0, Var_235, 2))));
          func_37 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
          func_37(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) (VarName_238)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_4_234)), &conv38_STATE_VARIABLE_U_1_241);
          STATE_VARIABLE_U_1_241 = ((MR_Word) (conv38_STATE_VARIABLE_U_1_241));
          func_39 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
          func_39(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) " :: ")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_241)), &conv40_STATE_VARIABLE_U_2_243);
          STATE_VARIABLE_U_2_243 = ((MR_Word) (conv40_STATE_VARIABLE_U_2_243));
          parse_tree__parse_tree_out_inst__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_109_111_100_101_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_6_p_0(TypeClassInfo_for_pt_output_53, Lang_7, InstVarSet_15, Mode_239, STATE_VARIABLE_U_2_243, &STATE_VARIABLE_U_3_244);
          if ((Vars_236 == (MR_Word) ((MR_Unsigned) 0U)))
            STATE_VARIABLE_U_4_246 = STATE_VARIABLE_U_3_244;
          else
          {
            void MR_CALL (* func_41)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
            MR_Box conv42_STATE_VARIABLE_U_4_246;

            func_41(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_244)), &conv42_STATE_VARIABLE_U_4_246);
            STATE_VARIABLE_U_4_246 = ((MR_Word) (conv42_STATE_VARIABLE_U_4_246));
          }
          parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_102_111_114_101_105_103_110_95_112_114_111_99_95_118_97_114_115_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_95_95_91_51_93_95_48_7_p_0(TypeClassInfo_for_pt_output_53, Lang_7, InstVarSet_15, Vars_236, STATE_VARIABLE_U_4_246, &STATE_VARIABLE_U_6_263);
        }
        func_43 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
        func_43(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) ")")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_6_263)), &conv44_STATE_VARIABLE_U_10_45);
        STATE_VARIABLE_U_10_45 = ((MR_Word) (conv44_STATE_VARIABLE_U_10_45));
      }
      break;
  }
  func_45 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
  func_45(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) ",\n    ")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_10_45)), &conv46_STATE_VARIABLE_U_11_47);
  STATE_VARIABLE_U_11_47 = ((MR_Word) (conv46_STATE_VARIABLE_U_11_47));
  func_47 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
  func_47(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) "[")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_11_47)), &conv48_STATE_VARIABLE_U_1_56);
  STATE_VARIABLE_U_1_56 = ((MR_Word) (conv48_STATE_VARIABLE_U_1_56));
  {
    Var_57 = (MR_Word) MR_new_object(MR_Word, (4 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_57, 0) = ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_9[4]));
    MR_hl_field(0, Var_57, 1) = ((MR_Box) (parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_105_116_101_109_95_102_111_114_101_105_103_110_95_112_114_111_99_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0_1));
    MR_hl_field(0, Var_57, 2) = ((MR_Box) ((MR_Integer) 1));
    MR_hl_field(0, Var_57, 3) = ((MR_Box) (TypeClassInfo_for_pt_output_53));
  }
  Var_59 = parse_tree__parse_tree_out_pragma__foreign_proc_attributes_to_strings_2_f_0(Attributes_10, ProgVarSet_14);
  func_49 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 25))));
  func_49(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_string_0)), ((MR_Box) (Var_57)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) (Var_59)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_56)), &conv50_STATE_VARIABLE_U_2_60);
  STATE_VARIABLE_U_2_60 = ((MR_Word) (conv50_STATE_VARIABLE_U_2_60));
  func_51 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
  func_51(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) "]")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_60)), &conv52_STATE_VARIABLE_U_12_48);
  STATE_VARIABLE_U_12_48 = ((MR_Word) (conv52_STATE_VARIABLE_U_12_48));
  func_53 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
  func_53(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) ",\n")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_12_48)), &conv54_STATE_VARIABLE_U_13_50);
  STATE_VARIABLE_U_13_50 = ((MR_Word) (conv54_STATE_VARIABLE_U_13_50));
  C_Code_25 = ((MR_String) ((MR_hl_field(0, PragmaCode_16, 0))));
  func_55 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
  func_55(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) "\"")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_13_50)), &conv56_STATE_VARIABLE_U_1_64);
  STATE_VARIABLE_U_1_64 = ((MR_Word) (conv56_STATE_VARIABLE_U_1_64));
  {
    Var_67 = (MR_Word) MR_new_object(MR_Word, (5 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_67, 0) = ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_9[1]));
    MR_hl_field(0, Var_67, 1) = ((MR_Box) (parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_105_116_101_109_95_102_111_114_101_105_103_110_95_112_114_111_99_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0_2));
    MR_hl_field(0, Var_67, 2) = ((MR_Box) ((MR_Integer) 2));
    MR_hl_field(0, Var_67, 3) = ((MR_Box) (TypeClassInfo_for_pt_output_53));
    MR_hl_field(0, Var_67, 4) = NULL;
  }
  mercury__private_builtin__type_info_from_typeclass_info_3_p_0(TypeClassInfo_for_pt_output_53, (MR_Integer) 3, &TypeInfo_16_69);
  mercury__string__foldl_4_p_0(TypeInfo_16_69, Var_67, C_Code_25, ((MR_Box) (STATE_VARIABLE_U_1_64)), &conv58_STATE_VARIABLE_U_2_65);
  STATE_VARIABLE_U_2_65 = ((MR_Word) (conv58_STATE_VARIABLE_U_2_65));
  func_59 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
  func_59(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) "\"")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_65)), &conv60_STATE_VARIABLE_U_14_51);
  STATE_VARIABLE_U_14_51 = ((MR_Word) (conv60_STATE_VARIABLE_U_14_51));
  func_61 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
  func_61(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) ").\n")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_14_51)), &conv62_STATE_VARIABLE_U_28);
  *STATE_VARIABLE_U_28 = ((MR_Word) (conv62_STATE_VARIABLE_U_28));
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_102_111_114_101_105_103_110_95_112_114_111_99_95_118_97_114_115_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_95_95_91_51_93_95_48_7_p_0(
  MR_Word TypeClassInfo_for_pt_output_36,
  MR_Word Lang_1,
  MR_Word InstVarSet_3,
  MR_Word HeadVar__4_4,
  MR_Word STATE_VARIABLE_U_0_6,
  MR_Word * STATE_VARIABLE_U_7)
{
  while (MR_TRUE)
  {
    // setup for model_det tailcalls optimized into a loop
    ;
    if ((HeadVar__4_4 == (MR_Word) ((MR_Unsigned) 0U)))
      *STATE_VARIABLE_U_7 = STATE_VARIABLE_U_0_6;
    else
    {
      MR_Word Var_18 = ((MR_Word) ((MR_hl_field(1, HeadVar__4_4, 0))));
      MR_Word Vars_19 = ((MR_Word) ((MR_hl_field(1, HeadVar__4_4, 1))));
      MR_String VarName_23 = ((MR_String) ((MR_hl_field(0, Var_18, 1))));
      MR_Word Mode_24 = ((MR_Word) ((MR_hl_field(0, Var_18, 2))));
      MR_Word STATE_VARIABLE_U_1_30;
      MR_Word STATE_VARIABLE_U_2_32;
      MR_Word STATE_VARIABLE_U_3_33;
      MR_Word STATE_VARIABLE_U_4_35;
      void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
      MR_Box conv1_STATE_VARIABLE_U_1_30;
      void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
      MR_Box conv3_STATE_VARIABLE_U_2_32;
      MR_Word next_value_of_HeadVar__4_4;
      MR_Word next_value_of_STATE_VARIABLE_U_0_6;

      func_0(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) (VarName_23)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_0_6)), &conv1_STATE_VARIABLE_U_1_30);
      STATE_VARIABLE_U_1_30 = ((MR_Word) (conv1_STATE_VARIABLE_U_1_30));
      func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
      func_2(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) ((MR_String) " :: ")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_30)), &conv3_STATE_VARIABLE_U_2_32);
      STATE_VARIABLE_U_2_32 = ((MR_Word) (conv3_STATE_VARIABLE_U_2_32));
      parse_tree__parse_tree_out_inst__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_109_111_100_101_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_6_p_0(TypeClassInfo_for_pt_output_36, Lang_1, InstVarSet_3, Mode_24, STATE_VARIABLE_U_2_32, &STATE_VARIABLE_U_3_33);
      if ((Vars_19 == (MR_Word) ((MR_Unsigned) 0U)))
        STATE_VARIABLE_U_4_35 = STATE_VARIABLE_U_3_33;
      else
      {
        void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
        MR_Box conv5_STATE_VARIABLE_U_4_35;

        func_4(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_33)), &conv5_STATE_VARIABLE_U_4_35);
        STATE_VARIABLE_U_4_35 = ((MR_Word) (conv5_STATE_VARIABLE_U_4_35));
      }
      // direct tailcall eliminated
      ;
      next_value_of_HeadVar__4_4 = Vars_19;
      next_value_of_STATE_VARIABLE_U_0_6 = STATE_VARIABLE_U_4_35;
      HeadVar__4_4 = next_value_of_HeadVar__4_4;
      STATE_VARIABLE_U_0_6 = next_value_of_STATE_VARIABLE_U_0_6;
      continue;
    }
    break;
  }
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_output_item_foreign_proc_5_p_0(
  MR_Word Stream_6,
  MR_Word Lang_7,
  MR_Word FPInfo_8)
{
  parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_105_116_101_109_95_102_111_114_101_105_103_110_95_112_114_111_99_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[1]), Stream_6, Lang_7, FPInfo_8);
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_105_116_101_109_95_102_111_114_101_105_103_110_95_112_114_111_99_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0_2(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box * wrapper_arg_3)
{
  MR_Box closure = closure_arg;

  parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_101_115_99_97_112_101_100_95_99_104_97_114_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0(((MR_Word) ((MR_hl_field(0, closure, 3)))), ((MR_Word) ((MR_hl_field(0, closure, 4)))), ((MR_Char) (MR_Word) wrapper_arg_1));
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_105_116_101_109_95_102_111_114_101_105_103_110_95_112_114_111_99_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4)
{
  MR_Box closure = closure_arg;

  parse_tree__parse_tree_output__add_string_4_p_0(((MR_Word) ((MR_hl_field(0, closure, 3)))), ((MR_String) (wrapper_arg_1)), wrapper_arg_2, wrapper_arg_3, wrapper_arg_4);
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_105_116_101_109_95_102_111_114_101_105_103_110_95_112_114_111_99_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_53,
  MR_Word S_6,
  MR_Word Lang_7,
  MR_Word FPInfo_8)
{
  MR_Word TypeInfo_16_69;
  MR_Word Attributes_10 = ((MR_Word) ((MR_hl_field(0, FPInfo_8, 0))));
  MR_Word PredName_11 = ((MR_Word) ((MR_hl_field(0, FPInfo_8, 1))));
  MR_Word PredOrFunc_12 = ((MR_Unsigned) ((MR_hl_field(0, FPInfo_8, 2))) & (MR_Integer) 1);
  MR_Word Vars0_13 = ((MR_Word) ((MR_hl_field(0, FPInfo_8, 3))));
  MR_Word ProgVarSet_14 = ((MR_Word) ((MR_hl_field(0, FPInfo_8, 4))));
  MR_Word InstVarSet_15 = ((MR_Word) ((MR_hl_field(0, FPInfo_8, 5))));
  MR_Word PragmaCode_16 = ((MR_Word) ((MR_hl_field(0, FPInfo_8, 6))));
  MR_Word ForeignLang_19;
  MR_String C_Code_25;
  MR_Word Var_57;
  MR_Word Var_59;
  MR_Word Var_67;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
  MR_Box conv1_STATE_VARIABLE_U_1_30;
  void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv3_STATE_VARIABLE_U_3_33;
  void MR_CALL (* func_45)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv46_STATE_VARIABLE_U_11_47;
  void MR_CALL (* func_47)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv48_STATE_VARIABLE_U_1_56;
  void MR_CALL (* func_49)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv50_STATE_VARIABLE_U_2_60;
  void MR_CALL (* func_51)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv52_STATE_VARIABLE_U_12_48;
  void MR_CALL (* func_53)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv54_STATE_VARIABLE_U_13_50;
  void MR_CALL (* func_55)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv56_STATE_VARIABLE_U_1_64;
  MR_Box conv57_STATE_VARIABLE_U_2_65;
  void MR_CALL (* func_58)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv59_STATE_VARIABLE_U_14_51;
  void MR_CALL (* func_60)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv61_STATE_VARIABLE_U_28;

  func_0(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) ":- pragma foreign_proc(")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv1_STATE_VARIABLE_U_1_30);
  ForeignLang_19 = parse_tree__prog_data_foreign__get_foreign_language_1_f_0(Attributes_10);
  parse_tree__parse_tree_out_misc__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_102_111_114_101_105_103_110_95_108_97_110_103_117_97_103_101_95_115_116_114_105_110_103_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0(TypeClassInfo_for_pt_output_53, ForeignLang_19, S_6);
  func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
  func_2(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) ",\n    ")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv3_STATE_VARIABLE_U_3_33);
  parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_115_121_109_95_110_97_109_101_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0(TypeClassInfo_for_pt_output_53, PredName_11, S_6);
  switch (PredOrFunc_12) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 1:
      {
        MR_Word Vars_20;
        MR_Word Var_157;
        MR_String VarName_161;
        MR_Word Mode_162;
        MR_Box conv4_Var_157;
        void MR_CALL (* func_21)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv22_STATE_VARIABLE_U_8_42;
        void MR_CALL (* func_23)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv24_STATE_VARIABLE_U_1_168;
        void MR_CALL (* func_25)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv26_STATE_VARIABLE_U_2_170;
        void MR_CALL (* func_27)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv28_STATE_VARIABLE_U_10_45;

        parse_tree__prog_util__pred_args_to_func_args_3_p_0((MR_Word) (&parse_tree__prog_data_foreign__parse_tree__prog_data_foreign__type_ctor_info_pragma_var_0), Vars0_13, &Vars_20, &conv4_Var_157);
        Var_157 = ((MR_Word) (conv4_Var_157));
        if (!((Vars_20 == (MR_Word) ((MR_Unsigned) 0U))))
        {
          MR_Word Var_79;
          MR_Word Vars_80;
          MR_String VarName_83;
          MR_Word Mode_84;
          void MR_CALL (* func_5)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
          MR_Box conv6_STATE_VARIABLE_U_5_37;
          void MR_CALL (* func_7)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          MR_Box conv8_STATE_VARIABLE_U_1_90;
          void MR_CALL (* func_9)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          MR_Box conv10_STATE_VARIABLE_U_2_92;
          void MR_CALL (* func_19)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          MR_Box conv20_STATE_VARIABLE_U_7_40;

          func_5(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) "(")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv6_STATE_VARIABLE_U_5_37);
          Var_79 = ((MR_Word) ((MR_hl_field(1, Vars_20, 0))));
          Vars_80 = ((MR_Word) ((MR_hl_field(1, Vars_20, 1))));
          VarName_83 = ((MR_String) ((MR_hl_field(0, Var_79, 1))));
          Mode_84 = ((MR_Word) ((MR_hl_field(0, Var_79, 2))));
          func_7 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
          func_7(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) (VarName_83)), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv8_STATE_VARIABLE_U_1_90);
          func_9 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
          func_9(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) " :: ")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv10_STATE_VARIABLE_U_2_92);
          parse_tree__parse_tree_out_inst__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_109_111_100_101_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_6_p_0(TypeClassInfo_for_pt_output_53, Lang_7, InstVarSet_15, Mode_84, S_6);
          if (!((Vars_80 == (MR_Word) ((MR_Unsigned) 0U))))
          {
            MR_Word Var_131;
            MR_Word Vars_132;
            MR_String VarName_135;
            MR_Word Mode_136;
            void MR_CALL (* func_11)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
            MR_Box conv12_STATE_VARIABLE_U_4_95;
            void MR_CALL (* func_13)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
            MR_Box conv14_STATE_VARIABLE_U_1_142;
            void MR_CALL (* func_15)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
            MR_Box conv16_STATE_VARIABLE_U_2_144;

            func_11(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv12_STATE_VARIABLE_U_4_95);
            Var_131 = ((MR_Word) ((MR_hl_field(1, Vars_80, 0))));
            Vars_132 = ((MR_Word) ((MR_hl_field(1, Vars_80, 1))));
            VarName_135 = ((MR_String) ((MR_hl_field(0, Var_131, 1))));
            Mode_136 = ((MR_Word) ((MR_hl_field(0, Var_131, 2))));
            func_13 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
            func_13(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) (VarName_135)), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv14_STATE_VARIABLE_U_1_142);
            func_15 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
            func_15(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) " :: ")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv16_STATE_VARIABLE_U_2_144);
            parse_tree__parse_tree_out_inst__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_109_111_100_101_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_6_p_0(TypeClassInfo_for_pt_output_53, Lang_7, InstVarSet_15, Mode_136, S_6);
            if (!((Vars_132 == (MR_Word) ((MR_Unsigned) 0U))))
            {
              void MR_CALL (* func_17)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
              MR_Box conv18_STATE_VARIABLE_U_4_147;

              func_17(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv18_STATE_VARIABLE_U_4_147);
            }
            parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_102_111_114_101_105_103_110_95_112_114_111_99_95_118_97_114_115_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_95_95_91_51_93_95_48_7_p_0(TypeClassInfo_for_pt_output_53, Lang_7, InstVarSet_15, Vars_132, S_6);
          }
          func_19 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
          func_19(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) ")")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv20_STATE_VARIABLE_U_7_40);
        }
        func_21 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
        func_21(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) " = (")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv22_STATE_VARIABLE_U_8_42);
        VarName_161 = ((MR_String) ((MR_hl_field(0, Var_157, 1))));
        Mode_162 = ((MR_Word) ((MR_hl_field(0, Var_157, 2))));
        func_23 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
        func_23(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) (VarName_161)), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv24_STATE_VARIABLE_U_1_168);
        func_25 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
        func_25(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) " :: ")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv26_STATE_VARIABLE_U_2_170);
        parse_tree__parse_tree_out_inst__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_109_111_100_101_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_6_p_0(TypeClassInfo_for_pt_output_53, Lang_7, InstVarSet_15, Mode_162, S_6);
        func_27 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
        func_27(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) ")")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv28_STATE_VARIABLE_U_10_45);
      }
      break;
    case (MR_Integer) 0:
      if (!((Vars0_13 == (MR_Word) ((MR_Unsigned) 0U))))
      {
        MR_Word Var_265;
        MR_Word Vars_266;
        MR_String VarName_268;
        MR_Word Mode_269;
        void MR_CALL (* func_29)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
        MR_Box conv30_STATE_VARIABLE_U_5_262;
        void MR_CALL (* func_31)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv32_STATE_VARIABLE_U_1_271;
        void MR_CALL (* func_33)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv34_STATE_VARIABLE_U_2_273;
        void MR_CALL (* func_43)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv44_STATE_VARIABLE_U_10_45;

        func_29(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) "(")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv30_STATE_VARIABLE_U_5_262);
        Var_265 = ((MR_Word) ((MR_hl_field(1, Vars0_13, 0))));
        Vars_266 = ((MR_Word) ((MR_hl_field(1, Vars0_13, 1))));
        VarName_268 = ((MR_String) ((MR_hl_field(0, Var_265, 1))));
        Mode_269 = ((MR_Word) ((MR_hl_field(0, Var_265, 2))));
        func_31 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
        func_31(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) (VarName_268)), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv32_STATE_VARIABLE_U_1_271);
        func_33 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
        func_33(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) " :: ")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv34_STATE_VARIABLE_U_2_273);
        parse_tree__parse_tree_out_inst__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_109_111_100_101_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_6_p_0(TypeClassInfo_for_pt_output_53, Lang_7, InstVarSet_15, Mode_269, S_6);
        if (!((Vars_266 == (MR_Word) ((MR_Unsigned) 0U))))
        {
          MR_Word Var_235;
          MR_Word Vars_236;
          MR_String VarName_238;
          MR_Word Mode_239;
          void MR_CALL (* func_35)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
          MR_Box conv36_STATE_VARIABLE_U_4_234;
          void MR_CALL (* func_37)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          MR_Box conv38_STATE_VARIABLE_U_1_241;
          void MR_CALL (* func_39)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          MR_Box conv40_STATE_VARIABLE_U_2_243;

          func_35(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv36_STATE_VARIABLE_U_4_234);
          Var_235 = ((MR_Word) ((MR_hl_field(1, Vars_266, 0))));
          Vars_236 = ((MR_Word) ((MR_hl_field(1, Vars_266, 1))));
          VarName_238 = ((MR_String) ((MR_hl_field(0, Var_235, 1))));
          Mode_239 = ((MR_Word) ((MR_hl_field(0, Var_235, 2))));
          func_37 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
          func_37(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) (VarName_238)), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv38_STATE_VARIABLE_U_1_241);
          func_39 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
          func_39(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) " :: ")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv40_STATE_VARIABLE_U_2_243);
          parse_tree__parse_tree_out_inst__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_109_111_100_101_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_6_p_0(TypeClassInfo_for_pt_output_53, Lang_7, InstVarSet_15, Mode_239, S_6);
          if (!((Vars_236 == (MR_Word) ((MR_Unsigned) 0U))))
          {
            void MR_CALL (* func_41)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
            MR_Box conv42_STATE_VARIABLE_U_4_246;

            func_41(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv42_STATE_VARIABLE_U_4_246);
          }
          parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_102_111_114_101_105_103_110_95_112_114_111_99_95_118_97_114_115_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_95_95_91_51_93_95_48_7_p_0(TypeClassInfo_for_pt_output_53, Lang_7, InstVarSet_15, Vars_236, S_6);
        }
        func_43 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
        func_43(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) ")")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv44_STATE_VARIABLE_U_10_45);
      }
      break;
  }
  func_45 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
  func_45(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) ",\n    ")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv46_STATE_VARIABLE_U_11_47);
  func_47 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
  func_47(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) "[")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv48_STATE_VARIABLE_U_1_56);
  {
    Var_57 = (MR_Word) MR_new_object(MR_Word, (4 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_57, 0) = ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_9[4]));
    MR_hl_field(0, Var_57, 1) = ((MR_Box) (parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_105_116_101_109_95_102_111_114_101_105_103_110_95_112_114_111_99_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0_1));
    MR_hl_field(0, Var_57, 2) = ((MR_Box) ((MR_Integer) 1));
    MR_hl_field(0, Var_57, 3) = ((MR_Box) (TypeClassInfo_for_pt_output_53));
  }
  Var_59 = parse_tree__parse_tree_out_pragma__foreign_proc_attributes_to_strings_2_f_0(Attributes_10, ProgVarSet_14);
  func_49 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 25))));
  func_49(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_string_0)), ((MR_Box) (Var_57)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) (Var_59)), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv50_STATE_VARIABLE_U_2_60);
  func_51 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
  func_51(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) "]")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv52_STATE_VARIABLE_U_12_48);
  func_53 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
  func_53(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) ",\n")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv54_STATE_VARIABLE_U_13_50);
  C_Code_25 = ((MR_String) ((MR_hl_field(0, PragmaCode_16, 0))));
  func_55 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
  func_55(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) "\"")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv56_STATE_VARIABLE_U_1_64);
  {
    Var_67 = (MR_Word) MR_new_object(MR_Word, (5 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_67, 0) = ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_9[3]));
    MR_hl_field(0, Var_67, 1) = ((MR_Box) (parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_105_116_101_109_95_102_111_114_101_105_103_110_95_112_114_111_99_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0_2));
    MR_hl_field(0, Var_67, 2) = ((MR_Box) ((MR_Integer) 2));
    MR_hl_field(0, Var_67, 3) = ((MR_Box) (TypeClassInfo_for_pt_output_53));
    MR_hl_field(0, Var_67, 4) = ((MR_Box) (S_6));
  }
  mercury__private_builtin__type_info_from_typeclass_info_3_p_0(TypeClassInfo_for_pt_output_53, (MR_Integer) 3, &TypeInfo_16_69);
  mercury__string__foldl_4_p_0(TypeInfo_16_69, Var_67, C_Code_25, ((MR_Box) ((MR_Integer) 0)), &conv57_STATE_VARIABLE_U_2_65);
  func_58 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
  func_58(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) "\"")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv59_STATE_VARIABLE_U_14_51);
  func_60 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_53, 0)), 6))));
  func_60(((MR_Box) (TypeClassInfo_for_pt_output_53)), ((MR_Box) ((MR_String) ").\n")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv61_STATE_VARIABLE_U_28);
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_102_111_114_101_105_103_110_95_112_114_111_99_95_118_97_114_115_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_95_95_91_51_93_95_48_7_p_0(
  MR_Word TypeClassInfo_for_pt_output_36,
  MR_Word Lang_1,
  MR_Word InstVarSet_3,
  MR_Word HeadVar__4_4,
  MR_Word HeadVar__5_5)
{
  while (MR_TRUE)
  {
    // setup for model_det tailcalls optimized into a loop
    ;
    if (!((HeadVar__4_4 == (MR_Word) ((MR_Unsigned) 0U))))
    {
      MR_Word Var_18 = ((MR_Word) ((MR_hl_field(1, HeadVar__4_4, 0))));
      MR_Word Vars_19 = ((MR_Word) ((MR_hl_field(1, HeadVar__4_4, 1))));
      MR_String VarName_23 = ((MR_String) ((MR_hl_field(0, Var_18, 1))));
      MR_Word Mode_24 = ((MR_Word) ((MR_hl_field(0, Var_18, 2))));
      void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
      MR_Box conv1_STATE_VARIABLE_U_1_30;
      void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
      MR_Box conv3_STATE_VARIABLE_U_2_32;
      MR_Word next_value_of_HeadVar__4_4;

      func_0(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) (VarName_23)), ((MR_Box) (HeadVar__5_5)), ((MR_Box) ((MR_Integer) 0)), &conv1_STATE_VARIABLE_U_1_30);
      func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
      func_2(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) ((MR_String) " :: ")), ((MR_Box) (HeadVar__5_5)), ((MR_Box) ((MR_Integer) 0)), &conv3_STATE_VARIABLE_U_2_32);
      parse_tree__parse_tree_out_inst__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_109_111_100_101_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_6_p_0(TypeClassInfo_for_pt_output_36, Lang_1, InstVarSet_3, Mode_24, HeadVar__5_5);
      if (!((Vars_19 == (MR_Word) ((MR_Unsigned) 0U))))
      {
        void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
        MR_Box conv5_STATE_VARIABLE_U_4_35;

        func_4(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) (HeadVar__5_5)), ((MR_Box) ((MR_Integer) 0)), &conv5_STATE_VARIABLE_U_4_35);
      }
      // direct tailcall eliminated
      ;
      next_value_of_HeadVar__4_4 = Vars_19;
      HeadVar__4_4 = next_value_of_HeadVar__4_4;
      continue;
    }
    break;
  }
}

static MR_Word MR_CALL 
parse_tree__parse_tree_out_pragma__foreign_proc_attributes_to_strings_2_f_0(
  MR_Word Attrs_4,
  MR_Word VarSet_5)
{
  MR_Word StringList_6;
  MR_Word MayCallMercury_7;
  MR_Word ThreadSafe_8;
  MR_Word TabledForIO_9;
  MR_Word Purity_10;
  MR_Word Terminates_11;
  MR_Word UserSharing_12;
  MR_Word OrdinaryDespiteDetism_13;
  MR_Word Exceptions_14;
  MR_Word MayModifyTrail_15;
  MR_Word MayCallMM_Tabled_16;
  MR_Word BoxPolicy_17;
  MR_Word AffectsLiveness_18;
  MR_Word AllocatesMemory_19;
  MR_Word RegistersRoots_20;
  MR_Word RefersToLldsStack_21;
  MR_Word CallStdOutRegs_22;
  MR_Word MaybeMayDuplicate_23;
  MR_Word MaybeMayExportBody_24;
  MR_Word ForSpecificBackend_25;
  MR_String MayCallMercuryStr_26;
  MR_String ThreadSafeStr_27;
  MR_String TabledForIOStr_28;
  MR_Word PurityStrList_29;
  MR_Word TerminatesStrList_30;
  MR_Word UserSharingStrList_34;
  MR_Word OrdinaryDespiteDetismStrList_35;
  MR_Word ExceptionsStrList_36;
  MR_Word MayModifyTrailStrList_37;
  MR_Word MayCallMM_TabledStrList_38;
  MR_Word BoxPolicyStrList_39;
  MR_Word AffectsLivenessStrList_40;
  MR_Word AllocatesMemoryStrList_41;
  MR_Word RegistersRootsStrList_42;
  MR_Word RefersToLldsStackList_43;
  MR_Word CallStdOutRegsList_44;
  MR_Word MayDuplicateStrList_46;
  MR_Word MayExportBodyStrList_48;
  MR_Word ForSpecificBackendList_49;
  MR_Word Var_107;
  MR_Word Var_108;
  MR_Word Var_109;
  MR_Word Var_110;
  MR_Word Var_111;
  MR_Word Var_112;
  MR_Word Var_113;
  MR_Word Var_114;
  MR_Word Var_115;
  MR_Word Var_116;
  MR_Word Var_117;
  MR_Word Var_118;
  MR_Word Var_119;
  MR_Word Var_120;
  MR_Word Var_121;
  MR_Word Var_122;
  MR_Word Var_123;

  MayCallMercury_7 = parse_tree__prog_data_foreign__get_may_call_mercury_1_f_0(Attrs_4);
  ThreadSafe_8 = parse_tree__prog_data_foreign__get_thread_safe_1_f_0(Attrs_4);
  TabledForIO_9 = parse_tree__prog_data_foreign__get_tabled_for_io_1_f_0(Attrs_4);
  Purity_10 = parse_tree__prog_data_foreign__get_purity_1_f_0(Attrs_4);
  Terminates_11 = parse_tree__prog_data_foreign__get_terminates_1_f_0(Attrs_4);
  UserSharing_12 = parse_tree__prog_data_foreign__get_user_annotated_sharing_1_f_0(Attrs_4);
  OrdinaryDespiteDetism_13 = parse_tree__prog_data_foreign__get_ordinary_despite_detism_1_f_0(Attrs_4);
  Exceptions_14 = parse_tree__prog_data_foreign__get_may_throw_exception_1_f_0(Attrs_4);
  MayModifyTrail_15 = parse_tree__prog_data_foreign__get_may_modify_trail_1_f_0(Attrs_4);
  MayCallMM_Tabled_16 = parse_tree__prog_data_foreign__get_may_call_mm_tabled_1_f_0(Attrs_4);
  BoxPolicy_17 = parse_tree__prog_data_foreign__get_box_policy_1_f_0(Attrs_4);
  AffectsLiveness_18 = parse_tree__prog_data_foreign__get_affects_liveness_1_f_0(Attrs_4);
  AllocatesMemory_19 = parse_tree__prog_data_foreign__get_allocates_memory_1_f_0(Attrs_4);
  RegistersRoots_20 = parse_tree__prog_data_foreign__get_registers_roots_1_f_0(Attrs_4);
  RefersToLldsStack_21 = parse_tree__prog_data_foreign__get_refers_to_llds_stack_1_f_0(Attrs_4);
  CallStdOutRegs_22 = parse_tree__prog_data_foreign__get_call_std_out_regs_1_f_0(Attrs_4);
  MaybeMayDuplicate_23 = parse_tree__prog_data_foreign__get_may_duplicate_1_f_0(Attrs_4);
  MaybeMayExportBody_24 = parse_tree__prog_data_foreign__get_may_export_body_1_f_0(Attrs_4);
  ForSpecificBackend_25 = parse_tree__prog_data_foreign__get_for_specific_backend_1_f_0(Attrs_4);
  switch (MayCallMercury_7) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 0:
      MayCallMercuryStr_26 = (MR_String) "may_call_mercury";
      break;
    case (MR_Integer) 1:
      MayCallMercuryStr_26 = (MR_String) "will_not_call_mercury";
      break;
  }
  switch (ThreadSafe_8) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 2:
      ThreadSafeStr_27 = (MR_String) "maybe_thread_safe";
      break;
    case (MR_Integer) 0:
      ThreadSafeStr_27 = (MR_String) "not_thread_safe";
      break;
    case (MR_Integer) 1:
      ThreadSafeStr_27 = (MR_String) "thread_safe";
      break;
  }
  TabledForIOStr_28 = ((&parse_tree__parse_tree_out_pragma_vector_common_10[9 + TabledForIO_9]))->parse_tree__parse_tree_out_pragma__vector_common_type_10_0__vct_10_f_0;
  switch (Purity_10) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 2:
      PurityStrList_29 = (MR_Word) ((MR_Unsigned) 0U);
      break;
    case (MR_Integer) 0:
      PurityStrList_29 = (MR_Word) (MR_mkword(1, &parse_tree__parse_tree_out_pragma_scalar_common_4[2]));
      break;
    case (MR_Integer) 1:
      PurityStrList_29 = (MR_Word) (MR_mkword(1, &parse_tree__parse_tree_out_pragma_scalar_common_4[3]));
      break;
  }
  switch (Terminates_11) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 2:
      TerminatesStrList_30 = (MR_Word) ((MR_Unsigned) 0U);
      break;
    case (MR_Integer) 1:
      TerminatesStrList_30 = (MR_Word) (MR_mkword(1, &parse_tree__parse_tree_out_pragma_scalar_common_4[4]));
      break;
    case (MR_Integer) 0:
      TerminatesStrList_30 = (MR_Word) (MR_mkword(1, &parse_tree__parse_tree_out_pragma_scalar_common_4[5]));
      break;
  }
  if ((UserSharing_12 == (MR_Word) ((MR_Unsigned) 0U)))
    UserSharingStrList_34 = (MR_Word) ((MR_Unsigned) 0U);
  else
  {
    MR_Word Sharing_31 = ((MR_Word) ((MR_hl_field(1, UserSharing_12, 0))));
    MR_Word MaybeTypes_32 = ((MR_Word) ((MR_hl_field(1, UserSharing_12, 1))));
    MR_String String_33;

    String_33 = parse_tree__parse_tree_out_pragma__user_annotated_sharing_to_string_3_f_0(VarSet_5, Sharing_31, MaybeTypes_32);
    {
      UserSharingStrList_34 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
      MR_hl_field(1, UserSharingStrList_34, 0) = ((MR_Box) (String_33));
      MR_hl_field(1, UserSharingStrList_34, 1) = ((MR_Box) ((MR_Unsigned) 0U));
    }
  }
  switch (OrdinaryDespiteDetism_13) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 0:
      OrdinaryDespiteDetismStrList_35 = (MR_Word) ((MR_Unsigned) 0U);
      break;
    case (MR_Integer) 1:
      OrdinaryDespiteDetismStrList_35 = (MR_Word) (MR_mkword(1, &parse_tree__parse_tree_out_pragma_scalar_common_4[6]));
      break;
  }
  switch (Exceptions_14) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 1:
      ExceptionsStrList_36 = (MR_Word) ((MR_Unsigned) 0U);
      break;
    case (MR_Integer) 0:
      ExceptionsStrList_36 = (MR_Word) (MR_mkword(1, &parse_tree__parse_tree_out_pragma_scalar_common_4[7]));
      break;
  }
  switch (MayModifyTrail_15) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 0:
      MayModifyTrailStrList_37 = (MR_Word) (MR_mkword(1, &parse_tree__parse_tree_out_pragma_scalar_common_4[8]));
      break;
    case (MR_Integer) 1:
      MayModifyTrailStrList_37 = (MR_Word) (MR_mkword(1, &parse_tree__parse_tree_out_pragma_scalar_common_4[9]));
      break;
  }
  switch (MayCallMM_Tabled_16) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 2:
      MayCallMM_TabledStrList_38 = (MR_Word) ((MR_Unsigned) 0U);
      break;
    case (MR_Integer) 0:
      MayCallMM_TabledStrList_38 = (MR_Word) (MR_mkword(1, &parse_tree__parse_tree_out_pragma_scalar_common_4[10]));
      break;
    case (MR_Integer) 1:
      MayCallMM_TabledStrList_38 = (MR_Word) (MR_mkword(1, &parse_tree__parse_tree_out_pragma_scalar_common_4[11]));
      break;
  }
  switch (BoxPolicy_17) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 1:
      BoxPolicyStrList_39 = (MR_Word) (MR_mkword(1, &parse_tree__parse_tree_out_pragma_scalar_common_4[12]));
      break;
    case (MR_Integer) 0:
      BoxPolicyStrList_39 = (MR_Word) ((MR_Unsigned) 0U);
      break;
  }
  switch (AffectsLiveness_18) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 0:
      AffectsLivenessStrList_40 = (MR_Word) (MR_mkword(1, &parse_tree__parse_tree_out_pragma_scalar_common_4[13]));
      break;
    case (MR_Integer) 2:
      AffectsLivenessStrList_40 = (MR_Word) ((MR_Unsigned) 0U);
      break;
    case (MR_Integer) 1:
      AffectsLivenessStrList_40 = (MR_Word) (MR_mkword(1, &parse_tree__parse_tree_out_pragma_scalar_common_4[14]));
      break;
  }
  AllocatesMemoryStrList_41 = ((&parse_tree__parse_tree_out_pragma_vector_common_12[0 + AllocatesMemory_19]))->parse_tree__parse_tree_out_pragma__vector_common_type_12_0__vct_12_f_0;
  RegistersRootsStrList_42 = ((&parse_tree__parse_tree_out_pragma_vector_common_12[4 + RegistersRoots_20]))->parse_tree__parse_tree_out_pragma__vector_common_type_12_0__vct_12_f_0;
  switch (RefersToLldsStack_21) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 0:
      RefersToLldsStackList_43 = (MR_Word) ((MR_Unsigned) 0U);
      break;
    case (MR_Integer) 1:
      RefersToLldsStackList_43 = (MR_Word) (MR_mkword(1, &parse_tree__parse_tree_out_pragma_scalar_common_4[21]));
      break;
  }
  switch (CallStdOutRegs_22) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 1:
      CallStdOutRegsList_44 = (MR_Word) (MR_mkword(1, &parse_tree__parse_tree_out_pragma_scalar_common_4[22]));
      break;
    case (MR_Integer) 0:
      CallStdOutRegsList_44 = (MR_Word) ((MR_Unsigned) 0U);
      break;
  }
  if ((MaybeMayDuplicate_23 == (MR_Word) ((MR_Unsigned) 0U)))
    MayDuplicateStrList_46 = (MR_Word) ((MR_Unsigned) 0U);
  else
  {
    MR_Word MayDuplicate_45 = ((MR_Word) ((MR_hl_field(1, MaybeMayDuplicate_23, 0))));

    switch (MayDuplicate_45) {
      default: /*NOTREACHED*/ MR_assert(0);
      case (MR_Integer) 0:
        MayDuplicateStrList_46 = (MR_Word) (MR_mkword(1, &parse_tree__parse_tree_out_pragma_scalar_common_4[23]));
        break;
      case (MR_Integer) 1:
        MayDuplicateStrList_46 = (MR_Word) (MR_mkword(1, &parse_tree__parse_tree_out_pragma_scalar_common_4[24]));
        break;
    }
  }
  if ((MaybeMayExportBody_24 == (MR_Word) ((MR_Unsigned) 0U)))
    MayExportBodyStrList_48 = (MR_Word) ((MR_Unsigned) 0U);
  else
  {
    MR_Word MayExportBody_47 = ((MR_Word) ((MR_hl_field(1, MaybeMayExportBody_24, 0))));

    switch (MayExportBody_47) {
      default: /*NOTREACHED*/ MR_assert(0);
      case (MR_Integer) 0:
        MayExportBodyStrList_48 = (MR_Word) (MR_mkword(1, &parse_tree__parse_tree_out_pragma_scalar_common_4[25]));
        break;
      case (MR_Integer) 1:
        MayExportBodyStrList_48 = (MR_Word) (MR_mkword(1, &parse_tree__parse_tree_out_pragma_scalar_common_4[26]));
        break;
    }
  }
  if ((ForSpecificBackend_25 == (MR_Word) ((MR_Unsigned) 0U)))
    ForSpecificBackendList_49 = (MR_Word) ((MR_Unsigned) 0U);
  else
  {
    MR_Word Var_125 = ((MR_Word) ((MR_hl_field(1, ForSpecificBackend_25, 0))));

    switch (Var_125) {
      default: /*NOTREACHED*/ MR_assert(0);
      case (MR_Integer) 0:
        ForSpecificBackendList_49 = (MR_Word) (MR_mkword(1, &parse_tree__parse_tree_out_pragma_scalar_common_4[27]));
        break;
      case (MR_Integer) 1:
        ForSpecificBackendList_49 = (MR_Word) (MR_mkword(1, &parse_tree__parse_tree_out_pragma_scalar_common_4[28]));
        break;
    }
  }
  {
    Var_109 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
    MR_hl_field(1, Var_109, 0) = ((MR_Box) (TabledForIOStr_28));
    MR_hl_field(1, Var_109, 1) = ((MR_Box) (PurityStrList_29));
  }
  {
    Var_108 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
    MR_hl_field(1, Var_108, 0) = ((MR_Box) (ThreadSafeStr_27));
    MR_hl_field(1, Var_108, 1) = ((MR_Box) (Var_109));
  }
  {
    Var_107 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
    MR_hl_field(1, Var_107, 0) = ((MR_Box) (MayCallMercuryStr_26));
    MR_hl_field(1, Var_107, 1) = ((MR_Box) (Var_108));
  }
  Var_123 = mercury__list__f_43_43_2_f_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), MayExportBodyStrList_48, ForSpecificBackendList_49);
  Var_122 = mercury__list__f_43_43_2_f_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), MayDuplicateStrList_46, Var_123);
  Var_121 = mercury__list__f_43_43_2_f_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), CallStdOutRegsList_44, Var_122);
  Var_120 = mercury__list__f_43_43_2_f_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), RefersToLldsStackList_43, Var_121);
  Var_119 = mercury__list__f_43_43_2_f_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), RegistersRootsStrList_42, Var_120);
  Var_118 = mercury__list__f_43_43_2_f_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), AllocatesMemoryStrList_41, Var_119);
  Var_117 = mercury__list__f_43_43_2_f_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), AffectsLivenessStrList_40, Var_118);
  Var_116 = mercury__list__f_43_43_2_f_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), BoxPolicyStrList_39, Var_117);
  Var_115 = mercury__list__f_43_43_2_f_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), MayCallMM_TabledStrList_38, Var_116);
  Var_114 = mercury__list__f_43_43_2_f_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), MayModifyTrailStrList_37, Var_115);
  Var_113 = mercury__list__f_43_43_2_f_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), ExceptionsStrList_36, Var_114);
  Var_112 = mercury__list__f_43_43_2_f_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), OrdinaryDespiteDetismStrList_35, Var_113);
  Var_111 = mercury__list__f_43_43_2_f_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), UserSharingStrList_34, Var_112);
  Var_110 = mercury__list__f_43_43_2_f_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), TerminatesStrList_30, Var_111);
  StringList_6 = mercury__list__f_43_43_2_f_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), Var_107, Var_110);
  return StringList_6;
}

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__user_annotated_sharing_to_string_3_f_0_2(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1)
{
  MR_Box wrapper_arg_2;
  MR_Box closure = closure_arg;
  MR_String conv1_Str_9;

  conv1_Str_9 = parse_tree__parse_tree_out_pragma__sharing_pair_to_string_3_f_0(((MR_Word) ((MR_hl_field(0, closure, 3)))), ((MR_Word) ((MR_hl_field(0, closure, 4)))), ((MR_Word) (wrapper_arg_1)));
  wrapper_arg_2 = ((MR_Box) (conv1_Str_9));
  return wrapper_arg_2;
}

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__user_annotated_sharing_to_string_3_f_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1)
{
  MR_Box wrapper_arg_2;
  MR_Box closure = closure_arg;
  MR_String conv0_HeadVar__4_4;

  conv0_HeadVar__4_4 = parse_tree__parse_tree_out_type__mercury_type_to_string_3_f_0(((MR_Word) ((MR_hl_field(0, closure, 3)))), ((MR_Word) ((MR_hl_field(0, closure, 4)))), ((MR_Word) (wrapper_arg_1)));
  wrapper_arg_2 = ((MR_Box) (conv0_HeadVar__4_4));
  return wrapper_arg_2;
}

static MR_String MR_CALL 
parse_tree__parse_tree_out_pragma__user_annotated_sharing_to_string_3_f_0(
  MR_Word VarSet_5,
  MR_Word Sharing_6,
  MR_Word MaybeTypes_7)
{
  MR_String String_8;

  switch (MR_tag((MR_Word) Sharing_6)) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 0:
      String_8 = (MR_String) "no_sharing";
      break;
    case (MR_Integer) 1:
      {
        MR_Word SharingPairs_10 = ((MR_Word) ((MR_hl_field(1, Sharing_6, 0))));
        MR_Word TypeVarSet_12;
        MR_String MaybeTypesStr_15;
        MR_Word SharingPairStrs_16;
        MR_String SharingPairListStr_17;
        MR_Word Var_25;
        MR_Word Var_27;
        MR_Word Var_29;
        MR_Word Var_30;
        MR_Word Var_32;

        if ((MaybeTypes_7 == (MR_Word) ((MR_Unsigned) 0U)))
        {
          MaybeTypesStr_15 = (MR_String) "no";
          TypeVarSet_12 = mercury__varset__init_0_f_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_tvar_type_0));
        }
        else
        {
          MR_Word Types_11;
          MR_Word TypeStrs_13;
          MR_String TypeListStr_14;
          MR_Word Var_18 = ((MR_Word) ((MR_hl_field(1, MaybeTypes_7, 0))));
          MR_Word Var_19;
          MR_String Var_23;

          Types_11 = ((MR_Word) ((MR_hl_field(0, Var_18, 0))));
          TypeVarSet_12 = ((MR_Word) ((MR_hl_field(0, Var_18, 1))));
          {
            Var_19 = (MR_Word) MR_new_object(MR_Word, (5 * sizeof(MR_Word)), NULL, NULL);
            MR_hl_field(0, Var_19, 0) = ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_11[0]));
            MR_hl_field(0, Var_19, 1) = ((MR_Box) (parse_tree__parse_tree_out_pragma__user_annotated_sharing_to_string_3_f_0_1));
            MR_hl_field(0, Var_19, 2) = ((MR_Box) ((MR_Integer) 2));
            MR_hl_field(0, Var_19, 3) = ((MR_Box) (TypeVarSet_12));
            MR_hl_field(0, Var_19, 4) = ((MR_Box) ((MR_Integer) 0));
          }
          TypeStrs_13 = mercury__list__map_2_f_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_type_0), (MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), Var_19, Types_11);
          TypeListStr_14 = mercury__string__join_list_2_f_0((MR_String) ", ", TypeStrs_13);
          Var_23 = mercury__string__f_43_43_2_f_0(TypeListStr_14, (MR_String) ")");
          MaybeTypesStr_15 = mercury__string__f_43_43_2_f_0((MR_String) "yes(", Var_23);
        }
        {
          Var_25 = (MR_Word) MR_new_object(MR_Word, (5 * sizeof(MR_Word)), NULL, NULL);
          MR_hl_field(0, Var_25, 0) = ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_11[1]));
          MR_hl_field(0, Var_25, 1) = ((MR_Box) (parse_tree__parse_tree_out_pragma__user_annotated_sharing_to_string_3_f_0_2));
          MR_hl_field(0, Var_25, 2) = ((MR_Box) ((MR_Integer) 2));
          MR_hl_field(0, Var_25, 3) = ((MR_Box) (VarSet_5));
          MR_hl_field(0, Var_25, 4) = ((MR_Box) (TypeVarSet_12));
        }
        SharingPairStrs_16 = mercury__list__map_2_f_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_1[2]), (MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), Var_25, SharingPairs_10);
        SharingPairListStr_17 = mercury__string__join_list_2_f_0((MR_String) ", ", SharingPairStrs_16);
        {
          Var_32 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
          MR_hl_field(1, Var_32, 0) = ((MR_Box) (SharingPairListStr_17));
          MR_hl_field(1, Var_32, 1) = ((MR_Box) (MR_mkword(1, &parse_tree__parse_tree_out_pragma_scalar_common_4[29])));
        }
        {
          Var_30 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
          MR_hl_field(1, Var_30, 0) = ((MR_Box) ((MR_String) ", ["));
          MR_hl_field(1, Var_30, 1) = ((MR_Box) (Var_32));
        }
        {
          Var_29 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
          MR_hl_field(1, Var_29, 0) = ((MR_Box) (MaybeTypesStr_15));
          MR_hl_field(1, Var_29, 1) = ((MR_Box) (Var_30));
        }
        {
          Var_27 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
          MR_hl_field(1, Var_27, 0) = ((MR_Box) ((MR_String) "sharing("));
          MR_hl_field(1, Var_27, 1) = ((MR_Box) (Var_29));
        }
        String_8 = mercury__string__append_list_1_f_0(Var_27);
      }
      break;
    case (MR_Integer) 2:
      String_8 = (MR_String) "unknown_sharing";
      break;
  }
  return String_8;
}

MR_String MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_pragma_foreign_decl_to_string_1_f_0(
  MR_Word FDInfo_3)
{
  MR_String Str_4;
  MR_Word State0_5;
  MR_Word State_6;

  State0_5 = mercury__string__builder__init_0_f_0();
  parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_102_111_114_101_105_103_110_95_100_101_99_108_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), FDInfo_3, State0_5, &State_6);
  Str_4 = mercury__string__builder__to_string_1_f_0(State_6);
  return Str_4;
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_102_111_114_101_105_103_110_95_100_101_99_108_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box * wrapper_arg_3)
{
  MR_Box closure = closure_arg;
  MR_Word conv18_STATE_VARIABLE_U_10;

  parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_101_115_99_97_112_101_100_95_99_104_97_114_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0(((MR_Word) ((MR_hl_field(0, closure, 3)))), ((MR_Char) (MR_Word) wrapper_arg_1), ((MR_Word) (wrapper_arg_2)), &conv18_STATE_VARIABLE_U_10);
  *wrapper_arg_3 = ((MR_Box) (conv18_STATE_VARIABLE_U_10));
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_102_111_114_101_105_103_110_95_100_101_99_108_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_28,
  MR_Word FDInfo_5,
  MR_Word STATE_VARIABLE_U_0_13,
  MR_Word * STATE_VARIABLE_U_14)
{
  MR_Word Lang_8 = ((((MR_Unsigned) ((MR_hl_field(0, FDInfo_5, 0))) >> 1)) & (MR_Integer) 3);
  MR_Word IsLocal_9 = ((MR_Unsigned) ((MR_hl_field(0, FDInfo_5, 0))) & (MR_Integer) 1);
  MR_Word LiteralOrInclude_10 = ((MR_Word) ((MR_hl_field(0, FDInfo_5, 1))));
  MR_Word STATE_VARIABLE_U_1_16;
  MR_Word STATE_VARIABLE_U_2_17;
  MR_Word STATE_VARIABLE_U_3_19;
  MR_Word STATE_VARIABLE_U_4_21;
  MR_Word STATE_VARIABLE_U_6_25;
  MR_Word STATE_VARIABLE_U_7_26;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_28, 0)), 6))));
  MR_Box conv1_STATE_VARIABLE_U_1_16;
  void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv3_STATE_VARIABLE_U_3_19;
  void MR_CALL (* func_8)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv9_STATE_VARIABLE_U_6_25;
  void MR_CALL (* func_22)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv23_STATE_VARIABLE_U_14;

  func_0(((MR_Box) (TypeClassInfo_for_pt_output_28)), ((MR_Box) ((MR_String) ":- pragma foreign_decl(")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_0_13)), &conv1_STATE_VARIABLE_U_1_16);
  STATE_VARIABLE_U_1_16 = ((MR_Word) (conv1_STATE_VARIABLE_U_1_16));
  parse_tree__parse_tree_out_misc__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_102_111_114_101_105_103_110_95_108_97_110_103_117_97_103_101_95_115_116_114_105_110_103_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0(TypeClassInfo_for_pt_output_28, Lang_8, STATE_VARIABLE_U_1_16, &STATE_VARIABLE_U_2_17);
  func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_28, 0)), 6))));
  func_2(((MR_Box) (TypeClassInfo_for_pt_output_28)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_17)), &conv3_STATE_VARIABLE_U_3_19);
  STATE_VARIABLE_U_3_19 = ((MR_Word) (conv3_STATE_VARIABLE_U_3_19));
  switch (IsLocal_9) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 1:
      {
        void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_28, 0)), 6))));
        MR_Box conv5_STATE_VARIABLE_U_4_21;

        func_4(((MR_Box) (TypeClassInfo_for_pt_output_28)), ((MR_Box) ((MR_String) "exported")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_19)), &conv5_STATE_VARIABLE_U_4_21);
        STATE_VARIABLE_U_4_21 = ((MR_Word) (conv5_STATE_VARIABLE_U_4_21));
      }
      break;
    case (MR_Integer) 0:
      {
        void MR_CALL (* func_6)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_28, 0)), 6))));
        MR_Box conv7_STATE_VARIABLE_U_4_21;

        func_6(((MR_Box) (TypeClassInfo_for_pt_output_28)), ((MR_Box) ((MR_String) "local")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_19)), &conv7_STATE_VARIABLE_U_4_21);
        STATE_VARIABLE_U_4_21 = ((MR_Word) (conv7_STATE_VARIABLE_U_4_21));
      }
      break;
  }
  func_8 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_28, 0)), 6))));
  func_8(((MR_Box) (TypeClassInfo_for_pt_output_28)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_4_21)), &conv9_STATE_VARIABLE_U_6_25);
  STATE_VARIABLE_U_6_25 = ((MR_Word) (conv9_STATE_VARIABLE_U_6_25));
  if (((MR_tag((MR_Word) LiteralOrInclude_10)) == (MR_Integer) 1))
  {
    MR_String FileName_30 = ((MR_String) ((MR_hl_field(1, LiteralOrInclude_10, 0))));
    MR_Word STATE_VARIABLE_U_2_32;
    MR_Word STATE_VARIABLE_U_3_33;
    void MR_CALL (* func_10)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_28, 0)), 6))));
    MR_Box conv11_STATE_VARIABLE_U_2_32;
    void MR_CALL (* func_12)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv13_STATE_VARIABLE_U_3_33;
    void MR_CALL (* func_14)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv15_STATE_VARIABLE_U_7_26;

    func_10(((MR_Box) (TypeClassInfo_for_pt_output_28)), ((MR_Box) ((MR_String) "include_file(")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_6_25)), &conv11_STATE_VARIABLE_U_2_32);
    STATE_VARIABLE_U_2_32 = ((MR_Word) (conv11_STATE_VARIABLE_U_2_32));
    func_12 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_28, 0)), 9))));
    func_12(((MR_Box) (TypeClassInfo_for_pt_output_28)), ((MR_Box) (FileName_30)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_32)), &conv13_STATE_VARIABLE_U_3_33);
    STATE_VARIABLE_U_3_33 = ((MR_Word) (conv13_STATE_VARIABLE_U_3_33));
    func_14 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_28, 0)), 6))));
    func_14(((MR_Box) (TypeClassInfo_for_pt_output_28)), ((MR_Box) ((MR_String) ")")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_33)), &conv15_STATE_VARIABLE_U_7_26);
    STATE_VARIABLE_U_7_26 = ((MR_Word) (conv15_STATE_VARIABLE_U_7_26));
  }
  else
  {
    MR_Word TypeInfo_16_41;
    MR_String Code_29 = ((MR_String) ((MR_hl_field(0, LiteralOrInclude_10, 0))));
    MR_Word STATE_VARIABLE_U_1_36;
    MR_Word STATE_VARIABLE_U_2_37;
    MR_Word Var_39;
    void MR_CALL (* func_16)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_28, 0)), 6))));
    MR_Box conv17_STATE_VARIABLE_U_1_36;
    MR_Box conv19_STATE_VARIABLE_U_2_37;
    void MR_CALL (* func_20)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv21_STATE_VARIABLE_U_7_26;

    func_16(((MR_Box) (TypeClassInfo_for_pt_output_28)), ((MR_Box) ((MR_String) "\"")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_6_25)), &conv17_STATE_VARIABLE_U_1_36);
    STATE_VARIABLE_U_1_36 = ((MR_Word) (conv17_STATE_VARIABLE_U_1_36));
    {
      Var_39 = (MR_Word) MR_new_object(MR_Word, (5 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(0, Var_39, 0) = ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_9[1]));
      MR_hl_field(0, Var_39, 1) = ((MR_Box) (parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_102_111_114_101_105_103_110_95_100_101_99_108_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0_1));
      MR_hl_field(0, Var_39, 2) = ((MR_Box) ((MR_Integer) 2));
      MR_hl_field(0, Var_39, 3) = ((MR_Box) (TypeClassInfo_for_pt_output_28));
      MR_hl_field(0, Var_39, 4) = NULL;
    }
    mercury__private_builtin__type_info_from_typeclass_info_3_p_0(TypeClassInfo_for_pt_output_28, (MR_Integer) 3, &TypeInfo_16_41);
    mercury__string__foldl_4_p_0(TypeInfo_16_41, Var_39, Code_29, ((MR_Box) (STATE_VARIABLE_U_1_36)), &conv19_STATE_VARIABLE_U_2_37);
    STATE_VARIABLE_U_2_37 = ((MR_Word) (conv19_STATE_VARIABLE_U_2_37));
    func_20 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_28, 0)), 6))));
    func_20(((MR_Box) (TypeClassInfo_for_pt_output_28)), ((MR_Box) ((MR_String) "\"")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_37)), &conv21_STATE_VARIABLE_U_7_26);
    STATE_VARIABLE_U_7_26 = ((MR_Word) (conv21_STATE_VARIABLE_U_7_26));
  }
  func_22 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_28, 0)), 6))));
  func_22(((MR_Box) (TypeClassInfo_for_pt_output_28)), ((MR_Box) ((MR_String) ").\n")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_7_26)), &conv23_STATE_VARIABLE_U_14);
  *STATE_VARIABLE_U_14 = ((MR_Word) (conv23_STATE_VARIABLE_U_14));
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_output_pragma_foreign_decl_4_p_0(
  MR_Word Stream_5,
  MR_Word FDInfo_6)
{
  parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_102_111_114_101_105_103_110_95_100_101_99_108_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[1]), FDInfo_6, Stream_5);
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_102_111_114_101_105_103_110_95_100_101_99_108_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box * wrapper_arg_3)
{
  MR_Box closure = closure_arg;

  parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_101_115_99_97_112_101_100_95_99_104_97_114_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0(((MR_Word) ((MR_hl_field(0, closure, 3)))), ((MR_Word) ((MR_hl_field(0, closure, 4)))), ((MR_Char) (MR_Word) wrapper_arg_1));
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_102_111_114_101_105_103_110_95_100_101_99_108_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_28,
  MR_Word FDInfo_5,
  MR_Word S_6)
{
  MR_Word Lang_8 = ((((MR_Unsigned) ((MR_hl_field(0, FDInfo_5, 0))) >> 1)) & (MR_Integer) 3);
  MR_Word IsLocal_9 = ((MR_Unsigned) ((MR_hl_field(0, FDInfo_5, 0))) & (MR_Integer) 1);
  MR_Word LiteralOrInclude_10 = ((MR_Word) ((MR_hl_field(0, FDInfo_5, 1))));
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_28, 0)), 6))));
  MR_Box conv1_STATE_VARIABLE_U_1_16;
  void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv3_STATE_VARIABLE_U_3_19;
  void MR_CALL (* func_8)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv9_STATE_VARIABLE_U_6_25;
  void MR_CALL (* func_21)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv22_STATE_VARIABLE_U_14;

  func_0(((MR_Box) (TypeClassInfo_for_pt_output_28)), ((MR_Box) ((MR_String) ":- pragma foreign_decl(")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv1_STATE_VARIABLE_U_1_16);
  parse_tree__parse_tree_out_misc__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_102_111_114_101_105_103_110_95_108_97_110_103_117_97_103_101_95_115_116_114_105_110_103_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0(TypeClassInfo_for_pt_output_28, Lang_8, S_6);
  func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_28, 0)), 6))));
  func_2(((MR_Box) (TypeClassInfo_for_pt_output_28)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv3_STATE_VARIABLE_U_3_19);
  switch (IsLocal_9) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 1:
      {
        void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_28, 0)), 6))));
        MR_Box conv5_STATE_VARIABLE_U_4_21;

        func_4(((MR_Box) (TypeClassInfo_for_pt_output_28)), ((MR_Box) ((MR_String) "exported")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv5_STATE_VARIABLE_U_4_21);
      }
      break;
    case (MR_Integer) 0:
      {
        void MR_CALL (* func_6)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_28, 0)), 6))));
        MR_Box conv7_STATE_VARIABLE_U_4_21;

        func_6(((MR_Box) (TypeClassInfo_for_pt_output_28)), ((MR_Box) ((MR_String) "local")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv7_STATE_VARIABLE_U_4_21);
      }
      break;
  }
  func_8 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_28, 0)), 6))));
  func_8(((MR_Box) (TypeClassInfo_for_pt_output_28)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv9_STATE_VARIABLE_U_6_25);
  if (((MR_tag((MR_Word) LiteralOrInclude_10)) == (MR_Integer) 1))
  {
    MR_String FileName_30 = ((MR_String) ((MR_hl_field(1, LiteralOrInclude_10, 0))));
    void MR_CALL (* func_10)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_28, 0)), 6))));
    MR_Box conv11_STATE_VARIABLE_U_2_32;
    void MR_CALL (* func_12)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv13_STATE_VARIABLE_U_3_33;
    void MR_CALL (* func_14)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv15_STATE_VARIABLE_U_7_26;

    func_10(((MR_Box) (TypeClassInfo_for_pt_output_28)), ((MR_Box) ((MR_String) "include_file(")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv11_STATE_VARIABLE_U_2_32);
    func_12 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_28, 0)), 9))));
    func_12(((MR_Box) (TypeClassInfo_for_pt_output_28)), ((MR_Box) (FileName_30)), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv13_STATE_VARIABLE_U_3_33);
    func_14 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_28, 0)), 6))));
    func_14(((MR_Box) (TypeClassInfo_for_pt_output_28)), ((MR_Box) ((MR_String) ")")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv15_STATE_VARIABLE_U_7_26);
  }
  else
  {
    MR_Word TypeInfo_16_41;
    MR_String Code_29 = ((MR_String) ((MR_hl_field(0, LiteralOrInclude_10, 0))));
    MR_Word Var_39;
    void MR_CALL (* func_16)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_28, 0)), 6))));
    MR_Box conv17_STATE_VARIABLE_U_1_36;
    MR_Box conv18_STATE_VARIABLE_U_2_37;
    void MR_CALL (* func_19)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv20_STATE_VARIABLE_U_7_26;

    func_16(((MR_Box) (TypeClassInfo_for_pt_output_28)), ((MR_Box) ((MR_String) "\"")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv17_STATE_VARIABLE_U_1_36);
    {
      Var_39 = (MR_Word) MR_new_object(MR_Word, (5 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(0, Var_39, 0) = ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_9[3]));
      MR_hl_field(0, Var_39, 1) = ((MR_Box) (parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_102_111_114_101_105_103_110_95_100_101_99_108_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_4_p_0_1));
      MR_hl_field(0, Var_39, 2) = ((MR_Box) ((MR_Integer) 2));
      MR_hl_field(0, Var_39, 3) = ((MR_Box) (TypeClassInfo_for_pt_output_28));
      MR_hl_field(0, Var_39, 4) = ((MR_Box) (S_6));
    }
    mercury__private_builtin__type_info_from_typeclass_info_3_p_0(TypeClassInfo_for_pt_output_28, (MR_Integer) 3, &TypeInfo_16_41);
    mercury__string__foldl_4_p_0(TypeInfo_16_41, Var_39, Code_29, ((MR_Box) ((MR_Integer) 0)), &conv18_STATE_VARIABLE_U_2_37);
    func_19 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_28, 0)), 6))));
    func_19(((MR_Box) (TypeClassInfo_for_pt_output_28)), ((MR_Box) ((MR_String) "\"")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv20_STATE_VARIABLE_U_7_26);
  }
  func_21 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_28, 0)), 6))));
  func_21(((MR_Box) (TypeClassInfo_for_pt_output_28)), ((MR_Box) ((MR_String) ").\n")), ((MR_Box) (S_6)), ((MR_Box) ((MR_Integer) 0)), &conv22_STATE_VARIABLE_U_14);
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_decl_pf_sym_name_user_arity_6_p_0(
  MR_Word TypeClassInfo_for_pt_output_25,
  MR_String PragmaName_7,
  MR_Word PredSpec0_8,
  MR_String AfterStr_9,
  MR_Box S_10,
  MR_Box STATE_VARIABLE_U_0_15,
  MR_Box * STATE_VARIABLE_U_16)
{
  MR_Word PredOrFunc_12;
  MR_Word PredName_13;
  MR_Word Arity_14;
  MR_Box STATE_VARIABLE_U_1_18;
  MR_Box STATE_VARIABLE_U_2_19;
  MR_Box STATE_VARIABLE_U_3_21;
  MR_Box STATE_VARIABLE_U_4_22;
  MR_Box STATE_VARIABLE_U_5_23;
  MR_String Var_26;
  MR_Box STATE_VARIABLE_U_1_27;
  MR_Box STATE_VARIABLE_U_2_29;
  MR_Box STATE_VARIABLE_U_3_31;
  MR_Integer Arity_33;
  MR_Box STATE_VARIABLE_U_1_34;
  MR_Box STATE_VARIABLE_U_2_36;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_25, 0)), 6))));
  void MR_CALL (* func_1)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_3)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_5)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_6)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_7)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_8)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_9)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

  func_0(((MR_Box) (TypeClassInfo_for_pt_output_25)), ((MR_Box) ((MR_String) ":- pragma ")), S_10, STATE_VARIABLE_U_0_15, &STATE_VARIABLE_U_1_18);
  func_1 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_25, 0)), 6))));
  func_1(((MR_Box) (TypeClassInfo_for_pt_output_25)), ((MR_Box) (PragmaName_7)), S_10, STATE_VARIABLE_U_1_18, &STATE_VARIABLE_U_2_19);
  func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_25, 0)), 6))));
  func_2(((MR_Box) (TypeClassInfo_for_pt_output_25)), ((MR_Box) ((MR_String) "(")), S_10, STATE_VARIABLE_U_2_19, &STATE_VARIABLE_U_3_21);
  PredOrFunc_12 = ((MR_Unsigned) ((MR_hl_field(0, PredSpec0_8, 0))) & (MR_Integer) 1);
  PredName_13 = ((MR_Word) ((MR_hl_field(0, PredSpec0_8, 1))));
  Arity_14 = ((MR_Word) ((MR_hl_field(0, PredSpec0_8, 2))));
  Var_26 = mdbcomp__prim_data__pred_or_func_to_str_1_f_0(PredOrFunc_12);
  func_3 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_25, 0)), 6))));
  func_3(((MR_Box) (TypeClassInfo_for_pt_output_25)), ((MR_Box) (Var_26)), S_10, STATE_VARIABLE_U_3_21, &STATE_VARIABLE_U_1_27);
  func_4 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_25, 0)), 6))));
  func_4(((MR_Box) (TypeClassInfo_for_pt_output_25)), ((MR_Box) ((MR_String) "(")), S_10, STATE_VARIABLE_U_1_27, &STATE_VARIABLE_U_2_29);
  Arity_33 = (MR_Integer) (Arity_14);
  parse_tree__parse_tree_out_sym_name__mercury_format_bracketed_sym_name_ngt_5_p_0(TypeClassInfo_for_pt_output_25, (MR_Integer) 1, PredName_13, S_10, STATE_VARIABLE_U_2_29, &STATE_VARIABLE_U_1_34);
  func_5 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_25, 0)), 6))));
  func_5(((MR_Box) (TypeClassInfo_for_pt_output_25)), ((MR_Box) ((MR_String) "/")), S_10, STATE_VARIABLE_U_1_34, &STATE_VARIABLE_U_2_36);
  func_6 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_25, 0)), 10))));
  func_6(((MR_Box) (TypeClassInfo_for_pt_output_25)), ((MR_Box) (Arity_33)), S_10, STATE_VARIABLE_U_2_36, &STATE_VARIABLE_U_3_31);
  func_7 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_25, 0)), 6))));
  func_7(((MR_Box) (TypeClassInfo_for_pt_output_25)), ((MR_Box) ((MR_String) ")")), S_10, STATE_VARIABLE_U_3_31, &STATE_VARIABLE_U_4_22);
  func_8 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_25, 0)), 6))));
  func_8(((MR_Box) (TypeClassInfo_for_pt_output_25)), ((MR_Box) (AfterStr_9)), S_10, STATE_VARIABLE_U_4_22, &STATE_VARIABLE_U_5_23);
  func_9 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_25, 0)), 6))));
  func_9(((MR_Box) (TypeClassInfo_for_pt_output_25)), ((MR_Box) ((MR_String) ").\n")), S_10, STATE_VARIABLE_U_5_23, STATE_VARIABLE_U_16);
}

MR_String MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_pragma_decl_pf_sym_name_user_arity_to_string_3_f_0(
  MR_String PragmaName_5,
  MR_Word PredSpec_6,
  MR_String MaybeAfter_7)
{
  MR_String Str_8;
  MR_Word State0_9;
  MR_Word State_10;

  State0_9 = mercury__string__builder__init_0_f_0();
  parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_100_101_99_108_95_112_102_95_115_121_109_95_110_97_109_101_95_117_115_101_114_95_97_114_105_116_121_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_6_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), PragmaName_5, PredSpec_6, MaybeAfter_7, State0_9, &State_10);
  Str_8 = mercury__string__builder__to_string_1_f_0(State_10);
  return Str_8;
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_100_101_99_108_95_112_102_95_115_121_109_95_110_97_109_101_95_117_115_101_114_95_97_114_105_116_121_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_6_p_0(
  MR_Word TypeClassInfo_for_pt_output_25,
  MR_String PragmaName_7,
  MR_Word PredSpec0_8,
  MR_String AfterStr_9,
  MR_Word STATE_VARIABLE_U_0_15,
  MR_Word * STATE_VARIABLE_U_16)
{
  MR_Word PredOrFunc_12;
  MR_Word PredName_13;
  MR_Word Arity_14;
  MR_Word STATE_VARIABLE_U_1_18;
  MR_Word STATE_VARIABLE_U_2_19;
  MR_Word STATE_VARIABLE_U_3_21;
  MR_Word STATE_VARIABLE_U_4_22;
  MR_Word STATE_VARIABLE_U_5_23;
  MR_String Var_26;
  MR_Word STATE_VARIABLE_U_1_27;
  MR_Word STATE_VARIABLE_U_2_29;
  MR_Word STATE_VARIABLE_U_3_31;
  MR_Integer Arity_33;
  MR_Word STATE_VARIABLE_U_1_34;
  MR_Word STATE_VARIABLE_U_2_36;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_25, 0)), 6))));
  MR_Box conv1_STATE_VARIABLE_U_1_18;
  void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv3_STATE_VARIABLE_U_2_19;
  void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv5_STATE_VARIABLE_U_3_21;
  void MR_CALL (* func_6)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv7_STATE_VARIABLE_U_1_27;
  void MR_CALL (* func_8)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv9_STATE_VARIABLE_U_2_29;
  void MR_CALL (* func_10)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv11_STATE_VARIABLE_U_2_36;
  void MR_CALL (* func_12)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv13_STATE_VARIABLE_U_3_31;
  void MR_CALL (* func_14)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv15_STATE_VARIABLE_U_4_22;
  void MR_CALL (* func_16)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv17_STATE_VARIABLE_U_5_23;
  void MR_CALL (* func_18)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv19_STATE_VARIABLE_U_16;

  func_0(((MR_Box) (TypeClassInfo_for_pt_output_25)), ((MR_Box) ((MR_String) ":- pragma ")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_0_15)), &conv1_STATE_VARIABLE_U_1_18);
  STATE_VARIABLE_U_1_18 = ((MR_Word) (conv1_STATE_VARIABLE_U_1_18));
  func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_25, 0)), 6))));
  func_2(((MR_Box) (TypeClassInfo_for_pt_output_25)), ((MR_Box) (PragmaName_7)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_18)), &conv3_STATE_VARIABLE_U_2_19);
  STATE_VARIABLE_U_2_19 = ((MR_Word) (conv3_STATE_VARIABLE_U_2_19));
  func_4 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_25, 0)), 6))));
  func_4(((MR_Box) (TypeClassInfo_for_pt_output_25)), ((MR_Box) ((MR_String) "(")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_19)), &conv5_STATE_VARIABLE_U_3_21);
  STATE_VARIABLE_U_3_21 = ((MR_Word) (conv5_STATE_VARIABLE_U_3_21));
  PredOrFunc_12 = ((MR_Unsigned) ((MR_hl_field(0, PredSpec0_8, 0))) & (MR_Integer) 1);
  PredName_13 = ((MR_Word) ((MR_hl_field(0, PredSpec0_8, 1))));
  Arity_14 = ((MR_Word) ((MR_hl_field(0, PredSpec0_8, 2))));
  Var_26 = mdbcomp__prim_data__pred_or_func_to_str_1_f_0(PredOrFunc_12);
  func_6 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_25, 0)), 6))));
  func_6(((MR_Box) (TypeClassInfo_for_pt_output_25)), ((MR_Box) (Var_26)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_21)), &conv7_STATE_VARIABLE_U_1_27);
  STATE_VARIABLE_U_1_27 = ((MR_Word) (conv7_STATE_VARIABLE_U_1_27));
  func_8 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_25, 0)), 6))));
  func_8(((MR_Box) (TypeClassInfo_for_pt_output_25)), ((MR_Box) ((MR_String) "(")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_27)), &conv9_STATE_VARIABLE_U_2_29);
  STATE_VARIABLE_U_2_29 = ((MR_Word) (conv9_STATE_VARIABLE_U_2_29));
  Arity_33 = (MR_Integer) (Arity_14);
  parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_98_114_97_99_107_101_116_101_100_95_115_121_109_95_110_97_109_101_95_110_103_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_25, (MR_Integer) 1, PredName_13, STATE_VARIABLE_U_2_29, &STATE_VARIABLE_U_1_34);
  func_10 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_25, 0)), 6))));
  func_10(((MR_Box) (TypeClassInfo_for_pt_output_25)), ((MR_Box) ((MR_String) "/")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_34)), &conv11_STATE_VARIABLE_U_2_36);
  STATE_VARIABLE_U_2_36 = ((MR_Word) (conv11_STATE_VARIABLE_U_2_36));
  func_12 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_25, 0)), 10))));
  func_12(((MR_Box) (TypeClassInfo_for_pt_output_25)), ((MR_Box) (Arity_33)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_36)), &conv13_STATE_VARIABLE_U_3_31);
  STATE_VARIABLE_U_3_31 = ((MR_Word) (conv13_STATE_VARIABLE_U_3_31));
  func_14 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_25, 0)), 6))));
  func_14(((MR_Box) (TypeClassInfo_for_pt_output_25)), ((MR_Box) ((MR_String) ")")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_31)), &conv15_STATE_VARIABLE_U_4_22);
  STATE_VARIABLE_U_4_22 = ((MR_Word) (conv15_STATE_VARIABLE_U_4_22));
  func_16 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_25, 0)), 6))));
  func_16(((MR_Box) (TypeClassInfo_for_pt_output_25)), ((MR_Box) (AfterStr_9)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_4_22)), &conv17_STATE_VARIABLE_U_5_23);
  STATE_VARIABLE_U_5_23 = ((MR_Word) (conv17_STATE_VARIABLE_U_5_23));
  func_18 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_25, 0)), 6))));
  func_18(((MR_Box) (TypeClassInfo_for_pt_output_25)), ((MR_Box) ((MR_String) ").\n")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_5_23)), &conv19_STATE_VARIABLE_U_16);
  *STATE_VARIABLE_U_16 = ((MR_Word) (conv19_STATE_VARIABLE_U_16));
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_output_pragma_decl_pf_sym_name_user_arity_6_p_0(
  MR_Word Stream_7,
  MR_String PragmaName_8,
  MR_Word PredSpec_9,
  MR_String MaybeAfter_10)
{
  parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_100_101_99_108_95_112_102_95_115_121_109_95_110_97_109_101_95_117_115_101_114_95_97_114_105_116_121_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_6_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[1]), PragmaName_8, PredSpec_9, MaybeAfter_10, Stream_7);
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_100_101_99_108_95_112_102_95_115_121_109_95_110_97_109_101_95_117_115_101_114_95_97_114_105_116_121_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_6_p_0(
  MR_Word TypeClassInfo_for_pt_output_25,
  MR_String PragmaName_7,
  MR_Word PredSpec0_8,
  MR_String AfterStr_9,
  MR_Word S_10)
{
  MR_Word PredOrFunc_12;
  MR_Word PredName_13;
  MR_Word Arity_14;
  MR_String Var_26;
  MR_Integer Arity_33;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_25, 0)), 6))));
  MR_Box conv1_STATE_VARIABLE_U_1_18;
  void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv3_STATE_VARIABLE_U_2_19;
  void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv5_STATE_VARIABLE_U_3_21;
  void MR_CALL (* func_6)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv7_STATE_VARIABLE_U_1_27;
  void MR_CALL (* func_8)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv9_STATE_VARIABLE_U_2_29;
  void MR_CALL (* func_10)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv11_STATE_VARIABLE_U_2_36;
  void MR_CALL (* func_12)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv13_STATE_VARIABLE_U_3_31;
  void MR_CALL (* func_14)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv15_STATE_VARIABLE_U_4_22;
  void MR_CALL (* func_16)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv17_STATE_VARIABLE_U_5_23;
  void MR_CALL (* func_18)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  MR_Box conv19_STATE_VARIABLE_U_16;

  func_0(((MR_Box) (TypeClassInfo_for_pt_output_25)), ((MR_Box) ((MR_String) ":- pragma ")), ((MR_Box) (S_10)), ((MR_Box) ((MR_Integer) 0)), &conv1_STATE_VARIABLE_U_1_18);
  func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_25, 0)), 6))));
  func_2(((MR_Box) (TypeClassInfo_for_pt_output_25)), ((MR_Box) (PragmaName_7)), ((MR_Box) (S_10)), ((MR_Box) ((MR_Integer) 0)), &conv3_STATE_VARIABLE_U_2_19);
  func_4 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_25, 0)), 6))));
  func_4(((MR_Box) (TypeClassInfo_for_pt_output_25)), ((MR_Box) ((MR_String) "(")), ((MR_Box) (S_10)), ((MR_Box) ((MR_Integer) 0)), &conv5_STATE_VARIABLE_U_3_21);
  PredOrFunc_12 = ((MR_Unsigned) ((MR_hl_field(0, PredSpec0_8, 0))) & (MR_Integer) 1);
  PredName_13 = ((MR_Word) ((MR_hl_field(0, PredSpec0_8, 1))));
  Arity_14 = ((MR_Word) ((MR_hl_field(0, PredSpec0_8, 2))));
  Var_26 = mdbcomp__prim_data__pred_or_func_to_str_1_f_0(PredOrFunc_12);
  func_6 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_25, 0)), 6))));
  func_6(((MR_Box) (TypeClassInfo_for_pt_output_25)), ((MR_Box) (Var_26)), ((MR_Box) (S_10)), ((MR_Box) ((MR_Integer) 0)), &conv7_STATE_VARIABLE_U_1_27);
  func_8 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_25, 0)), 6))));
  func_8(((MR_Box) (TypeClassInfo_for_pt_output_25)), ((MR_Box) ((MR_String) "(")), ((MR_Box) (S_10)), ((MR_Box) ((MR_Integer) 0)), &conv9_STATE_VARIABLE_U_2_29);
  Arity_33 = (MR_Integer) (Arity_14);
  parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_98_114_97_99_107_101_116_101_100_95_115_121_109_95_110_97_109_101_95_110_103_116_95_95_91_83_32_61_32_105_111_46_116_101_120_116_95_111_117_116_112_117_116_95_115_116_114_101_97_109_44_32_85_32_61_32_105_111_46_115_116_97_116_101_93_95_48_95_49_5_p_0(TypeClassInfo_for_pt_output_25, (MR_Integer) 1, PredName_13, S_10);
  func_10 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_25, 0)), 6))));
  func_10(((MR_Box) (TypeClassInfo_for_pt_output_25)), ((MR_Box) ((MR_String) "/")), ((MR_Box) (S_10)), ((MR_Box) ((MR_Integer) 0)), &conv11_STATE_VARIABLE_U_2_36);
  func_12 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_25, 0)), 10))));
  func_12(((MR_Box) (TypeClassInfo_for_pt_output_25)), ((MR_Box) (Arity_33)), ((MR_Box) (S_10)), ((MR_Box) ((MR_Integer) 0)), &conv13_STATE_VARIABLE_U_3_31);
  func_14 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_25, 0)), 6))));
  func_14(((MR_Box) (TypeClassInfo_for_pt_output_25)), ((MR_Box) ((MR_String) ")")), ((MR_Box) (S_10)), ((MR_Box) ((MR_Integer) 0)), &conv15_STATE_VARIABLE_U_4_22);
  func_16 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_25, 0)), 6))));
  func_16(((MR_Box) (TypeClassInfo_for_pt_output_25)), ((MR_Box) (AfterStr_9)), ((MR_Box) (S_10)), ((MR_Box) ((MR_Integer) 0)), &conv17_STATE_VARIABLE_U_5_23);
  func_18 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_25, 0)), 6))));
  func_18(((MR_Box) (TypeClassInfo_for_pt_output_25)), ((MR_Box) ((MR_String) ").\n")), ((MR_Box) (S_10)), ((MR_Box) ((MR_Integer) 0)), &conv19_STATE_VARIABLE_U_16);
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_item_generated_pragma_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_18,
  MR_Word Info_6,
  MR_Box S_7,
  MR_Word GenPragma_8,
  MR_Box STATE_VARIABLE_U_0_15,
  MR_Box * STATE_VARIABLE_U_16)
{
  MR_Word Context_10;
  MR_Box STATE_VARIABLE_U_1_17;

  Context_10 = parse_tree__prog_item_pragma__get_gen_pragma_context_1_f_0(GenPragma_8);
  parse_tree__parse_tree_out_info__maybe_format_line_number_5_p_0(TypeClassInfo_for_pt_output_18, Info_6, Context_10, S_7, STATE_VARIABLE_U_0_15, &STATE_VARIABLE_U_1_17);
  switch (MR_tag((MR_Word) GenPragma_8)) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 0:
      {
        MR_Word UnusedArgs_11 = (MR_Word) ((MR_Word) (GenPragma_8));

        parse_tree__parse_tree_out_pragma__mercury_format_pragma_unused_args_4_p_0(TypeClassInfo_for_pt_output_18, S_7, UnusedArgs_11, STATE_VARIABLE_U_1_17, STATE_VARIABLE_U_16);
      }
      break;
    case (MR_Integer) 1:
      {
        MR_Word Exceptions_12 = (MR_Word) (MR_body((MR_Word) (GenPragma_8), (MR_Integer) 1));

        parse_tree__parse_tree_out_pragma__mercury_format_pragma_exceptions_4_p_0(TypeClassInfo_for_pt_output_18, S_7, Exceptions_12, STATE_VARIABLE_U_1_17, STATE_VARIABLE_U_16);
      }
      break;
    case (MR_Integer) 2:
      {
        MR_Word Trailing_13 = (MR_Word) (MR_body((MR_Word) (GenPragma_8), (MR_Integer) 2));

        parse_tree__parse_tree_out_pragma__mercury_format_pragma_trailing_4_p_0(TypeClassInfo_for_pt_output_18, S_7, Trailing_13, STATE_VARIABLE_U_1_17, STATE_VARIABLE_U_16);
      }
      break;
    case (MR_Integer) 3:
      {
        MR_Word Tabling_14 = (MR_Word) (MR_body((MR_Word) (GenPragma_8), (MR_Integer) 3));

        parse_tree__parse_tree_out_pragma__mercury_format_pragma_mm_tabling_4_p_0(TypeClassInfo_for_pt_output_18, S_7, Tabling_14, STATE_VARIABLE_U_1_17, STATE_VARIABLE_U_16);
      }
      break;
  }
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_mm_tabling_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_35,
  MR_Box S_5,
  MR_Word MMTabling_6,
  MR_Box STATE_VARIABLE_U_0_20,
  MR_Box * STATE_VARIABLE_U_21)
{
  MR_Word PredNameArityPFMn_8 = ((MR_Word) ((MR_hl_field(0, MMTabling_6, 0))));
  MR_Word MM_TablingStatus_9 = ((MR_Unsigned) ((MR_hl_field(0, MMTabling_6, 1))) & (MR_Integer) 3);
  MR_Word PredOrFunc_12 = ((MR_Unsigned) ((MR_hl_field(0, PredNameArityPFMn_8, 0))) & (MR_Integer) 1);
  MR_Word SymName_13 = ((MR_Word) ((MR_hl_field(0, PredNameArityPFMn_8, 1))));
  MR_Integer Arity_14;
  MR_Integer ModeNum_15 = ((MR_Integer) ((MR_hl_field(0, PredNameArityPFMn_8, 3))));
  MR_String PorFStr_16;
  MR_String SymNameStr_17;
  MR_String MMStr_18;
  MR_String DeclStr_19;
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, PredNameArityPFMn_8, 2))));
  MR_String Var_37;
  MR_String Var_39;
  MR_String Var_40;
  MR_String Var_47;
  MR_String Var_49;
  MR_String Var_50;
  MR_String Var_57;
  MR_String Var_59;
  MR_String Var_60;
  MR_String Var_62;
  MR_String Var_63;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

  Arity_14 = (MR_Integer) (Var_22);
  PorFStr_16 = mdbcomp__prim_data__pred_or_func_to_full_str_1_f_0(PredOrFunc_12);
  SymNameStr_17 = parse_tree__parse_tree_out_sym_name__mercury_bracketed_sym_name_to_string_1_f_0(SymName_13);
  switch (MM_TablingStatus_9) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 2:
      MMStr_18 = (MR_String) "mm_tabled_conditional";
      break;
    case (MR_Integer) 0:
      MMStr_18 = (MR_String) "mm_tabled_may_call";
      break;
    case (MR_Integer) 1:
      MMStr_18 = (MR_String) "mm_tabled_will_not_call";
      break;
  }
  Var_37 = mercury__string__f_43_43_2_f_0(MMStr_18, (MR_String) ").\n");
  Var_39 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_37);
  mercury__string__format__format_signed_int_component_nowidth_noprec_3_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_5[0]), ModeNum_15, &Var_40);
  Var_47 = mercury__string__f_43_43_2_f_0(Var_40, Var_39);
  Var_49 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_47);
  mercury__string__format__format_signed_int_component_nowidth_noprec_3_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_5[0]), Arity_14, &Var_50);
  Var_57 = mercury__string__f_43_43_2_f_0(Var_50, Var_49);
  Var_59 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_57);
  Var_60 = mercury__string__f_43_43_2_f_0(SymNameStr_17, Var_59);
  Var_62 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_60);
  Var_63 = mercury__string__f_43_43_2_f_0(PorFStr_16, Var_62);
  DeclStr_19 = mercury__string__f_43_43_2_f_0((MR_String) ":- pragma mm_tabling_info(", Var_63);
  func_0 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_35, 0)), 6))));
  func_0(((MR_Box) (TypeClassInfo_for_pt_output_35)), ((MR_Box) (DeclStr_19)), S_5, STATE_VARIABLE_U_0_20, STATE_VARIABLE_U_21);
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_trailing_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_35,
  MR_Box S_5,
  MR_Word Trailing_6,
  MR_Box STATE_VARIABLE_U_0_20,
  MR_Box * STATE_VARIABLE_U_21)
{
  MR_Word PredNameArityPFMn_8 = ((MR_Word) ((MR_hl_field(0, Trailing_6, 0))));
  MR_Word TrailingStatus_9 = ((MR_Unsigned) ((MR_hl_field(0, Trailing_6, 1))) & (MR_Integer) 3);
  MR_Word PredOrFunc_12 = ((MR_Unsigned) ((MR_hl_field(0, PredNameArityPFMn_8, 0))) & (MR_Integer) 1);
  MR_Word SymName_13 = ((MR_Word) ((MR_hl_field(0, PredNameArityPFMn_8, 1))));
  MR_Integer Arity_14;
  MR_Integer ModeNum_15 = ((MR_Integer) ((MR_hl_field(0, PredNameArityPFMn_8, 3))));
  MR_String PorFStr_16;
  MR_String SymNameStr_17;
  MR_String TrailStr_18;
  MR_String DeclStr_19;
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, PredNameArityPFMn_8, 2))));
  MR_String Var_37;
  MR_String Var_39;
  MR_String Var_40;
  MR_String Var_47;
  MR_String Var_49;
  MR_String Var_50;
  MR_String Var_57;
  MR_String Var_59;
  MR_String Var_60;
  MR_String Var_62;
  MR_String Var_63;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

  Arity_14 = (MR_Integer) (Var_22);
  PorFStr_16 = mdbcomp__prim_data__pred_or_func_to_full_str_1_f_0(PredOrFunc_12);
  SymNameStr_17 = parse_tree__parse_tree_out_sym_name__mercury_bracketed_sym_name_to_string_1_f_0(SymName_13);
  switch (TrailingStatus_9) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 2:
      TrailStr_18 = (MR_String) "conditional";
      break;
    case (MR_Integer) 0:
      TrailStr_18 = (MR_String) "may_modify_trail";
      break;
    case (MR_Integer) 1:
      TrailStr_18 = (MR_String) "will_not_modify_trail";
      break;
  }
  Var_37 = mercury__string__f_43_43_2_f_0(TrailStr_18, (MR_String) ").\n");
  Var_39 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_37);
  mercury__string__format__format_signed_int_component_nowidth_noprec_3_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_5[0]), ModeNum_15, &Var_40);
  Var_47 = mercury__string__f_43_43_2_f_0(Var_40, Var_39);
  Var_49 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_47);
  mercury__string__format__format_signed_int_component_nowidth_noprec_3_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_5[0]), Arity_14, &Var_50);
  Var_57 = mercury__string__f_43_43_2_f_0(Var_50, Var_49);
  Var_59 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_57);
  Var_60 = mercury__string__f_43_43_2_f_0(SymNameStr_17, Var_59);
  Var_62 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_60);
  Var_63 = mercury__string__f_43_43_2_f_0(PorFStr_16, Var_62);
  DeclStr_19 = mercury__string__f_43_43_2_f_0((MR_String) ":- pragma trailing_info(", Var_63);
  func_0 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_35, 0)), 6))));
  func_0(((MR_Box) (TypeClassInfo_for_pt_output_35)), ((MR_Box) (DeclStr_19)), S_5, STATE_VARIABLE_U_0_20, STATE_VARIABLE_U_21);
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_exceptions_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_36,
  MR_Box S_5,
  MR_Word Exceptions_6,
  MR_Box STATE_VARIABLE_U_0_21,
  MR_Box * STATE_VARIABLE_U_22)
{
  MR_Word PredNameArityPFMn_8 = ((MR_Word) ((MR_hl_field(0, Exceptions_6, 0))));
  MR_Word ThrowStatus_9 = ((MR_Word) ((MR_hl_field(0, Exceptions_6, 1))));
  MR_Word PredOrFunc_12 = ((MR_Unsigned) ((MR_hl_field(0, PredNameArityPFMn_8, 0))) & (MR_Integer) 1);
  MR_Word SymName_13 = ((MR_Word) ((MR_hl_field(0, PredNameArityPFMn_8, 1))));
  MR_Integer Arity_14;
  MR_Integer ModeNum_15 = ((MR_Integer) ((MR_hl_field(0, PredNameArityPFMn_8, 3))));
  MR_String PorFStr_16;
  MR_String SymNameStr_17;
  MR_String ThrowStr_18;
  MR_String DeclStr_20;
  MR_Word Var_23 = ((MR_Word) ((MR_hl_field(0, PredNameArityPFMn_8, 2))));
  MR_String Var_38;
  MR_String Var_40;
  MR_String Var_41;
  MR_String Var_48;
  MR_String Var_50;
  MR_String Var_51;
  MR_String Var_58;
  MR_String Var_60;
  MR_String Var_61;
  MR_String Var_63;
  MR_String Var_64;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

  Arity_14 = (MR_Integer) (Var_23);
  PorFStr_16 = mdbcomp__prim_data__pred_or_func_to_full_str_1_f_0(PredOrFunc_12);
  SymNameStr_17 = parse_tree__parse_tree_out_sym_name__mercury_bracketed_sym_name_to_string_1_f_0(SymName_13);
  switch (MR_tag((MR_Word) ThrowStatus_9)) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 0:
      switch (MR_unmkbody(ThrowStatus_9)) {
        default: /*NOTREACHED*/ MR_assert(0);
        case (MR_Integer) 0:
          ThrowStr_18 = (MR_String) "will_not_throw";
          break;
        case (MR_Integer) 1:
          ThrowStr_18 = (MR_String) "conditional";
          break;
      }
      break;
    case (MR_Integer) 1:
      {
        MR_Word ExceptionType_19 = ((MR_Unsigned) ((MR_hl_field(1, ThrowStatus_9, 0))) & (MR_Integer) 1);

        switch (ExceptionType_19) {
          default: /*NOTREACHED*/ MR_assert(0);
          case (MR_Integer) 1:
            ThrowStr_18 = (MR_String) "may_throw(type_exception)";
            break;
          case (MR_Integer) 0:
            ThrowStr_18 = (MR_String) "may_throw(user_exception)";
            break;
        }
      }
      break;
  }
  Var_38 = mercury__string__f_43_43_2_f_0(ThrowStr_18, (MR_String) ").\n");
  Var_40 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_38);
  mercury__string__format__format_signed_int_component_nowidth_noprec_3_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_5[0]), ModeNum_15, &Var_41);
  Var_48 = mercury__string__f_43_43_2_f_0(Var_41, Var_40);
  Var_50 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_48);
  mercury__string__format__format_signed_int_component_nowidth_noprec_3_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_5[0]), Arity_14, &Var_51);
  Var_58 = mercury__string__f_43_43_2_f_0(Var_51, Var_50);
  Var_60 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_58);
  Var_61 = mercury__string__f_43_43_2_f_0(SymNameStr_17, Var_60);
  Var_63 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_61);
  Var_64 = mercury__string__f_43_43_2_f_0(PorFStr_16, Var_63);
  DeclStr_20 = mercury__string__f_43_43_2_f_0((MR_String) ":- pragma exceptions(", Var_64);
  func_0 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
  func_0(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) (DeclStr_20)), S_5, STATE_VARIABLE_U_0_21, STATE_VARIABLE_U_22);
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_unused_args_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_35,
  MR_Box S_5,
  MR_Word UnusedArgsInfo_6,
  MR_Box STATE_VARIABLE_U_0_20,
  MR_Box * STATE_VARIABLE_U_21)
{
  MR_Word PredNameArityPFMn_8 = ((MR_Word) ((MR_hl_field(0, UnusedArgsInfo_6, 0))));
  MR_Word UnusedArgs_9 = ((MR_Word) ((MR_hl_field(0, UnusedArgsInfo_6, 1))));
  MR_Word PredOrFunc_12 = ((MR_Unsigned) ((MR_hl_field(0, PredNameArityPFMn_8, 0))) & (MR_Integer) 1);
  MR_Word SymName_13 = ((MR_Word) ((MR_hl_field(0, PredNameArityPFMn_8, 1))));
  MR_Integer Arity_14;
  MR_Integer ModeNum_15 = ((MR_Integer) ((MR_hl_field(0, PredNameArityPFMn_8, 3))));
  MR_String PorFStr_16;
  MR_String SymNameStr_17;
  MR_String UnusedArgsStr_18;
  MR_String DeclStr_19;
  MR_Word Var_22 = ((MR_Word) ((MR_hl_field(0, PredNameArityPFMn_8, 2))));
  MR_String Var_37;
  MR_String Var_39;
  MR_String Var_40;
  MR_String Var_47;
  MR_String Var_49;
  MR_String Var_50;
  MR_String Var_57;
  MR_String Var_59;
  MR_String Var_60;
  MR_String Var_62;
  MR_String Var_63;
  MR_Word State0_65;
  MR_Word State_66;
  void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

  Arity_14 = (MR_Integer) (Var_22);
  PorFStr_16 = mdbcomp__prim_data__pred_or_func_to_full_str_1_f_0(PredOrFunc_12);
  SymNameStr_17 = parse_tree__parse_tree_out_sym_name__mercury_bracketed_sym_name_to_string_1_f_0(SymName_13);
  State0_65 = mercury__string__builder__init_0_f_0();
  if ((UnusedArgs_9 == (MR_Word) ((MR_Unsigned) 0U)))
    State_66 = State0_65;
  else
  {
    MR_Integer Head_72 = ((MR_Integer) ((MR_hl_field(1, UnusedArgs_9, 0))));
    MR_Word Tail_73 = ((MR_Word) ((MR_hl_field(1, UnusedArgs_9, 1))));
    MR_Word STATE_VARIABLE_U_1_77;
    void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 10))));
    MR_Box conv1_STATE_VARIABLE_U_1_77;

    func_0(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) (Head_72)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (State0_65)), &conv1_STATE_VARIABLE_U_1_77);
    STATE_VARIABLE_U_1_77 = ((MR_Word) (conv1_STATE_VARIABLE_U_1_77));
    parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_105_110_116_95_108_105_115_116_95_50_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), Tail_73, STATE_VARIABLE_U_1_77, &State_66);
  }
  UnusedArgsStr_18 = mercury__string__builder__to_string_1_f_0(State_66);
  Var_37 = mercury__string__f_43_43_2_f_0(UnusedArgsStr_18, (MR_String) "]");
  Var_39 = mercury__string__f_43_43_2_f_0((MR_String) ", [", Var_37);
  mercury__string__format__format_signed_int_component_nowidth_noprec_3_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_5[0]), ModeNum_15, &Var_40);
  Var_47 = mercury__string__f_43_43_2_f_0(Var_40, Var_39);
  Var_49 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_47);
  mercury__string__format__format_signed_int_component_nowidth_noprec_3_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_5[0]), Arity_14, &Var_50);
  Var_57 = mercury__string__f_43_43_2_f_0(Var_50, Var_49);
  Var_59 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_57);
  Var_60 = mercury__string__f_43_43_2_f_0(SymNameStr_17, Var_59);
  Var_62 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_60);
  Var_63 = mercury__string__f_43_43_2_f_0(PorFStr_16, Var_62);
  DeclStr_19 = mercury__string__f_43_43_2_f_0((MR_String) ":- pragma unused_args(", Var_63);
  func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_35, 0)), 6))));
  func_2(((MR_Box) (TypeClassInfo_for_pt_output_35)), ((MR_Box) (DeclStr_19)), S_5, STATE_VARIABLE_U_0_20, STATE_VARIABLE_U_21);
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_105_110_116_95_108_105_115_116_95_50_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_18,
  MR_Word HeadVar__1_1,
  MR_Word STATE_VARIABLE_U_0_3,
  MR_Word * STATE_VARIABLE_U_4)
{
  while (MR_TRUE)
  {
    // setup for model_det tailcalls optimized into a loop
    ;
    if ((HeadVar__1_1 == (MR_Word) ((MR_Unsigned) 0U)))
      *STATE_VARIABLE_U_4 = STATE_VARIABLE_U_0_3;
    else
    {
      MR_Integer Head_9 = ((MR_Integer) ((MR_hl_field(1, HeadVar__1_1, 0))));
      MR_Word Tail_10 = ((MR_Word) ((MR_hl_field(1, HeadVar__1_1, 1))));
      MR_Word STATE_VARIABLE_U_1_16;
      MR_Word STATE_VARIABLE_U_2_17;
      void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_18, 0)), 6))));
      MR_Box conv1_STATE_VARIABLE_U_1_16;
      void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
      MR_Box conv3_STATE_VARIABLE_U_2_17;
      MR_Word next_value_of_HeadVar__1_1;
      MR_Word next_value_of_STATE_VARIABLE_U_0_3;

      func_0(((MR_Box) (TypeClassInfo_for_pt_output_18)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_0_3)), &conv1_STATE_VARIABLE_U_1_16);
      STATE_VARIABLE_U_1_16 = ((MR_Word) (conv1_STATE_VARIABLE_U_1_16));
      func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_18, 0)), 10))));
      func_2(((MR_Box) (TypeClassInfo_for_pt_output_18)), ((MR_Box) (Head_9)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_16)), &conv3_STATE_VARIABLE_U_2_17);
      STATE_VARIABLE_U_2_17 = ((MR_Word) (conv3_STATE_VARIABLE_U_2_17));
      // direct tailcall eliminated
      ;
      next_value_of_HeadVar__1_1 = Tail_10;
      next_value_of_STATE_VARIABLE_U_0_3 = STATE_VARIABLE_U_2_17;
      HeadVar__1_1 = next_value_of_HeadVar__1_1;
      STATE_VARIABLE_U_0_3 = next_value_of_STATE_VARIABLE_U_0_3;
      continue;
    }
    break;
  }
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_item_impl_marker_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_16,
  MR_Box Stream_5,
  MR_Word ImplMarker_6,
  MR_Box STATE_VARIABLE_IO_0_13,
  MR_Box * STATE_VARIABLE_IO_14)
{
  MR_Word MarkerKind_8 = ((MR_Unsigned) ((MR_hl_field(0, ImplMarker_6, 0))) & (MR_Integer) 15);
  MR_Word PredSpec_9 = ((MR_Word) ((MR_hl_field(0, ImplMarker_6, 1))));
  MR_String MarkerKindStr_12 = ((&parse_tree__parse_tree_out_pragma_vector_common_10[0 + MarkerKind_8]))->parse_tree__parse_tree_out_pragma__vector_common_type_10_0__vct_10_f_0;
  MR_Word PFU_17;
  MR_Word PredName_18;
  MR_Word Arity_19;
  MR_Box STATE_VARIABLE_U_1_21;
  MR_Box STATE_VARIABLE_U_2_22;
  MR_Box STATE_VARIABLE_U_3_24;
  MR_Box STATE_VARIABLE_U_4_25;
  MR_Box STATE_VARIABLE_U_5_26;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
  void MR_CALL (* func_1)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_15)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_16)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

  func_0(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) ":- pragma ")), Stream_5, STATE_VARIABLE_IO_0_13, &STATE_VARIABLE_U_1_21);
  func_1 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
  func_1(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (MarkerKindStr_12)), Stream_5, STATE_VARIABLE_U_1_21, &STATE_VARIABLE_U_2_22);
  func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
  func_2(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) "(")), Stream_5, STATE_VARIABLE_U_2_22, &STATE_VARIABLE_U_3_24);
  PFU_17 = ((MR_Unsigned) ((MR_hl_field(0, PredSpec_9, 0))) & (MR_Integer) 3);
  PredName_18 = ((MR_Word) ((MR_hl_field(0, PredSpec_9, 1))));
  Arity_19 = ((MR_Word) ((MR_hl_field(0, PredSpec_9, 2))));
  switch (PFU_17) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 1:
      {
        MR_String Var_30;
        MR_Box STATE_VARIABLE_U_1_31;
        MR_Box STATE_VARIABLE_U_2_33;
        MR_Box STATE_VARIABLE_U_3_35;
        MR_Integer Arity_37;
        MR_Box STATE_VARIABLE_U_1_38;
        MR_Box STATE_VARIABLE_U_2_40;
        void MR_CALL (* func_3)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        void MR_CALL (* func_5)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        void MR_CALL (* func_6)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        void MR_CALL (* func_7)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

        Var_30 = mdbcomp__prim_data__pred_or_func_to_str_1_f_0((MR_Integer) 1);
        func_3 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_3(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (Var_30)), Stream_5, STATE_VARIABLE_U_3_24, &STATE_VARIABLE_U_1_31);
        func_4 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_4(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) "(")), Stream_5, STATE_VARIABLE_U_1_31, &STATE_VARIABLE_U_2_33);
        Arity_37 = (MR_Integer) (Arity_19);
        parse_tree__parse_tree_out_sym_name__mercury_format_bracketed_sym_name_ngt_5_p_0(TypeClassInfo_for_pt_output_16, (MR_Integer) 1, PredName_18, Stream_5, STATE_VARIABLE_U_2_33, &STATE_VARIABLE_U_1_38);
        func_5 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_5(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) "/")), Stream_5, STATE_VARIABLE_U_1_38, &STATE_VARIABLE_U_2_40);
        func_6 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 10))));
        func_6(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (Arity_37)), Stream_5, STATE_VARIABLE_U_2_40, &STATE_VARIABLE_U_3_35);
        func_7 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_7(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) ")")), Stream_5, STATE_VARIABLE_U_3_35, &STATE_VARIABLE_U_4_25);
      }
      break;
    case (MR_Integer) 0:
      {
        MR_String Var_41;
        MR_Box STATE_VARIABLE_U_1_42;
        MR_Box STATE_VARIABLE_U_2_44;
        MR_Box STATE_VARIABLE_U_3_46;
        MR_Integer Arity_48;
        MR_Box STATE_VARIABLE_U_1_49;
        MR_Box STATE_VARIABLE_U_2_51;
        void MR_CALL (* func_8)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        void MR_CALL (* func_9)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        void MR_CALL (* func_10)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        void MR_CALL (* func_11)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        void MR_CALL (* func_12)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

        Var_41 = mdbcomp__prim_data__pred_or_func_to_str_1_f_0((MR_Integer) 0);
        func_8 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_8(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (Var_41)), Stream_5, STATE_VARIABLE_U_3_24, &STATE_VARIABLE_U_1_42);
        func_9 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_9(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) "(")), Stream_5, STATE_VARIABLE_U_1_42, &STATE_VARIABLE_U_2_44);
        Arity_48 = (MR_Integer) (Arity_19);
        parse_tree__parse_tree_out_sym_name__mercury_format_bracketed_sym_name_ngt_5_p_0(TypeClassInfo_for_pt_output_16, (MR_Integer) 1, PredName_18, Stream_5, STATE_VARIABLE_U_2_44, &STATE_VARIABLE_U_1_49);
        func_10 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_10(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) "/")), Stream_5, STATE_VARIABLE_U_1_49, &STATE_VARIABLE_U_2_51);
        func_11 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 10))));
        func_11(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (Arity_48)), Stream_5, STATE_VARIABLE_U_2_51, &STATE_VARIABLE_U_3_46);
        func_12 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_12(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) ")")), Stream_5, STATE_VARIABLE_U_3_46, &STATE_VARIABLE_U_4_25);
      }
      break;
    case (MR_Integer) 2:
      {
        MR_Integer Arity_53 = (MR_Integer) (Arity_19);
        MR_Box STATE_VARIABLE_U_1_54;
        MR_Box STATE_VARIABLE_U_2_56;
        void MR_CALL (* func_13)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        void MR_CALL (* func_14)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

        parse_tree__parse_tree_out_sym_name__mercury_format_bracketed_sym_name_ngt_5_p_0(TypeClassInfo_for_pt_output_16, (MR_Integer) 0, PredName_18, Stream_5, STATE_VARIABLE_U_3_24, &STATE_VARIABLE_U_1_54);
        func_13 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_13(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) "/")), Stream_5, STATE_VARIABLE_U_1_54, &STATE_VARIABLE_U_2_56);
        func_14 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 10))));
        func_14(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (Arity_53)), Stream_5, STATE_VARIABLE_U_2_56, &STATE_VARIABLE_U_4_25);
      }
      break;
  }
  func_15 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
  func_15(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) "")), Stream_5, STATE_VARIABLE_U_4_25, &STATE_VARIABLE_U_5_26);
  func_16 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
  func_16(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) ").\n")), Stream_5, STATE_VARIABLE_U_5_26, STATE_VARIABLE_IO_14);
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_item_impl_pragma_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_23,
  MR_Word Info_6,
  MR_Box S_7,
  MR_Word ImplPragma_8,
  MR_Box STATE_VARIABLE_U_0_20,
  MR_Box * STATE_VARIABLE_U_21)
{
  MR_Word Context_10;
  MR_Word Lang_11;
  MR_Box STATE_VARIABLE_U_1_22;

  Context_10 = parse_tree__prog_item_pragma__get_impl_pragma_context_1_f_0(ImplPragma_8);
  parse_tree__parse_tree_out_info__maybe_format_line_number_5_p_0(TypeClassInfo_for_pt_output_23, Info_6, Context_10, S_7, STATE_VARIABLE_U_0_20, &STATE_VARIABLE_U_1_22);
  Lang_11 = parse_tree__parse_tree_out_info__get_output_lang_1_f_0(Info_6);
  switch (MR_tag((MR_Word) ImplPragma_8)) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 0:
      {
        MR_Word FDInfo_12 = (MR_Word) ((MR_Word) (ImplPragma_8));

        parse_tree__parse_tree_out_pragma__mercury_format_pragma_foreign_decl_4_p_0(TypeClassInfo_for_pt_output_23, FDInfo_12, S_7, STATE_VARIABLE_U_1_22, STATE_VARIABLE_U_21);
      }
      break;
    case (MR_Integer) 1:
      {
        MR_Word FCInfo_13 = (MR_Word) (MR_body((MR_Word) (ImplPragma_8), (MR_Integer) 1));

        parse_tree__parse_tree_out_pragma__mercury_format_pragma_foreign_code_4_p_0(TypeClassInfo_for_pt_output_23, FCInfo_13, S_7, STATE_VARIABLE_U_1_22, STATE_VARIABLE_U_21);
      }
      break;
    case (MR_Integer) 2:
      {
        MR_Word FPEInfo_14 = (MR_Word) (MR_body((MR_Word) (ImplPragma_8), (MR_Integer) 2));

        parse_tree__parse_tree_out_pragma__mercury_format_pragma_foreign_proc_export_5_p_0(TypeClassInfo_for_pt_output_23, S_7, Lang_11, FPEInfo_14, STATE_VARIABLE_U_1_22, STATE_VARIABLE_U_21);
      }
      break;
    case (MR_Integer) 3:
      switch (((MR_Integer) ((MR_hl_field(3, ImplPragma_8, 0))))) {
        default: /*NOTREACHED*/ MR_assert(0);
        case (MR_Integer) 0:
          {
            MR_Word ExternalInfo_15 = ((MR_Word) ((MR_hl_field(3, ImplPragma_8, 1))));
            MR_Word PFNameArity_24 = ((MR_Word) ((MR_hl_field(0, ExternalInfo_15, 0))));
            MR_Word MaybeBackend_25 = ((MR_Word) ((MR_hl_field(0, ExternalInfo_15, 1))));
            MR_Word PorF_28 = ((MR_Unsigned) ((MR_hl_field(0, PFNameArity_24, 0))) & (MR_Integer) 1);
            MR_Word PredName_29 = ((MR_Word) ((MR_hl_field(0, PFNameArity_24, 1))));
            MR_Integer Arity_30;
            MR_String PorFStr_31;
            MR_Word Var_33 = ((MR_Word) ((MR_hl_field(0, PFNameArity_24, 2))));
            MR_Box STATE_VARIABLE_U_1_35;
            MR_Box STATE_VARIABLE_U_2_36;
            MR_Box STATE_VARIABLE_U_3_38;
            MR_Box STATE_VARIABLE_U_4_39;
            MR_Box STATE_VARIABLE_U_5_41;
            MR_Box STATE_VARIABLE_U_6_42;
            MR_Box STATE_VARIABLE_U_9_48;
            void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
            void MR_CALL (* func_1)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
            void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
            void MR_CALL (* func_3)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
            void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
            void MR_CALL (* func_8)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

            Arity_30 = (MR_Integer) (Var_33);
            PorFStr_31 = mdbcomp__prim_data__pred_or_func_to_str_1_f_0(PorF_28);
            func_0 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
            func_0(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) ":- pragma external_")), S_7, STATE_VARIABLE_U_1_22, &STATE_VARIABLE_U_1_35);
            func_1 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
            func_1(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) (PorFStr_31)), S_7, STATE_VARIABLE_U_1_35, &STATE_VARIABLE_U_2_36);
            func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
            func_2(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) "(")), S_7, STATE_VARIABLE_U_2_36, &STATE_VARIABLE_U_3_38);
            parse_tree__parse_tree_out_sym_name__mercury_format_sym_name_4_p_0(TypeClassInfo_for_pt_output_23, PredName_29, S_7, STATE_VARIABLE_U_3_38, &STATE_VARIABLE_U_4_39);
            func_3 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
            func_3(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) "/")), S_7, STATE_VARIABLE_U_4_39, &STATE_VARIABLE_U_5_41);
            func_4 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 10))));
            func_4(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) (Arity_30)), S_7, STATE_VARIABLE_U_5_41, &STATE_VARIABLE_U_6_42);
            if ((MaybeBackend_25 == (MR_Word) ((MR_Unsigned) 0U)))
              STATE_VARIABLE_U_9_48 = STATE_VARIABLE_U_6_42;
            else
            {
              MR_Word Backend_32 = ((MR_Word) ((MR_hl_field(1, MaybeBackend_25, 0))));
              MR_Box STATE_VARIABLE_U_7_44;
              MR_String Var_45;
              MR_Box STATE_VARIABLE_U_8_46;
              void MR_CALL (* func_5)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
              void MR_CALL (* func_6)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
              void MR_CALL (* func_7)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

              func_5(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) ", [")), S_7, STATE_VARIABLE_U_6_42, &STATE_VARIABLE_U_7_44);
              switch (Backend_32) {
                default: /*NOTREACHED*/ MR_assert(0);
                case (MR_Integer) 0:
                  Var_45 = (MR_String) "high_level_backend";
                  break;
                case (MR_Integer) 1:
                  Var_45 = (MR_String) "low_level_backend";
                  break;
              }
              func_6 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
              func_6(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) (Var_45)), S_7, STATE_VARIABLE_U_7_44, &STATE_VARIABLE_U_8_46);
              func_7 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
              func_7(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) "]")), S_7, STATE_VARIABLE_U_8_46, &STATE_VARIABLE_U_9_48);
            }
            func_8 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
            func_8(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) ").\n")), S_7, STATE_VARIABLE_U_9_48, STATE_VARIABLE_U_21);
          }
          break;
        case (MR_Integer) 1:
          {
            MR_Word FactTableInfo_16 = ((MR_Word) ((MR_hl_field(3, ImplPragma_8, 1))));
            MR_Word PredSpec_50 = ((MR_Word) ((MR_hl_field(0, FactTableInfo_16, 0))));
            MR_String FileName_51 = ((MR_String) ((MR_hl_field(0, FactTableInfo_16, 1))));
            MR_Word PFU_54;
            MR_Word PredName_55;
            MR_Word UserArity_56;
            MR_Box STATE_VARIABLE_U_1_58;
            MR_Box STATE_VARIABLE_U_2_59;
            MR_Box STATE_VARIABLE_U_3_61;
            MR_Box STATE_VARIABLE_U_4_62;
            void MR_CALL (* func_9)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
            void MR_CALL (* func_22)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
            void MR_CALL (* func_23)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
            void MR_CALL (* func_24)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

            func_9(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) ":- pragma fact_table(")), S_7, STATE_VARIABLE_U_1_22, &STATE_VARIABLE_U_1_58);
            PFU_54 = ((MR_Unsigned) ((MR_hl_field(0, PredSpec_50, 0))) & (MR_Integer) 3);
            PredName_55 = ((MR_Word) ((MR_hl_field(0, PredSpec_50, 1))));
            UserArity_56 = ((MR_Word) ((MR_hl_field(0, PredSpec_50, 2))));
            switch (PFU_54) {
              default: /*NOTREACHED*/ MR_assert(0);
              case (MR_Integer) 1:
                {
                  MR_String Var_66;
                  MR_Box STATE_VARIABLE_U_1_67;
                  MR_Box STATE_VARIABLE_U_2_69;
                  MR_Box STATE_VARIABLE_U_3_71;
                  MR_Integer Arity_73;
                  MR_Box STATE_VARIABLE_U_1_74;
                  MR_Box STATE_VARIABLE_U_2_76;
                  void MR_CALL (* func_10)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
                  void MR_CALL (* func_11)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
                  void MR_CALL (* func_12)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
                  void MR_CALL (* func_13)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
                  void MR_CALL (* func_14)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

                  Var_66 = mdbcomp__prim_data__pred_or_func_to_str_1_f_0((MR_Integer) 1);
                  func_10 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
                  func_10(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) (Var_66)), S_7, STATE_VARIABLE_U_1_58, &STATE_VARIABLE_U_1_67);
                  func_11 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
                  func_11(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) "(")), S_7, STATE_VARIABLE_U_1_67, &STATE_VARIABLE_U_2_69);
                  Arity_73 = (MR_Integer) (UserArity_56);
                  parse_tree__parse_tree_out_sym_name__mercury_format_bracketed_sym_name_ngt_5_p_0(TypeClassInfo_for_pt_output_23, (MR_Integer) 1, PredName_55, S_7, STATE_VARIABLE_U_2_69, &STATE_VARIABLE_U_1_74);
                  func_12 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
                  func_12(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) "/")), S_7, STATE_VARIABLE_U_1_74, &STATE_VARIABLE_U_2_76);
                  func_13 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 10))));
                  func_13(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) (Arity_73)), S_7, STATE_VARIABLE_U_2_76, &STATE_VARIABLE_U_3_71);
                  func_14 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
                  func_14(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) ")")), S_7, STATE_VARIABLE_U_3_71, &STATE_VARIABLE_U_2_59);
                }
                break;
              case (MR_Integer) 0:
                {
                  MR_String Var_77;
                  MR_Box STATE_VARIABLE_U_1_78;
                  MR_Box STATE_VARIABLE_U_2_80;
                  MR_Box STATE_VARIABLE_U_3_82;
                  MR_Integer Arity_84;
                  MR_Box STATE_VARIABLE_U_1_85;
                  MR_Box STATE_VARIABLE_U_2_87;
                  void MR_CALL (* func_15)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
                  void MR_CALL (* func_16)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
                  void MR_CALL (* func_17)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
                  void MR_CALL (* func_18)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
                  void MR_CALL (* func_19)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

                  Var_77 = mdbcomp__prim_data__pred_or_func_to_str_1_f_0((MR_Integer) 0);
                  func_15 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
                  func_15(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) (Var_77)), S_7, STATE_VARIABLE_U_1_58, &STATE_VARIABLE_U_1_78);
                  func_16 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
                  func_16(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) "(")), S_7, STATE_VARIABLE_U_1_78, &STATE_VARIABLE_U_2_80);
                  Arity_84 = (MR_Integer) (UserArity_56);
                  parse_tree__parse_tree_out_sym_name__mercury_format_bracketed_sym_name_ngt_5_p_0(TypeClassInfo_for_pt_output_23, (MR_Integer) 1, PredName_55, S_7, STATE_VARIABLE_U_2_80, &STATE_VARIABLE_U_1_85);
                  func_17 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
                  func_17(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) "/")), S_7, STATE_VARIABLE_U_1_85, &STATE_VARIABLE_U_2_87);
                  func_18 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 10))));
                  func_18(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) (Arity_84)), S_7, STATE_VARIABLE_U_2_87, &STATE_VARIABLE_U_3_82);
                  func_19 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
                  func_19(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) ")")), S_7, STATE_VARIABLE_U_3_82, &STATE_VARIABLE_U_2_59);
                }
                break;
              case (MR_Integer) 2:
                {
                  MR_Integer Arity_89 = (MR_Integer) (UserArity_56);
                  MR_Box STATE_VARIABLE_U_1_90;
                  MR_Box STATE_VARIABLE_U_2_92;
                  void MR_CALL (* func_20)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
                  void MR_CALL (* func_21)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

                  parse_tree__parse_tree_out_sym_name__mercury_format_bracketed_sym_name_ngt_5_p_0(TypeClassInfo_for_pt_output_23, (MR_Integer) 0, PredName_55, S_7, STATE_VARIABLE_U_1_58, &STATE_VARIABLE_U_1_90);
                  func_20 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
                  func_20(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) "/")), S_7, STATE_VARIABLE_U_1_90, &STATE_VARIABLE_U_2_92);
                  func_21 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 10))));
                  func_21(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) (Arity_89)), S_7, STATE_VARIABLE_U_2_92, &STATE_VARIABLE_U_2_59);
                }
                break;
            }
            func_22 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
            func_22(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) ", ")), S_7, STATE_VARIABLE_U_2_59, &STATE_VARIABLE_U_3_61);
            func_23 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 9))));
            func_23(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) (FileName_51)), S_7, STATE_VARIABLE_U_3_61, &STATE_VARIABLE_U_4_62);
            func_24 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
            func_24(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) ((MR_String) ").\n")), S_7, STATE_VARIABLE_U_4_62, STATE_VARIABLE_U_21);
          }
          break;
        case (MR_Integer) 2:
          {
            MR_Word TabledInfo_17 = ((MR_Word) ((MR_hl_field(3, ImplPragma_8, 1))));

            parse_tree__parse_tree_out_pragma__mercury_format_pragma_tabled_4_p_0(TypeClassInfo_for_pt_output_23, TabledInfo_17, S_7, STATE_VARIABLE_U_1_22, STATE_VARIABLE_U_21);
          }
          break;
        case (MR_Integer) 3:
          {
            MR_Word RequireTailrecPragma_18 = ((MR_Word) ((MR_hl_field(3, ImplPragma_8, 1))));

            parse_tree__parse_tree_out_pragma__mercury_format_pragma_require_tail_rec_5_p_0(TypeClassInfo_for_pt_output_23, Lang_11, RequireTailrecPragma_18, S_7, STATE_VARIABLE_U_1_22, STATE_VARIABLE_U_21);
          }
          break;
        case (MR_Integer) 4:
          {
            MR_Word RFSInfo_19 = ((MR_Word) ((MR_hl_field(3, ImplPragma_8, 1))));

            parse_tree__parse_tree_out_pragma__mercury_format_pragma_require_feature_set_4_p_0(TypeClassInfo_for_pt_output_23, RFSInfo_19, S_7, STATE_VARIABLE_U_1_22, STATE_VARIABLE_U_21);
          }
          break;
      }
      break;
  }
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_require_feature_set_4_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4)
{
  MR_Box closure = closure_arg;

  parse_tree__parse_tree_out_pragma__mercury_format_required_feature_4_p_0(((MR_Word) ((MR_hl_field(0, closure, 3)))), ((MR_Word) (wrapper_arg_1)), wrapper_arg_2, wrapper_arg_3, wrapper_arg_4);
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_require_feature_set_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_20,
  MR_Word RFSInfo_5,
  MR_Box S_6,
  MR_Box STATE_VARIABLE_U_0_12,
  MR_Box * STATE_VARIABLE_U_13)
{
  MR_Word Features0_8 = ((MR_Word) ((MR_hl_field(0, RFSInfo_5, 0))));
  MR_Word Features_11;
  MR_Box STATE_VARIABLE_U_1_15;
  MR_Word Var_16;
  MR_Box STATE_VARIABLE_U_2_18;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_1)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

  Features_11 = mercury__set__to_sorted_list_1_f_0((MR_Word) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_required_feature_0), Features0_8);
  func_0 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_20, 0)), 6))));
  func_0(((MR_Box) (TypeClassInfo_for_pt_output_20)), ((MR_Box) ((MR_String) ":- pragma require_feature_set(")), S_6, STATE_VARIABLE_U_0_12, &STATE_VARIABLE_U_1_15);
  {
    Var_16 = (MR_Word) MR_new_object(MR_Word, (4 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_16, 0) = ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_9[2]));
    MR_hl_field(0, Var_16, 1) = ((MR_Box) (parse_tree__parse_tree_out_pragma__mercury_format_pragma_require_feature_set_4_p_0_1));
    MR_hl_field(0, Var_16, 2) = ((MR_Box) ((MR_Integer) 1));
    MR_hl_field(0, Var_16, 3) = ((MR_Box) (TypeClassInfo_for_pt_output_20));
  }
  func_1 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_20, 0)), 25))));
  func_1(((MR_Box) (TypeClassInfo_for_pt_output_20)), ((MR_Box) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_required_feature_0)), ((MR_Box) (Var_16)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) (Features_11)), S_6, STATE_VARIABLE_U_1_15, &STATE_VARIABLE_U_2_18);
  func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_20, 0)), 6))));
  func_2(((MR_Box) (TypeClassInfo_for_pt_output_20)), ((MR_Box) ((MR_String) ").\n")), S_6, STATE_VARIABLE_U_2_18, STATE_VARIABLE_U_13);
}

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_tabled_4_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1)
{
  MR_Box wrapper_arg_2;
  MR_Box closure = closure_arg;
  MR_String conv0_HeadVar__2_2;

  conv0_HeadVar__2_2 = parse_tree__parse_tree_out_misc__maybe_arg_tabling_method_to_string_1_f_0(((MR_Word) (wrapper_arg_1)));
  wrapper_arg_2 = ((MR_Box) (conv0_HeadVar__2_2));
  return wrapper_arg_2;
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_tabled_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_62,
  MR_Word Tabled_5,
  MR_Box S_6,
  MR_Box STATE_VARIABLE_U_0_32,
  MR_Box * STATE_VARIABLE_U_33)
{
  MR_Word TabledMethod_8 = ((MR_Word) ((MR_hl_field(0, Tabled_5, 0))));
  MR_Word PredOrProcSpec_9 = ((MR_Word) ((MR_hl_field(0, Tabled_5, 1))));
  MR_Word MaybeAttributes_10 = ((MR_Word) ((MR_hl_field(0, Tabled_5, 2))));
  MR_String PragmaName_13;
  MR_String AfterStr_29;
  MR_String PredOrProcSpecStr_65;
  MR_Box STATE_VARIABLE_U_1_68;
  MR_Box STATE_VARIABLE_U_2_69;
  MR_Box STATE_VARIABLE_U_3_71;
  MR_Box STATE_VARIABLE_U_4_72;
  MR_Box STATE_VARIABLE_U_5_73;
  void MR_CALL (* func_1)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_3)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_5)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_6)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

  PragmaName_13 = parse_tree__parse_tree_out_misc__tabled_eval_method_to_pragma_name_1_f_0(TabledMethod_8);
  if ((MaybeAttributes_10 == (MR_Word) ((MR_Unsigned) 0U)))
    AfterStr_29 = (MR_String) "";
  else
  {
    MR_Word Attributes_14 = ((MR_Word) ((MR_hl_field(1, MaybeAttributes_10, 0))));
    MR_Word Strictness_15 = ((MR_Word) ((MR_hl_field(0, Attributes_14, 0))));
    MR_Word MaybeSizeLimit_16 = ((MR_Word) ((MR_hl_field(0, Attributes_14, 1))));
    MR_Word Stats_17 = ((((MR_Unsigned) ((MR_hl_field(0, Attributes_14, 2))) >> 2)) & (MR_Integer) 1);
    MR_Word AllowReset_18 = ((((MR_Unsigned) ((MR_hl_field(0, Attributes_14, 2))) >> 1)) & (MR_Integer) 1);
    MR_Word WarnForIgnore_19 = ((MR_Unsigned) ((MR_hl_field(0, Attributes_14, 2))) & (MR_Integer) 1);
    MR_Word STATE_VARIABLE_Strs_2_35;
    MR_Word STATE_VARIABLE_Strs_4_50;
    MR_Word STATE_VARIABLE_Strs_5_51;
    MR_Word STATE_VARIABLE_Strs_6_53;

    switch (MR_tag((MR_Word) Strictness_15)) {
      default: /*NOTREACHED*/ MR_assert(0);
      case (MR_Integer) 0:
        switch (MR_unmkbody(Strictness_15)) {
          default: /*NOTREACHED*/ MR_assert(0);
          case (MR_Integer) 0:
            STATE_VARIABLE_Strs_2_35 = (MR_Word) ((MR_Unsigned) 0U);
            break;
          case (MR_Integer) 1:
            STATE_VARIABLE_Strs_2_35 = (MR_Word) (MR_mkword(1, &parse_tree__parse_tree_out_pragma_scalar_common_4[30]));
            break;
        }
        break;
      case (MR_Integer) 1:
        {
          MR_Word Args_21 = ((MR_Word) ((MR_hl_field(1, Strictness_15, 0))));
          MR_Word HiddenArgMethod_22 = ((MR_Unsigned) ((MR_hl_field(1, Strictness_15, 1))) & (MR_Integer) 1);
          MR_Word ArgStrs_23;
          MR_String ArgsStr_24;
          MR_String HiddenArgStr_25;
          MR_String SpecifiedStr_26;
          MR_String Var_40;
          MR_String Var_41;
          MR_String Var_43;

          ArgStrs_23 = mercury__list__map_2_f_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_4[1]), (MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_1[10]), Args_21);
          ArgsStr_24 = mercury__string__join_list_2_f_0((MR_String) ", ", ArgStrs_23);
          switch (HiddenArgMethod_22) {
            default: /*NOTREACHED*/ MR_assert(0);
            case (MR_Integer) 1:
              HiddenArgStr_25 = (MR_String) "hidden_arg_addr";
              break;
            case (MR_Integer) 0:
              HiddenArgStr_25 = (MR_String) "hidden_arg_value";
              break;
          }
          Var_43 = mercury__string__f_43_43_2_f_0(HiddenArgStr_25, (MR_String) ")");
          Var_41 = mercury__string__f_43_43_2_f_0((MR_String) "], ", Var_43);
          Var_40 = mercury__string__f_43_43_2_f_0(ArgsStr_24, Var_41);
          SpecifiedStr_26 = mercury__string__f_43_43_2_f_0((MR_String) "specified([", Var_40);
          {
            STATE_VARIABLE_Strs_2_35 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
            MR_hl_field(1, STATE_VARIABLE_Strs_2_35, 0) = ((MR_Box) (SpecifiedStr_26));
            MR_hl_field(1, STATE_VARIABLE_Strs_2_35, 1) = ((MR_Box) ((MR_Unsigned) 0U));
          }
        }
        break;
    }
    if ((MaybeSizeLimit_16 == (MR_Word) ((MR_Unsigned) 0U)))
      STATE_VARIABLE_Strs_4_50 = STATE_VARIABLE_Strs_2_35;
    else
    {
      MR_Integer SizeLimit_27 = ((MR_Integer) ((MR_hl_field(1, MaybeSizeLimit_16, 0))));
      MR_String LimitStr_28;
      MR_String Var_47;
      MR_String Var_48;

      Var_48 = mercury__string__int_to_string_1_f_0(SizeLimit_27);
      Var_47 = mercury__string__f_43_43_2_f_0(Var_48, (MR_String) ")");
      LimitStr_28 = mercury__string__f_43_43_2_f_0((MR_String) "limit(", Var_47);
      {
        STATE_VARIABLE_Strs_4_50 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
        MR_hl_field(1, STATE_VARIABLE_Strs_4_50, 0) = ((MR_Box) (LimitStr_28));
        MR_hl_field(1, STATE_VARIABLE_Strs_4_50, 1) = ((MR_Box) (STATE_VARIABLE_Strs_2_35));
      }
    }
    switch (Stats_17) {
      default: /*NOTREACHED*/ MR_assert(0);
      case (MR_Integer) 0:
        STATE_VARIABLE_Strs_5_51 = STATE_VARIABLE_Strs_4_50;
        break;
      case (MR_Integer) 1:
        {
          STATE_VARIABLE_Strs_5_51 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
          MR_hl_field(1, STATE_VARIABLE_Strs_5_51, 0) = ((MR_Box) ((MR_String) "statistics"));
          MR_hl_field(1, STATE_VARIABLE_Strs_5_51, 1) = ((MR_Box) (STATE_VARIABLE_Strs_4_50));
        }
        break;
    }
    switch (AllowReset_18) {
      default: /*NOTREACHED*/ MR_assert(0);
      case (MR_Integer) 1:
        {
          STATE_VARIABLE_Strs_6_53 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
          MR_hl_field(1, STATE_VARIABLE_Strs_6_53, 0) = ((MR_Box) ((MR_String) "allow_reset"));
          MR_hl_field(1, STATE_VARIABLE_Strs_6_53, 1) = ((MR_Box) (STATE_VARIABLE_Strs_5_51));
        }
        break;
      case (MR_Integer) 0:
        STATE_VARIABLE_Strs_6_53 = STATE_VARIABLE_Strs_5_51;
        break;
    }
    switch (WarnForIgnore_19) {
      default: /*NOTREACHED*/ MR_assert(0);
      case (MR_Integer) 0:
        if ((STATE_VARIABLE_Strs_6_53 == (MR_Word) ((MR_Unsigned) 0U)))
          AfterStr_29 = (MR_String) "";
        else
        {
          MR_String Var_58;
          MR_String Var_59;

          Var_59 = mercury__string__join_list_2_f_0((MR_String) ", ", STATE_VARIABLE_Strs_6_53);
          Var_58 = mercury__string__f_43_43_2_f_0(Var_59, (MR_String) "]");
          AfterStr_29 = mercury__string__f_43_43_2_f_0((MR_String) ", [", Var_58);
        }
        break;
      case (MR_Integer) 1:
        {
          MR_Word STATE_VARIABLE_Strs_7_75;
          MR_String Var_77;
          MR_String Var_78;

          {
            STATE_VARIABLE_Strs_7_75 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
            MR_hl_field(1, STATE_VARIABLE_Strs_7_75, 0) = ((MR_Box) ((MR_String) "disable_warning_if_ignored"));
            MR_hl_field(1, STATE_VARIABLE_Strs_7_75, 1) = ((MR_Box) (STATE_VARIABLE_Strs_6_53));
          }
          Var_78 = mercury__string__join_list_2_f_0((MR_String) ", ", STATE_VARIABLE_Strs_7_75);
          Var_77 = mercury__string__f_43_43_2_f_0(Var_78, (MR_String) "]");
          AfterStr_29 = mercury__string__f_43_43_2_f_0((MR_String) ", [", Var_77);
        }
        break;
    }
  }
  PredOrProcSpecStr_65 = parse_tree__parse_tree_out_pragma__pred_or_proc_pfumm_name_to_string_2_f_0((MR_Integer) 0, PredOrProcSpec_9);
  func_1 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_62, 0)), 6))));
  func_1(((MR_Box) (TypeClassInfo_for_pt_output_62)), ((MR_Box) ((MR_String) ":- pragma ")), S_6, STATE_VARIABLE_U_0_32, &STATE_VARIABLE_U_1_68);
  func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_62, 0)), 6))));
  func_2(((MR_Box) (TypeClassInfo_for_pt_output_62)), ((MR_Box) (PragmaName_13)), S_6, STATE_VARIABLE_U_1_68, &STATE_VARIABLE_U_2_69);
  func_3 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_62, 0)), 6))));
  func_3(((MR_Box) (TypeClassInfo_for_pt_output_62)), ((MR_Box) ((MR_String) "(")), S_6, STATE_VARIABLE_U_2_69, &STATE_VARIABLE_U_3_71);
  func_4 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_62, 0)), 6))));
  func_4(((MR_Box) (TypeClassInfo_for_pt_output_62)), ((MR_Box) (PredOrProcSpecStr_65)), S_6, STATE_VARIABLE_U_3_71, &STATE_VARIABLE_U_4_72);
  func_5 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_62, 0)), 6))));
  func_5(((MR_Box) (TypeClassInfo_for_pt_output_62)), ((MR_Box) (AfterStr_29)), S_6, STATE_VARIABLE_U_4_72, &STATE_VARIABLE_U_5_73);
  func_6 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_62, 0)), 6))));
  func_6(((MR_Box) (TypeClassInfo_for_pt_output_62)), ((MR_Box) ((MR_String) ").\n")), S_6, STATE_VARIABLE_U_5_73, STATE_VARIABLE_U_33);
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_require_tail_rec_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_40,
  MR_Word Lang_6,
  MR_Word RequireTR_7,
  MR_Box S_8,
  MR_Box STATE_VARIABLE_U_0_24,
  MR_Box * STATE_VARIABLE_U_25)
{
  MR_Word PredOrProcSpec_10 = ((MR_Word) ((MR_hl_field(0, RequireTR_7, 0))));
  MR_Word Warn_11 = ((MR_Word) ((MR_hl_field(0, RequireTR_7, 1))));
  MR_String ProcSpecStr_14;
  MR_String DeclStr_16;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

  ProcSpecStr_14 = parse_tree__parse_tree_out_pragma__pred_or_proc_pfumm_name_to_string_2_f_0(Lang_6, PredOrProcSpec_10);
  if (((MR_tag((MR_Word) Warn_11)) == (MR_Integer) 0))
  {
    MR_String Var_54;

    Var_54 = mercury__string__f_43_43_2_f_0(ProcSpecStr_14, (MR_String) ").\n");
    DeclStr_16 = mercury__string__f_43_43_2_f_0((MR_String) ":- pragma disable_non_tail_recursion_reports(", Var_54);
  }
  else
  {
    MR_Word WarnOrError_17 = ((((MR_Unsigned) ((MR_hl_field(1, Warn_11, 0))) >> 2)) & (MR_Integer) 1);
    MR_Word Type_18 = ((((MR_Unsigned) ((MR_hl_field(1, Warn_11, 0))) >> 1)) & (MR_Integer) 1);
    MR_Word Grades_19 = ((MR_Unsigned) ((MR_hl_field(1, Warn_11, 0))) & (MR_Integer) 1);
    MR_String WarnOrErrorStr_21;
    MR_String TypeStr_22;
    MR_String GradesStr_23;
    MR_String Var_42;
    MR_String Var_44;
    MR_String Var_45;
    MR_String Var_47;
    MR_String Var_48;
    MR_String Var_50;
    MR_String Var_51;

    libs__compiler_util__warning_or_error_string_2_p_0(WarnOrError_17, &WarnOrErrorStr_21);
    parse_tree__prog_data_pragma__require_tailrec_type_string_2_p_0(Type_18, &TypeStr_22);
    parse_tree__prog_data_pragma__require_tailrec_grades_string_2_p_0(Grades_19, &GradesStr_23);
    Var_42 = mercury__string__f_43_43_2_f_0(GradesStr_23, (MR_String) "]).\n");
    Var_44 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_42);
    Var_45 = mercury__string__f_43_43_2_f_0(TypeStr_22, Var_44);
    Var_47 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_45);
    Var_48 = mercury__string__f_43_43_2_f_0(WarnOrErrorStr_21, Var_47);
    Var_50 = mercury__string__f_43_43_2_f_0((MR_String) ", [", Var_48);
    Var_51 = mercury__string__f_43_43_2_f_0(ProcSpecStr_14, Var_50);
    DeclStr_16 = mercury__string__f_43_43_2_f_0((MR_String) ":- pragma require_tail_recursion(", Var_51);
  }
  func_0 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_40, 0)), 6))));
  func_0(((MR_Box) (TypeClassInfo_for_pt_output_40)), ((MR_Box) (DeclStr_16)), S_8, STATE_VARIABLE_U_0_24, STATE_VARIABLE_U_25);
}

static MR_String MR_CALL 
parse_tree__parse_tree_out_pragma__pred_or_proc_pfumm_name_to_string_2_f_0(
  MR_Word Lang_4,
  MR_Word PredOrProcSpec_5)
{
  MR_String PredOrProcSpecStr_6;
  MR_Word PFUMM_7 = ((MR_Word) ((MR_hl_field(0, PredOrProcSpec_5, 0))));
  MR_Word PredName_8 = ((MR_Word) ((MR_hl_field(0, PredOrProcSpec_5, 1))));

  switch (MR_tag((MR_Word) PFUMM_7)) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 0:
      {
        MR_Word ModesOrArity_42 = ((MR_Word) ((MR_hl_field(0, PFUMM_7, 0))));

        if (((MR_tag((MR_Word) ModesOrArity_42)) == (MR_Integer) 1))
        {
          MR_Word Arity_20 = ((MR_Word) ((MR_hl_field(1, ModesOrArity_42, 0))));
          MR_Word State0_67;
          MR_Word State_68;
          MR_String Var_71;
          MR_Word STATE_VARIABLE_U_1_72;
          MR_Word STATE_VARIABLE_U_2_74;
          MR_Word STATE_VARIABLE_U_3_76;
          MR_Integer Arity_78;
          MR_Word STATE_VARIABLE_U_1_79;
          MR_Word STATE_VARIABLE_U_2_81;
          void MR_CALL (* func_11)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          MR_Box conv12_STATE_VARIABLE_U_1_72;
          void MR_CALL (* func_13)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          MR_Box conv14_STATE_VARIABLE_U_2_74;
          void MR_CALL (* func_15)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          MR_Box conv16_STATE_VARIABLE_U_2_81;
          void MR_CALL (* func_17)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          MR_Box conv18_STATE_VARIABLE_U_3_76;
          void MR_CALL (* func_19)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          MR_Box conv20_State_68;

          State0_67 = mercury__string__builder__init_0_f_0();
          Var_71 = mdbcomp__prim_data__pred_or_func_to_str_1_f_0((MR_Integer) 0);
          func_11 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 6))));
          func_11(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) (Var_71)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (State0_67)), &conv12_STATE_VARIABLE_U_1_72);
          STATE_VARIABLE_U_1_72 = ((MR_Word) (conv12_STATE_VARIABLE_U_1_72));
          func_13 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 6))));
          func_13(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) ((MR_String) "(")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_72)), &conv14_STATE_VARIABLE_U_2_74);
          STATE_VARIABLE_U_2_74 = ((MR_Word) (conv14_STATE_VARIABLE_U_2_74));
          Arity_78 = (MR_Integer) (Arity_20);
          parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_98_114_97_99_107_101_116_101_100_95_115_121_109_95_110_97_109_101_95_110_103_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), (MR_Integer) 1, PredName_8, STATE_VARIABLE_U_2_74, &STATE_VARIABLE_U_1_79);
          func_15 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 6))));
          func_15(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) ((MR_String) "/")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_79)), &conv16_STATE_VARIABLE_U_2_81);
          STATE_VARIABLE_U_2_81 = ((MR_Word) (conv16_STATE_VARIABLE_U_2_81));
          func_17 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 10))));
          func_17(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) (Arity_78)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_81)), &conv18_STATE_VARIABLE_U_3_76);
          STATE_VARIABLE_U_3_76 = ((MR_Word) (conv18_STATE_VARIABLE_U_3_76));
          func_19 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 6))));
          func_19(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) ((MR_String) ")")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_76)), &conv20_State_68);
          State_68 = ((MR_Word) (conv20_State_68));
          PredOrProcSpecStr_6 = mercury__string__builder__to_string_1_f_0(State_68);
        }
        else
        {
          MR_Word Modes_27 = ((MR_Word) ((MR_hl_field(0, ModesOrArity_42, 0))));
          MR_Word InstVarSet_29;

          mercury__varset__init_1_p_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_inst_var_type_0), &InstVarSet_29);
          PredOrProcSpecStr_6 = parse_tree__parse_tree_out_pred_decl__mercury_pred_mode_subdecl_to_string_5_f_0(Lang_4, InstVarSet_29, PredName_8, Modes_27, (MR_Word) ((MR_Unsigned) 0U));
        }
      }
      break;
    case (MR_Integer) 1:
      {
        MR_Word ModesOrArity_10 = ((MR_Word) ((MR_hl_field(1, PFUMM_7, 0))));

        if (((MR_tag((MR_Word) ModesOrArity_10)) == (MR_Integer) 1))
        {
          MR_Word Arity_12 = ((MR_Word) ((MR_hl_field(1, ModesOrArity_10, 0))));
          MR_Word State0_52;
          MR_Word State_53;
          MR_String Var_56;
          MR_Word STATE_VARIABLE_U_1_57;
          MR_Word STATE_VARIABLE_U_2_59;
          MR_Word STATE_VARIABLE_U_3_61;
          MR_Integer Arity_63;
          MR_Word STATE_VARIABLE_U_1_64;
          MR_Word STATE_VARIABLE_U_2_66;
          void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          MR_Box conv1_STATE_VARIABLE_U_1_57;
          void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          MR_Box conv3_STATE_VARIABLE_U_2_59;
          void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          MR_Box conv5_STATE_VARIABLE_U_2_66;
          void MR_CALL (* func_6)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          MR_Box conv7_STATE_VARIABLE_U_3_61;
          void MR_CALL (* func_8)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          MR_Box conv9_State_53;

          State0_52 = mercury__string__builder__init_0_f_0();
          Var_56 = mdbcomp__prim_data__pred_or_func_to_str_1_f_0((MR_Integer) 1);
          func_0 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 6))));
          func_0(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) (Var_56)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (State0_52)), &conv1_STATE_VARIABLE_U_1_57);
          STATE_VARIABLE_U_1_57 = ((MR_Word) (conv1_STATE_VARIABLE_U_1_57));
          func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 6))));
          func_2(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) ((MR_String) "(")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_57)), &conv3_STATE_VARIABLE_U_2_59);
          STATE_VARIABLE_U_2_59 = ((MR_Word) (conv3_STATE_VARIABLE_U_2_59));
          Arity_63 = (MR_Integer) (Arity_12);
          parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_98_114_97_99_107_101_116_101_100_95_115_121_109_95_110_97_109_101_95_110_103_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), (MR_Integer) 1, PredName_8, STATE_VARIABLE_U_2_59, &STATE_VARIABLE_U_1_64);
          func_4 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 6))));
          func_4(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) ((MR_String) "/")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_64)), &conv5_STATE_VARIABLE_U_2_66);
          STATE_VARIABLE_U_2_66 = ((MR_Word) (conv5_STATE_VARIABLE_U_2_66));
          func_6 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 10))));
          func_6(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) (Arity_63)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_66)), &conv7_STATE_VARIABLE_U_3_61);
          STATE_VARIABLE_U_3_61 = ((MR_Word) (conv7_STATE_VARIABLE_U_3_61));
          func_8 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 6))));
          func_8(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) ((MR_String) ")")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_61)), &conv9_State_53);
          State_53 = ((MR_Word) (conv9_State_53));
          PredOrProcSpecStr_6 = mercury__string__builder__to_string_1_f_0(State_53);
        }
        else
        {
          MR_Word Modes_13 = ((MR_Word) ((MR_hl_field(0, ModesOrArity_10, 0))));
          MR_Word InstVarSet_15;
          MR_Word ArgModes_16;
          MR_Word RetMode_17;
          MR_Box conv10_RetMode_17;

          mercury__varset__init_1_p_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_inst_var_type_0), &InstVarSet_15);
          parse_tree__prog_util__pred_args_to_func_args_3_p_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_mode_0), Modes_13, &ArgModes_16, &conv10_RetMode_17);
          RetMode_17 = ((MR_Word) (conv10_RetMode_17));
          PredOrProcSpecStr_6 = parse_tree__parse_tree_out_pred_decl__mercury_func_mode_subdecl_to_string_6_f_0(Lang_4, InstVarSet_15, PredName_8, ArgModes_16, RetMode_17, (MR_Word) ((MR_Unsigned) 0U));
        }
      }
      break;
    case (MR_Integer) 2:
      {
        MR_Word PredArity_9 = ((MR_Word) ((MR_hl_field(2, PFUMM_7, 0))));
        MR_Word State0_82;
        MR_Word State_83;
        MR_Integer Arity_87;
        MR_Word STATE_VARIABLE_U_1_88;
        MR_Word STATE_VARIABLE_U_2_90;
        void MR_CALL (* func_21)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv22_STATE_VARIABLE_U_2_90;
        void MR_CALL (* func_23)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv24_State_83;

        State0_82 = mercury__string__builder__init_0_f_0();
        Arity_87 = (MR_Integer) (PredArity_9);
        parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_98_114_97_99_107_101_116_101_100_95_115_121_109_95_110_97_109_101_95_110_103_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), (MR_Integer) 0, PredName_8, State0_82, &STATE_VARIABLE_U_1_88);
        func_21 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 6))));
        func_21(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) ((MR_String) "/")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_88)), &conv22_STATE_VARIABLE_U_2_90);
        STATE_VARIABLE_U_2_90 = ((MR_Word) (conv22_STATE_VARIABLE_U_2_90));
        func_23 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 10))));
        func_23(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) (Arity_87)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_90)), &conv24_State_83);
        State_83 = ((MR_Word) (conv24_State_83));
        PredOrProcSpecStr_6 = mercury__string__builder__to_string_1_f_0(State_83);
      }
      break;
  }
  return PredOrProcSpecStr_6;
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_foreign_proc_export_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_46,
  MR_Box S_6,
  MR_Word Lang_7,
  MR_Word FPE_8,
  MR_Box STATE_VARIABLE_U_0_23,
  MR_Box * STATE_VARIABLE_U_24)
{
  MR_Word ForeignLang_11 = ((MR_Unsigned) ((MR_hl_field(0, FPE_8, 1))) & (MR_Integer) 3);
  MR_Word PredNameModesPF_12 = ((MR_Word) ((MR_hl_field(0, FPE_8, 2))));
  MR_String ExportName_13 = ((MR_String) ((MR_hl_field(0, FPE_8, 3))));
  MR_Word VarSet_14 = ((MR_Word) ((MR_hl_field(0, FPE_8, 4))));
  MR_Word PredOrFunc_17 = ((MR_Unsigned) ((MR_hl_field(0, PredNameModesPF_12, 0))) & (MR_Integer) 1);
  MR_Word SymName_18 = ((MR_Word) ((MR_hl_field(0, PredNameModesPF_12, 1))));
  MR_Word Modes_19 = ((MR_Word) ((MR_hl_field(0, PredNameModesPF_12, 2))));
  MR_Word InstVarSet_20;
  MR_Box STATE_VARIABLE_U_1_26;
  MR_Box STATE_VARIABLE_U_2_27;
  MR_Box STATE_VARIABLE_U_3_29;
  MR_Box STATE_VARIABLE_U_4_30;
  MR_Box STATE_VARIABLE_U_8_36;
  MR_Box STATE_VARIABLE_U_12_43;
  MR_Box STATE_VARIABLE_U_13_44;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_46, 0)), 6))));
  void MR_CALL (* func_1)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_7)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_8)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_9)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

  func_0(((MR_Box) (TypeClassInfo_for_pt_output_46)), ((MR_Box) ((MR_String) ":- pragma foreign_export(")), S_6, STATE_VARIABLE_U_0_23, &STATE_VARIABLE_U_1_26);
  parse_tree__parse_tree_out_misc__mercury_format_foreign_language_string_4_p_0(TypeClassInfo_for_pt_output_46, ForeignLang_11, S_6, STATE_VARIABLE_U_1_26, &STATE_VARIABLE_U_2_27);
  func_1 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_46, 0)), 6))));
  func_1(((MR_Box) (TypeClassInfo_for_pt_output_46)), ((MR_Box) ((MR_String) ", ")), S_6, STATE_VARIABLE_U_2_27, &STATE_VARIABLE_U_3_29);
  parse_tree__parse_tree_out_sym_name__mercury_format_sym_name_4_p_0(TypeClassInfo_for_pt_output_46, SymName_18, S_6, STATE_VARIABLE_U_3_29, &STATE_VARIABLE_U_4_30);
  mercury__varset__coerce_2_p_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_var_type_0), (MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_inst_var_type_0), VarSet_14, &InstVarSet_20);
  switch (PredOrFunc_17) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 1:
      {
        MR_Word ArgModes_21;
        MR_Word RetMode_22;
        MR_Box STATE_VARIABLE_U_5_32;
        MR_Box STATE_VARIABLE_U_6_33;
        MR_Box STATE_VARIABLE_U_7_35;
        MR_Box conv2_RetMode_22;
        void MR_CALL (* func_3)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

        parse_tree__prog_util__pred_args_to_func_args_3_p_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_mode_0), Modes_19, &ArgModes_21, &conv2_RetMode_22);
        RetMode_22 = ((MR_Word) (conv2_RetMode_22));
        func_3 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_46, 0)), 6))));
        func_3(((MR_Box) (TypeClassInfo_for_pt_output_46)), ((MR_Box) ((MR_String) "(")), S_6, STATE_VARIABLE_U_4_30, &STATE_VARIABLE_U_5_32);
        parse_tree__parse_tree_out_inst__mercury_format_mode_list_6_p_0(TypeClassInfo_for_pt_output_46, Lang_7, InstVarSet_20, ArgModes_21, S_6, STATE_VARIABLE_U_5_32, &STATE_VARIABLE_U_6_33);
        func_4 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_46, 0)), 6))));
        func_4(((MR_Box) (TypeClassInfo_for_pt_output_46)), ((MR_Box) ((MR_String) ") = ")), S_6, STATE_VARIABLE_U_6_33, &STATE_VARIABLE_U_7_35);
        parse_tree__parse_tree_out_inst__mercury_format_mode_6_p_0(TypeClassInfo_for_pt_output_46, Lang_7, InstVarSet_20, RetMode_22, S_6, STATE_VARIABLE_U_7_35, &STATE_VARIABLE_U_8_36);
      }
      break;
    case (MR_Integer) 0:
      {
        MR_Box STATE_VARIABLE_U_9_38;
        MR_Box STATE_VARIABLE_U_10_39;
        void MR_CALL (* func_5)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_46, 0)), 6))));
        void MR_CALL (* func_6)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

        func_5(((MR_Box) (TypeClassInfo_for_pt_output_46)), ((MR_Box) ((MR_String) "(")), S_6, STATE_VARIABLE_U_4_30, &STATE_VARIABLE_U_9_38);
        parse_tree__parse_tree_out_inst__mercury_format_mode_list_6_p_0(TypeClassInfo_for_pt_output_46, Lang_7, InstVarSet_20, Modes_19, S_6, STATE_VARIABLE_U_9_38, &STATE_VARIABLE_U_10_39);
        func_6 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_46, 0)), 6))));
        func_6(((MR_Box) (TypeClassInfo_for_pt_output_46)), ((MR_Box) ((MR_String) ")")), S_6, STATE_VARIABLE_U_10_39, &STATE_VARIABLE_U_8_36);
      }
      break;
  }
  func_7 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_46, 0)), 6))));
  func_7(((MR_Box) (TypeClassInfo_for_pt_output_46)), ((MR_Box) ((MR_String) ", ")), S_6, STATE_VARIABLE_U_8_36, &STATE_VARIABLE_U_12_43);
  func_8 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_46, 0)), 6))));
  func_8(((MR_Box) (TypeClassInfo_for_pt_output_46)), ((MR_Box) (ExportName_13)), S_6, STATE_VARIABLE_U_12_43, &STATE_VARIABLE_U_13_44);
  func_9 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_46, 0)), 6))));
  func_9(((MR_Box) (TypeClassInfo_for_pt_output_46)), ((MR_Box) ((MR_String) ").\n")), S_6, STATE_VARIABLE_U_13_44, STATE_VARIABLE_U_24);
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_foreign_code_4_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box * wrapper_arg_3)
{
  MR_Box closure = closure_arg;
  MR_Word conv8_STATE_VARIABLE_U_10;

  parse_tree__parse_tree_out_pragma__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_101_115_99_97_112_101_100_95_99_104_97_114_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_4_p_0(((MR_Word) ((MR_hl_field(0, closure, 3)))), ((MR_Char) (MR_Word) wrapper_arg_1), ((MR_Word) (wrapper_arg_2)), &conv8_STATE_VARIABLE_U_10);
  *wrapper_arg_3 = ((MR_Box) (conv8_STATE_VARIABLE_U_10));
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_foreign_code_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_23,
  MR_Word FCInfo_5,
  MR_Box S_6,
  MR_Box STATE_VARIABLE_U_0_15,
  MR_Box * STATE_VARIABLE_U_16)
{
  MR_Word Lang_8 = ((MR_Unsigned) ((MR_hl_field(0, FCInfo_5, 0))) & (MR_Integer) 3);
  MR_Word LiteralOrInclude_9 = ((MR_Word) ((MR_hl_field(0, FCInfo_5, 1))));
  MR_String LangStr_12;
  MR_String LorIStr_13;
  MR_String DeclStr_14;
  MR_String Var_25;
  MR_String Var_27;
  MR_String Var_28;
  MR_Word State0_30;
  MR_Word State_31;
  void MR_CALL (* func_12)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

  LangStr_12 = parse_tree__parse_tree_out_misc__mercury_foreign_language_to_string_1_f_0(Lang_8);
  State0_30 = mercury__string__builder__init_0_f_0();
  if (((MR_tag((MR_Word) LiteralOrInclude_9)) == (MR_Integer) 1))
  {
    MR_String FileName_35 = ((MR_String) ((MR_hl_field(1, LiteralOrInclude_9, 0))));
    MR_Word STATE_VARIABLE_U_2_37;
    MR_Word STATE_VARIABLE_U_3_38;
    void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 6))));
    MR_Box conv1_STATE_VARIABLE_U_2_37;
    void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv3_STATE_VARIABLE_U_3_38;
    void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv5_State_31;

    func_0(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) ((MR_String) "include_file(")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (State0_30)), &conv1_STATE_VARIABLE_U_2_37);
    STATE_VARIABLE_U_2_37 = ((MR_Word) (conv1_STATE_VARIABLE_U_2_37));
    func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 9))));
    func_2(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) (FileName_35)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_37)), &conv3_STATE_VARIABLE_U_3_38);
    STATE_VARIABLE_U_3_38 = ((MR_Word) (conv3_STATE_VARIABLE_U_3_38));
    func_4 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 6))));
    func_4(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) ((MR_String) ")")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_38)), &conv5_State_31);
    State_31 = ((MR_Word) (conv5_State_31));
  }
  else
  {
    MR_Word TypeInfo_16_46;
    MR_String Code_34 = ((MR_String) ((MR_hl_field(0, LiteralOrInclude_9, 0))));
    MR_Word STATE_VARIABLE_U_1_41;
    MR_Word STATE_VARIABLE_U_2_42;
    void MR_CALL (* func_6)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 6))));
    MR_Box conv7_STATE_VARIABLE_U_1_41;
    MR_Box conv9_STATE_VARIABLE_U_2_42;
    void MR_CALL (* func_10)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    MR_Box conv11_State_31;

    func_6(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) ((MR_String) "\"")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (State0_30)), &conv7_STATE_VARIABLE_U_1_41);
    STATE_VARIABLE_U_1_41 = ((MR_Word) (conv7_STATE_VARIABLE_U_1_41));
    mercury__private_builtin__type_info_from_typeclass_info_3_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), (MR_Integer) 3, &TypeInfo_16_46);
    mercury__string__foldl_4_p_0(TypeInfo_16_46, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_3[7]), Code_34, ((MR_Box) (STATE_VARIABLE_U_1_41)), &conv9_STATE_VARIABLE_U_2_42);
    STATE_VARIABLE_U_2_42 = ((MR_Word) (conv9_STATE_VARIABLE_U_2_42));
    func_10 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 6))));
    func_10(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) ((MR_String) "\"")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_42)), &conv11_State_31);
    State_31 = ((MR_Word) (conv11_State_31));
  }
  LorIStr_13 = mercury__string__builder__to_string_1_f_0(State_31);
  Var_25 = mercury__string__f_43_43_2_f_0(LorIStr_13, (MR_String) ").\n");
  Var_27 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_25);
  Var_28 = mercury__string__f_43_43_2_f_0(LangStr_12, Var_27);
  DeclStr_14 = mercury__string__f_43_43_2_f_0((MR_String) ":- pragma foreign_code(", Var_28);
  func_12 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_23, 0)), 6))));
  func_12(((MR_Box) (TypeClassInfo_for_pt_output_23)), ((MR_Box) (DeclStr_14)), S_6, STATE_VARIABLE_U_0_15, STATE_VARIABLE_U_16);
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_foreign_decl_4_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box * wrapper_arg_3)
{
  MR_Box closure = closure_arg;

  parse_tree__parse_tree_out_pragma__mercury_format_escaped_char_4_p_0(((MR_Word) ((MR_hl_field(0, closure, 3)))), (MR_hl_field(0, closure, 4)), ((MR_Char) (MR_Word) wrapper_arg_1), wrapper_arg_2, wrapper_arg_3);
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_foreign_decl_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_28,
  MR_Word FDInfo_5,
  MR_Box S_6,
  MR_Box STATE_VARIABLE_U_0_13,
  MR_Box * STATE_VARIABLE_U_14)
{
  MR_Word Lang_8 = ((((MR_Unsigned) ((MR_hl_field(0, FDInfo_5, 0))) >> 1)) & (MR_Integer) 3);
  MR_Word IsLocal_9 = ((MR_Unsigned) ((MR_hl_field(0, FDInfo_5, 0))) & (MR_Integer) 1);
  MR_Word LiteralOrInclude_10 = ((MR_Word) ((MR_hl_field(0, FDInfo_5, 1))));
  MR_Box STATE_VARIABLE_U_1_16;
  MR_Box STATE_VARIABLE_U_2_17;
  MR_Box STATE_VARIABLE_U_3_19;
  MR_Box STATE_VARIABLE_U_4_21;
  MR_Box STATE_VARIABLE_U_6_25;
  MR_Box STATE_VARIABLE_U_7_26;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_28, 0)), 6))));
  void MR_CALL (* func_1)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_10)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

  func_0(((MR_Box) (TypeClassInfo_for_pt_output_28)), ((MR_Box) ((MR_String) ":- pragma foreign_decl(")), S_6, STATE_VARIABLE_U_0_13, &STATE_VARIABLE_U_1_16);
  parse_tree__parse_tree_out_misc__mercury_format_foreign_language_string_4_p_0(TypeClassInfo_for_pt_output_28, Lang_8, S_6, STATE_VARIABLE_U_1_16, &STATE_VARIABLE_U_2_17);
  func_1 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_28, 0)), 6))));
  func_1(((MR_Box) (TypeClassInfo_for_pt_output_28)), ((MR_Box) ((MR_String) ", ")), S_6, STATE_VARIABLE_U_2_17, &STATE_VARIABLE_U_3_19);
  switch (IsLocal_9) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 1:
      {
        void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_28, 0)), 6))));

        func_2(((MR_Box) (TypeClassInfo_for_pt_output_28)), ((MR_Box) ((MR_String) "exported")), S_6, STATE_VARIABLE_U_3_19, &STATE_VARIABLE_U_4_21);
      }
      break;
    case (MR_Integer) 0:
      {
        void MR_CALL (* func_3)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_28, 0)), 6))));

        func_3(((MR_Box) (TypeClassInfo_for_pt_output_28)), ((MR_Box) ((MR_String) "local")), S_6, STATE_VARIABLE_U_3_19, &STATE_VARIABLE_U_4_21);
      }
      break;
  }
  func_4 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_28, 0)), 6))));
  func_4(((MR_Box) (TypeClassInfo_for_pt_output_28)), ((MR_Box) ((MR_String) ", ")), S_6, STATE_VARIABLE_U_4_21, &STATE_VARIABLE_U_6_25);
  if (((MR_tag((MR_Word) LiteralOrInclude_10)) == (MR_Integer) 1))
  {
    MR_String FileName_30 = ((MR_String) ((MR_hl_field(1, LiteralOrInclude_10, 0))));
    MR_Box STATE_VARIABLE_U_2_32;
    MR_Box STATE_VARIABLE_U_3_33;
    void MR_CALL (* func_5)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_28, 0)), 6))));
    void MR_CALL (* func_6)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    void MR_CALL (* func_7)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

    func_5(((MR_Box) (TypeClassInfo_for_pt_output_28)), ((MR_Box) ((MR_String) "include_file(")), S_6, STATE_VARIABLE_U_6_25, &STATE_VARIABLE_U_2_32);
    func_6 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_28, 0)), 9))));
    func_6(((MR_Box) (TypeClassInfo_for_pt_output_28)), ((MR_Box) (FileName_30)), S_6, STATE_VARIABLE_U_2_32, &STATE_VARIABLE_U_3_33);
    func_7 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_28, 0)), 6))));
    func_7(((MR_Box) (TypeClassInfo_for_pt_output_28)), ((MR_Box) ((MR_String) ")")), S_6, STATE_VARIABLE_U_3_33, &STATE_VARIABLE_U_7_26);
  }
  else
  {
    MR_Word TypeInfo_16_41;
    MR_String Code_29 = ((MR_String) ((MR_hl_field(0, LiteralOrInclude_10, 0))));
    MR_Box STATE_VARIABLE_U_1_36;
    MR_Box STATE_VARIABLE_U_2_37;
    MR_Word Var_39;
    void MR_CALL (* func_8)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_28, 0)), 6))));
    void MR_CALL (* func_9)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

    func_8(((MR_Box) (TypeClassInfo_for_pt_output_28)), ((MR_Box) ((MR_String) "\"")), S_6, STATE_VARIABLE_U_6_25, &STATE_VARIABLE_U_1_36);
    {
      Var_39 = (MR_Word) MR_new_object(MR_Word, (5 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(0, Var_39, 0) = ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_9[0]));
      MR_hl_field(0, Var_39, 1) = ((MR_Box) (parse_tree__parse_tree_out_pragma__mercury_format_pragma_foreign_decl_4_p_0_1));
      MR_hl_field(0, Var_39, 2) = ((MR_Box) ((MR_Integer) 2));
      MR_hl_field(0, Var_39, 3) = ((MR_Box) (TypeClassInfo_for_pt_output_28));
      MR_hl_field(0, Var_39, 4) = S_6;
    }
    mercury__private_builtin__type_info_from_typeclass_info_3_p_0(TypeClassInfo_for_pt_output_28, (MR_Integer) 3, &TypeInfo_16_41);
    mercury__string__foldl_4_p_0(TypeInfo_16_41, Var_39, Code_29, STATE_VARIABLE_U_1_36, &STATE_VARIABLE_U_2_37);
    func_9 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_28, 0)), 6))));
    func_9(((MR_Box) (TypeClassInfo_for_pt_output_28)), ((MR_Box) ((MR_String) "\"")), S_6, STATE_VARIABLE_U_2_37, &STATE_VARIABLE_U_7_26);
  }
  func_10 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_28, 0)), 6))));
  func_10(((MR_Box) (TypeClassInfo_for_pt_output_28)), ((MR_Box) ((MR_String) ").\n")), S_6, STATE_VARIABLE_U_7_26, STATE_VARIABLE_U_14);
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_item_decl_marker_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_16,
  MR_Box Stream_5,
  MR_Word DeclMarker_6,
  MR_Box STATE_VARIABLE_IO_0_13,
  MR_Box * STATE_VARIABLE_IO_14)
{
  MR_Word MarkerKind_8 = ((MR_Unsigned) ((MR_hl_field(0, DeclMarker_6, 0))) & (MR_Integer) 3);
  MR_Word PredSpec_9 = ((MR_Word) ((MR_hl_field(0, DeclMarker_6, 1))));
  MR_String MarkerKindStr_12;
  MR_Word PFU_17;
  MR_Word PredName_18;
  MR_Word Arity_19;
  MR_Box STATE_VARIABLE_U_1_21;
  MR_Box STATE_VARIABLE_U_2_22;
  MR_Box STATE_VARIABLE_U_3_24;
  MR_Box STATE_VARIABLE_U_4_25;
  MR_Box STATE_VARIABLE_U_5_26;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_1)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_15)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_16)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

  switch (MarkerKind_8) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 2:
      MarkerKindStr_12 = (MR_String) "check_termination";
      break;
    case (MR_Integer) 1:
      MarkerKindStr_12 = (MR_String) "does_not_terminate";
      break;
    case (MR_Integer) 0:
      MarkerKindStr_12 = (MR_String) "terminates";
      break;
  }
  func_0 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
  func_0(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) ":- pragma ")), Stream_5, STATE_VARIABLE_IO_0_13, &STATE_VARIABLE_U_1_21);
  func_1 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
  func_1(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (MarkerKindStr_12)), Stream_5, STATE_VARIABLE_U_1_21, &STATE_VARIABLE_U_2_22);
  func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
  func_2(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) "(")), Stream_5, STATE_VARIABLE_U_2_22, &STATE_VARIABLE_U_3_24);
  PFU_17 = ((MR_Unsigned) ((MR_hl_field(0, PredSpec_9, 0))) & (MR_Integer) 3);
  PredName_18 = ((MR_Word) ((MR_hl_field(0, PredSpec_9, 1))));
  Arity_19 = ((MR_Word) ((MR_hl_field(0, PredSpec_9, 2))));
  switch (PFU_17) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 1:
      {
        MR_String Var_30;
        MR_Box STATE_VARIABLE_U_1_31;
        MR_Box STATE_VARIABLE_U_2_33;
        MR_Box STATE_VARIABLE_U_3_35;
        MR_Integer Arity_37;
        MR_Box STATE_VARIABLE_U_1_38;
        MR_Box STATE_VARIABLE_U_2_40;
        void MR_CALL (* func_3)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        void MR_CALL (* func_5)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        void MR_CALL (* func_6)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        void MR_CALL (* func_7)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

        Var_30 = mdbcomp__prim_data__pred_or_func_to_str_1_f_0((MR_Integer) 1);
        func_3 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_3(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (Var_30)), Stream_5, STATE_VARIABLE_U_3_24, &STATE_VARIABLE_U_1_31);
        func_4 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_4(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) "(")), Stream_5, STATE_VARIABLE_U_1_31, &STATE_VARIABLE_U_2_33);
        Arity_37 = (MR_Integer) (Arity_19);
        parse_tree__parse_tree_out_sym_name__mercury_format_bracketed_sym_name_ngt_5_p_0(TypeClassInfo_for_pt_output_16, (MR_Integer) 1, PredName_18, Stream_5, STATE_VARIABLE_U_2_33, &STATE_VARIABLE_U_1_38);
        func_5 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_5(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) "/")), Stream_5, STATE_VARIABLE_U_1_38, &STATE_VARIABLE_U_2_40);
        func_6 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 10))));
        func_6(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (Arity_37)), Stream_5, STATE_VARIABLE_U_2_40, &STATE_VARIABLE_U_3_35);
        func_7 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_7(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) ")")), Stream_5, STATE_VARIABLE_U_3_35, &STATE_VARIABLE_U_4_25);
      }
      break;
    case (MR_Integer) 0:
      {
        MR_String Var_41;
        MR_Box STATE_VARIABLE_U_1_42;
        MR_Box STATE_VARIABLE_U_2_44;
        MR_Box STATE_VARIABLE_U_3_46;
        MR_Integer Arity_48;
        MR_Box STATE_VARIABLE_U_1_49;
        MR_Box STATE_VARIABLE_U_2_51;
        void MR_CALL (* func_8)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        void MR_CALL (* func_9)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        void MR_CALL (* func_10)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        void MR_CALL (* func_11)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        void MR_CALL (* func_12)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

        Var_41 = mdbcomp__prim_data__pred_or_func_to_str_1_f_0((MR_Integer) 0);
        func_8 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_8(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (Var_41)), Stream_5, STATE_VARIABLE_U_3_24, &STATE_VARIABLE_U_1_42);
        func_9 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_9(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) "(")), Stream_5, STATE_VARIABLE_U_1_42, &STATE_VARIABLE_U_2_44);
        Arity_48 = (MR_Integer) (Arity_19);
        parse_tree__parse_tree_out_sym_name__mercury_format_bracketed_sym_name_ngt_5_p_0(TypeClassInfo_for_pt_output_16, (MR_Integer) 1, PredName_18, Stream_5, STATE_VARIABLE_U_2_44, &STATE_VARIABLE_U_1_49);
        func_10 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_10(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) "/")), Stream_5, STATE_VARIABLE_U_1_49, &STATE_VARIABLE_U_2_51);
        func_11 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 10))));
        func_11(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (Arity_48)), Stream_5, STATE_VARIABLE_U_2_51, &STATE_VARIABLE_U_3_46);
        func_12 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_12(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) ")")), Stream_5, STATE_VARIABLE_U_3_46, &STATE_VARIABLE_U_4_25);
      }
      break;
    case (MR_Integer) 2:
      {
        MR_Integer Arity_53 = (MR_Integer) (Arity_19);
        MR_Box STATE_VARIABLE_U_1_54;
        MR_Box STATE_VARIABLE_U_2_56;
        void MR_CALL (* func_13)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        void MR_CALL (* func_14)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

        parse_tree__parse_tree_out_sym_name__mercury_format_bracketed_sym_name_ngt_5_p_0(TypeClassInfo_for_pt_output_16, (MR_Integer) 0, PredName_18, Stream_5, STATE_VARIABLE_U_3_24, &STATE_VARIABLE_U_1_54);
        func_13 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
        func_13(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) "/")), Stream_5, STATE_VARIABLE_U_1_54, &STATE_VARIABLE_U_2_56);
        func_14 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 10))));
        func_14(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) (Arity_53)), Stream_5, STATE_VARIABLE_U_2_56, &STATE_VARIABLE_U_4_25);
      }
      break;
  }
  func_15 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
  func_15(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) "")), Stream_5, STATE_VARIABLE_U_4_25, &STATE_VARIABLE_U_5_26);
  func_16 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_16, 0)), 6))));
  func_16(((MR_Box) (TypeClassInfo_for_pt_output_16)), ((MR_Box) ((MR_String) ").\n")), Stream_5, STATE_VARIABLE_U_5_26, STATE_VARIABLE_IO_14);
}

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_item_decl_pragma_5_p_0_2(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1)
{
  MR_Box wrapper_arg_2;
  MR_Box closure = closure_arg;
  MR_String conv12_Str_4;

  conv12_Str_4 = parse_tree__parse_tree_out_pragma__wrapped_sym_name_arity_to_string_1_f_0(((MR_Word) (wrapper_arg_1)));
  wrapper_arg_2 = ((MR_Box) (conv12_Str_4));
  return wrapper_arg_2;
}

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_item_decl_pragma_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1)
{
  MR_Box wrapper_arg_2;
  MR_Box closure = closure_arg;
  MR_String conv10_Str_4;

  conv10_Str_4 = parse_tree__parse_tree_out_pragma__format_string_values_to_string_1_f_0(((MR_Word) (wrapper_arg_1)));
  wrapper_arg_2 = ((MR_Box) (conv10_Str_4));
  return wrapper_arg_2;
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_item_decl_pragma_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_26,
  MR_Word Info_6,
  MR_Box Stream_7,
  MR_Word DeclPragma_8,
  MR_Box STATE_VARIABLE_IO_0_23,
  MR_Box * STATE_VARIABLE_IO_24)
{
  MR_Word Context_10;
  MR_Word Lang_11;
  MR_Box STATE_VARIABLE_IO_1_25;

  Context_10 = parse_tree__prog_item_pragma__get_decl_pragma_context_1_f_0(DeclPragma_8);
  parse_tree__parse_tree_out_info__maybe_format_line_number_5_p_0(TypeClassInfo_for_pt_output_26, Info_6, Context_10, Stream_7, STATE_VARIABLE_IO_0_23, &STATE_VARIABLE_IO_1_25);
  Lang_11 = parse_tree__parse_tree_out_info__get_output_lang_1_f_0(Info_6);
  switch (MR_tag((MR_Word) DeclPragma_8)) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 0:
      {
        MR_Word ObsPred_12 = (MR_Word) ((MR_Word) (DeclPragma_8));
        MR_Word PredSpec_70 = ((MR_Word) ((MR_hl_field(0, ObsPred_12, 0))));
        MR_Word ObsoleteInFavourOf_71 = ((MR_Word) ((MR_hl_field(0, ObsPred_12, 1))));
        MR_Word PFU_74 = ((MR_Unsigned) ((MR_hl_field(0, PredSpec_70, 0))) & (MR_Integer) 3);
        MR_Word PredName_75 = ((MR_Word) ((MR_hl_field(0, PredSpec_70, 1))));
        MR_Word Arity_76 = ((MR_Word) ((MR_hl_field(0, PredSpec_70, 2))));
        MR_String PredStr_77;
        MR_Word ObsoleteStrs_78;
        MR_String ObsoleteStr_79;
        MR_String DeclStr_80;
        MR_String Var_86;
        MR_String Var_88;
        MR_String Var_89;
        void MR_CALL (* func_13)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

        PredStr_77 = parse_tree__parse_tree_out_pragma__mercury_pred_pfu_name_arity_to_string_3_f_0(PFU_74, PredName_75, Arity_76);
        ObsoleteStrs_78 = mercury__list__map_2_f_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_sym_name_arity_0), (MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_1[9]), ObsoleteInFavourOf_71);
        ObsoleteStr_79 = mercury__string__join_list_2_f_0((MR_String) ", ", ObsoleteStrs_78);
        Var_86 = mercury__string__f_43_43_2_f_0(ObsoleteStr_79, (MR_String) "]).\n");
        Var_88 = mercury__string__f_43_43_2_f_0((MR_String) ", [", Var_86);
        Var_89 = mercury__string__f_43_43_2_f_0(PredStr_77, Var_88);
        DeclStr_80 = mercury__string__f_43_43_2_f_0((MR_String) ":- pragma obsolete(", Var_89);
        func_13 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_26, 0)), 6))));
        func_13(((MR_Box) (TypeClassInfo_for_pt_output_26)), ((MR_Box) (DeclStr_80)), Stream_7, STATE_VARIABLE_IO_1_25, STATE_VARIABLE_IO_24);
      }
      break;
    case (MR_Integer) 1:
      {
        MR_Word ObsProc_13 = (MR_Word) (MR_body((MR_Word) (DeclPragma_8), (MR_Integer) 1));

        parse_tree__parse_tree_out_pragma__mercury_format_pragma_obsolete_proc_5_p_0(TypeClassInfo_for_pt_output_26, Lang_11, ObsProc_13, Stream_7, STATE_VARIABLE_IO_1_25, STATE_VARIABLE_IO_24);
      }
      break;
    case (MR_Integer) 2:
      {
        MR_Word FormatCall_14 = (MR_Word) (MR_body((MR_Word) (DeclPragma_8), (MR_Integer) 2));
        MR_Word PredSpec_27 = ((MR_Word) ((MR_hl_field(0, FormatCall_14, 0))));
        MR_Word OoMFormatArgsSpecs_28 = ((MR_Word) ((MR_hl_field(0, FormatCall_14, 1))));
        MR_Word PF_31 = ((MR_Unsigned) ((MR_hl_field(0, PredSpec_27, 0))) & (MR_Integer) 1);
        MR_Word PredName_32 = ((MR_Word) ((MR_hl_field(0, PredSpec_27, 1))));
        MR_Word Arity_33 = ((MR_Word) ((MR_hl_field(0, PredSpec_27, 2))));
        MR_String PredStr_34;
        MR_Word HeadFormatArgsSpec_35;
        MR_Word TailFormatArgsSpecs_36;
        MR_String SecondArgStr_37;
        MR_String DeclStr_40;
        MR_String Var_50;
        MR_String Var_52;
        MR_String Var_53;
        MR_Word State0_55;
        MR_Word State_56;
        MR_String Var_59;
        MR_Word STATE_VARIABLE_U_1_60;
        MR_Word STATE_VARIABLE_U_2_62;
        MR_Word STATE_VARIABLE_U_3_64;
        MR_Integer Arity_66;
        MR_Word STATE_VARIABLE_U_1_67;
        MR_Word STATE_VARIABLE_U_2_69;
        void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv1_STATE_VARIABLE_U_1_60;
        void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv3_STATE_VARIABLE_U_2_62;
        void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv5_STATE_VARIABLE_U_2_69;
        void MR_CALL (* func_6)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv7_STATE_VARIABLE_U_3_64;
        void MR_CALL (* func_8)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv9_State_56;
        void MR_CALL (* func_11)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

        State0_55 = mercury__string__builder__init_0_f_0();
        Var_59 = mdbcomp__prim_data__pred_or_func_to_str_1_f_0(PF_31);
        func_0 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 6))));
        func_0(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) (Var_59)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (State0_55)), &conv1_STATE_VARIABLE_U_1_60);
        STATE_VARIABLE_U_1_60 = ((MR_Word) (conv1_STATE_VARIABLE_U_1_60));
        func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 6))));
        func_2(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) ((MR_String) "(")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_60)), &conv3_STATE_VARIABLE_U_2_62);
        STATE_VARIABLE_U_2_62 = ((MR_Word) (conv3_STATE_VARIABLE_U_2_62));
        Arity_66 = (MR_Integer) (Arity_33);
        parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_98_114_97_99_107_101_116_101_100_95_115_121_109_95_110_97_109_101_95_110_103_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), (MR_Integer) 1, PredName_32, STATE_VARIABLE_U_2_62, &STATE_VARIABLE_U_1_67);
        func_4 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 6))));
        func_4(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) ((MR_String) "/")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_67)), &conv5_STATE_VARIABLE_U_2_69);
        STATE_VARIABLE_U_2_69 = ((MR_Word) (conv5_STATE_VARIABLE_U_2_69));
        func_6 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 10))));
        func_6(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) (Arity_66)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_69)), &conv7_STATE_VARIABLE_U_3_64);
        STATE_VARIABLE_U_3_64 = ((MR_Word) (conv7_STATE_VARIABLE_U_3_64));
        func_8 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 6))));
        func_8(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) ((MR_String) ")")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_64)), &conv9_State_56);
        State_56 = ((MR_Word) (conv9_State_56));
        PredStr_34 = mercury__string__builder__to_string_1_f_0(State_56);
        HeadFormatArgsSpec_35 = ((MR_Word) ((MR_hl_field(0, OoMFormatArgsSpecs_28, 0))));
        TailFormatArgsSpecs_36 = ((MR_Word) ((MR_hl_field(0, OoMFormatArgsSpecs_28, 1))));
        if ((TailFormatArgsSpecs_36 == (MR_Word) ((MR_Unsigned) 0U)))
          SecondArgStr_37 = parse_tree__parse_tree_out_pragma__format_string_values_to_string_1_f_0(HeadFormatArgsSpec_35);
        else
        {
          MR_Word ArgsSpecsStrs_38;
          MR_String ArgsSpecsStr_39;
          MR_Word Var_42;
          MR_String Var_47;

          {
            Var_42 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
            MR_hl_field(1, Var_42, 0) = ((MR_Box) (HeadFormatArgsSpec_35));
            MR_hl_field(1, Var_42, 1) = ((MR_Box) (TailFormatArgsSpecs_36));
          }
          ArgsSpecsStrs_38 = mercury__list__map_2_f_0((MR_Word) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_format_string_values_0), (MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_1[8]), Var_42);
          ArgsSpecsStr_39 = mercury__string__join_list_2_f_0((MR_String) ", ", ArgsSpecsStrs_38);
          Var_47 = mercury__string__f_43_43_2_f_0(ArgsSpecsStr_39, (MR_String) "]");
          SecondArgStr_37 = mercury__string__f_43_43_2_f_0((MR_String) "[", Var_47);
        }
        Var_50 = mercury__string__f_43_43_2_f_0(SecondArgStr_37, (MR_String) "]).\n");
        Var_52 = mercury__string__f_43_43_2_f_0((MR_String) ", [", Var_50);
        Var_53 = mercury__string__f_43_43_2_f_0(PredStr_34, Var_52);
        DeclStr_40 = mercury__string__f_43_43_2_f_0((MR_String) ":- pragma format_call(", Var_53);
        func_11 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_26, 0)), 6))));
        func_11(((MR_Box) (TypeClassInfo_for_pt_output_26)), ((MR_Box) (DeclStr_40)), Stream_7, STATE_VARIABLE_IO_1_25, STATE_VARIABLE_IO_24);
      }
      break;
    case (MR_Integer) 3:
      switch (((MR_Integer) ((MR_hl_field(3, DeclPragma_8, 0))))) {
        default: /*NOTREACHED*/ MR_assert(0);
        case (MR_Integer) 0:
          {
            MR_Word TypeSpecConstr_15 = ((MR_Word) ((MR_hl_field(3, DeclPragma_8, 1))));

            parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_121_112_101_95_115_112_101_99_95_99_111_110_115_116_114_95_95_91_51_93_95_48_5_p_0(TypeClassInfo_for_pt_output_26, Stream_7, TypeSpecConstr_15, STATE_VARIABLE_IO_1_25, STATE_VARIABLE_IO_24);
          }
          break;
        case (MR_Integer) 1:
          {
            MR_Word TypeSpec_16 = ((MR_Word) ((MR_hl_field(3, DeclPragma_8, 1))));

            parse_tree__parse_tree_out_pragma__mercury_format_pragma_type_spec_5_p_0(TypeClassInfo_for_pt_output_26, Stream_7, Lang_11, TypeSpec_16, STATE_VARIABLE_IO_1_25, STATE_VARIABLE_IO_24);
          }
          break;
        case (MR_Integer) 2:
          {
            MR_Word InputSpec_17 = ((MR_Word) ((MR_hl_field(3, DeclPragma_8, 1))));

            parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_105_110_112_117_116_95_115_112_101_99_95_95_91_51_93_95_48_5_p_0(TypeClassInfo_for_pt_output_26, Stream_7, InputSpec_17, STATE_VARIABLE_IO_1_25, STATE_VARIABLE_IO_24);
          }
          break;
        case (MR_Integer) 3:
          {
            MR_Word OISU_18 = ((MR_Word) ((MR_hl_field(3, DeclPragma_8, 1))));

            parse_tree__parse_tree_out_pragma__mercury_format_pragma_oisu_4_p_0(TypeClassInfo_for_pt_output_26, OISU_18, Stream_7, STATE_VARIABLE_IO_1_25, STATE_VARIABLE_IO_24);
          }
          break;
        case (MR_Integer) 4:
          {
            MR_Word Term_19 = ((MR_Word) ((MR_hl_field(3, DeclPragma_8, 1))));

            parse_tree__parse_tree_out_pragma__mercury_format_pragma_termination_5_p_0(TypeClassInfo_for_pt_output_26, Stream_7, Lang_11, Term_19, STATE_VARIABLE_IO_1_25, STATE_VARIABLE_IO_24);
          }
          break;
        case (MR_Integer) 5:
          {
            MR_Word Term2_20 = ((MR_Word) ((MR_hl_field(3, DeclPragma_8, 1))));

            parse_tree__parse_tree_out_pragma__mercury_format_pragma_termination2_5_p_0(TypeClassInfo_for_pt_output_26, Stream_7, Lang_11, Term2_20, STATE_VARIABLE_IO_1_25, STATE_VARIABLE_IO_24);
          }
          break;
        case (MR_Integer) 6:
          {
            MR_Word Sharing_21 = ((MR_Word) ((MR_hl_field(3, DeclPragma_8, 1))));

            parse_tree__parse_tree_out_pragma__mercury_format_pragma_struct_sharing_5_p_0(TypeClassInfo_for_pt_output_26, Stream_7, Lang_11, Sharing_21, STATE_VARIABLE_IO_1_25, STATE_VARIABLE_IO_24);
          }
          break;
        case (MR_Integer) 7:
          {
            MR_Word Reuse_22 = ((MR_Word) ((MR_hl_field(3, DeclPragma_8, 1))));

            parse_tree__parse_tree_out_pragma__mercury_format_pragma_struct_reuse_5_p_0(TypeClassInfo_for_pt_output_26, Stream_7, Lang_11, Reuse_22, STATE_VARIABLE_IO_1_25, STATE_VARIABLE_IO_24);
          }
          break;
      }
      break;
  }
}

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_105_110_112_117_116_95_115_112_101_99_95_95_91_51_93_95_48_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1)
{
  MR_Box wrapper_arg_2;
  MR_Box closure = closure_arg;
  MR_String conv0_Str_5;

  conv0_Str_5 = parse_tree__parse_tree_out_pragma__get_zero_arity_inst_ctor_name_1_f_0(((MR_Word) (wrapper_arg_1)));
  wrapper_arg_2 = ((MR_Box) (conv0_Str_5));
  return wrapper_arg_2;
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_105_110_112_117_116_95_115_112_101_99_95_95_91_51_93_95_48_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_43,
  MR_Box S_6,
  MR_Word InputSpec_8,
  MR_Box STATE_VARIABLE_U_0_24,
  MR_Box * STATE_VARIABLE_U_25)
{
  MR_Word Type_11 = ((MR_Word) ((MR_hl_field(0, InputSpec_8, 1))));
  MR_Word ReplaceOrAdd_12 = ((MR_Unsigned) ((MR_hl_field(0, InputSpec_8, 2))) & (MR_Integer) 1);
  MR_Word OoMInstCtors_13 = ((MR_Word) ((MR_hl_field(0, InputSpec_8, 3))));
  MR_Word TVarSet_16 = ((MR_Word) ((MR_hl_field(0, InputSpec_8, 6))));
  MR_Word InstCtors_19;
  MR_Word InstStrs0_20;
  MR_Word InstStrs_21;
  MR_String InstsStr_22;
  MR_Box STATE_VARIABLE_U_1_29;
  MR_Box STATE_VARIABLE_U_2_31;
  MR_Box STATE_VARIABLE_U_3_33;
  MR_Box STATE_VARIABLE_U_4_35;
  MR_Box STATE_VARIABLE_U_6_38;
  MR_Box STATE_VARIABLE_U_7_40;
  MR_Box STATE_VARIABLE_U_8_41;
  void MR_CALL (* func_1)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_5)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_6)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_7)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_8)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

  InstCtors_19 = mercury__one_or_more__one_or_more_to_list_1_f_1((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_inst_ctor_0), OoMInstCtors_13);
  InstStrs0_20 = mercury__list__map_2_f_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_inst_ctor_0), (MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_1[7]), InstCtors_19);
  mercury__list__sort_2_p_0((MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), InstStrs0_20, &InstStrs_21);
  InstsStr_22 = mercury__string__join_list_2_f_0((MR_String) ", ", InstStrs_21);
  func_1 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_1(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) ":- pragma input_spec(")), S_6, STATE_VARIABLE_U_0_24, &STATE_VARIABLE_U_1_29);
  parse_tree__parse_tree_out_type__mercury_format_type_6_p_0(TypeClassInfo_for_pt_output_43, TVarSet_16, (MR_Integer) 0, Type_11, S_6, STATE_VARIABLE_U_1_29, &STATE_VARIABLE_U_2_31);
  func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_2(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) ", ")), S_6, STATE_VARIABLE_U_2_31, &STATE_VARIABLE_U_3_33);
  switch (ReplaceOrAdd_12) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 1:
      {
        void MR_CALL (* func_3)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));

        func_3(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) "add_to_in_mode,\n")), S_6, STATE_VARIABLE_U_3_33, &STATE_VARIABLE_U_4_35);
      }
      break;
    case (MR_Integer) 0:
      {
        void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));

        func_4(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) "replace_in_mode,\n")), S_6, STATE_VARIABLE_U_3_33, &STATE_VARIABLE_U_4_35);
      }
      break;
  }
  func_5 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_5(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) "    ")), S_6, STATE_VARIABLE_U_4_35, &STATE_VARIABLE_U_6_38);
  func_6 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_6(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) "[")), S_6, STATE_VARIABLE_U_6_38, &STATE_VARIABLE_U_7_40);
  func_7 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_7(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) (InstsStr_22)), S_6, STATE_VARIABLE_U_7_40, &STATE_VARIABLE_U_8_41);
  func_8 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_8(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) "]).\n")), S_6, STATE_VARIABLE_U_8_41, STATE_VARIABLE_U_25);
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_121_112_101_95_115_112_101_99_95_99_111_110_115_116_114_95_95_91_51_93_95_48_5_p_0_2(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4)
{
  MR_Box closure = closure_arg;

  parse_tree__parse_tree_out_pragma__mercury_format_type_subst_new_6_p_0(((MR_Word) ((MR_hl_field(0, closure, 3)))), ((MR_String) ((MR_hl_field(0, closure, 4)))), ((MR_Word) ((MR_hl_field(0, closure, 5)))), ((MR_Word) (wrapper_arg_1)), wrapper_arg_2, wrapper_arg_3, wrapper_arg_4);
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_121_112_101_95_115_112_101_99_95_99_111_110_115_116_114_95_95_91_51_93_95_48_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4)
{
  MR_Box closure = closure_arg;

  parse_tree__parse_tree_out_pragma__mercury_format_type_spec_constraint_6_p_0(((MR_Word) ((MR_hl_field(0, closure, 3)))), ((MR_String) ((MR_hl_field(0, closure, 4)))), ((MR_Word) ((MR_hl_field(0, closure, 5)))), ((MR_Word) (wrapper_arg_1)), wrapper_arg_2, wrapper_arg_3, wrapper_arg_4);
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_121_112_101_95_115_112_101_99_95_99_111_110_115_116_114_95_95_91_51_93_95_48_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_40,
  MR_Box S_6,
  MR_Word TypeSpecConstr_8,
  MR_Box STATE_VARIABLE_U_0_19,
  MR_Box * STATE_VARIABLE_U_20)
{
  MR_Word OoMConstraints_11 = ((MR_Word) ((MR_hl_field(0, TypeSpecConstr_8, 1))));
  MR_Word ApplyToSupers_12 = ((MR_Unsigned) ((MR_hl_field(0, TypeSpecConstr_8, 2))) & (MR_Integer) 1);
  MR_Word OoMTypeSubsts_13 = ((MR_Word) ((MR_hl_field(0, TypeSpecConstr_8, 3))));
  MR_Word TVarSet_14 = ((MR_Word) ((MR_hl_field(0, TypeSpecConstr_8, 4))));
  MR_Box STATE_VARIABLE_U_1_22;
  MR_Word Var_23;
  MR_Word Var_25;
  MR_Box STATE_VARIABLE_U_2_26;
  MR_Box STATE_VARIABLE_U_3_28;
  MR_Box STATE_VARIABLE_U_4_30;
  MR_Box STATE_VARIABLE_U_6_34;
  MR_Word Var_35;
  MR_Word Var_37;
  MR_Box STATE_VARIABLE_U_7_38;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_40, 0)), 6))));
  void MR_CALL (* func_1)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_5)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_6)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_7)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

  func_0(((MR_Box) (TypeClassInfo_for_pt_output_40)), ((MR_Box) ((MR_String) ":- pragma type_spec_constrained_preds([")), S_6, STATE_VARIABLE_U_0_19, &STATE_VARIABLE_U_1_22);
  {
    Var_23 = (MR_Word) MR_new_object(MR_Word, (6 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_23, 0) = ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_8[1]));
    MR_hl_field(0, Var_23, 1) = ((MR_Box) (parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_121_112_101_95_115_112_101_99_95_99_111_110_115_116_114_95_95_91_51_93_95_48_5_p_0_1));
    MR_hl_field(0, Var_23, 2) = ((MR_Box) ((MR_Integer) 3));
    MR_hl_field(0, Var_23, 3) = ((MR_Box) (TypeClassInfo_for_pt_output_40));
    MR_hl_field(0, Var_23, 4) = ((MR_Box) ((MR_String) "    "));
    MR_hl_field(0, Var_23, 5) = ((MR_Box) (TVarSet_14));
  }
  Var_25 = mercury__one_or_more__one_or_more_to_list_1_f_1((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_var_or_ground_constraint_0), OoMConstraints_11);
  func_1 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_40, 0)), 25))));
  func_1(((MR_Box) (TypeClassInfo_for_pt_output_40)), ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_var_or_ground_constraint_0)), ((MR_Box) (Var_23)), ((MR_Box) ((MR_String) ",\n")), ((MR_Box) (Var_25)), S_6, STATE_VARIABLE_U_1_22, &STATE_VARIABLE_U_2_26);
  func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_40, 0)), 6))));
  func_2(((MR_Box) (TypeClassInfo_for_pt_output_40)), ((MR_Box) ((MR_String) "\n], ")), S_6, STATE_VARIABLE_U_2_26, &STATE_VARIABLE_U_3_28);
  switch (ApplyToSupers_12) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 1:
      {
        void MR_CALL (* func_3)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_40, 0)), 6))));

        func_3(((MR_Box) (TypeClassInfo_for_pt_output_40)), ((MR_Box) ((MR_String) "apply_to_superclasses, ")), S_6, STATE_VARIABLE_U_3_28, &STATE_VARIABLE_U_4_30);
      }
      break;
    case (MR_Integer) 0:
      {
        void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_40, 0)), 6))));

        func_4(((MR_Box) (TypeClassInfo_for_pt_output_40)), ((MR_Box) ((MR_String) "do_not_apply_to_superclasses, ")), S_6, STATE_VARIABLE_U_3_28, &STATE_VARIABLE_U_4_30);
      }
      break;
  }
  func_5 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_40, 0)), 6))));
  func_5(((MR_Box) (TypeClassInfo_for_pt_output_40)), ((MR_Box) ((MR_String) "[\n")), S_6, STATE_VARIABLE_U_4_30, &STATE_VARIABLE_U_6_34);
  {
    Var_35 = (MR_Word) MR_new_object(MR_Word, (6 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_35, 0) = ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_8[2]));
    MR_hl_field(0, Var_35, 1) = ((MR_Box) (parse_tree__parse_tree_out_pragma__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_112_114_97_103_109_97_95_116_121_112_101_95_115_112_101_99_95_99_111_110_115_116_114_95_95_91_51_93_95_48_5_p_0_2));
    MR_hl_field(0, Var_35, 2) = ((MR_Box) ((MR_Integer) 3));
    MR_hl_field(0, Var_35, 3) = ((MR_Box) (TypeClassInfo_for_pt_output_40));
    MR_hl_field(0, Var_35, 4) = ((MR_Box) ((MR_String) "    "));
    MR_hl_field(0, Var_35, 5) = ((MR_Box) (TVarSet_14));
  }
  Var_37 = mercury__one_or_more__one_or_more_to_list_1_f_1((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_4[0]), OoMTypeSubsts_13);
  func_6 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_40, 0)), 25))));
  func_6(((MR_Box) (TypeClassInfo_for_pt_output_40)), ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_4[0])), ((MR_Box) (Var_35)), ((MR_Box) ((MR_String) ",\n")), ((MR_Box) (Var_37)), S_6, STATE_VARIABLE_U_6_34, &STATE_VARIABLE_U_7_38);
  func_7 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_40, 0)), 6))));
  func_7(((MR_Box) (TypeClassInfo_for_pt_output_40)), ((MR_Box) ((MR_String) "\n]).\n")), S_6, STATE_VARIABLE_U_7_38, STATE_VARIABLE_U_20);
}

static MR_String MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_pred_pfu_name_arity_to_string_3_f_0(
  MR_Word PFU_5,
  MR_Word PredName_6,
  MR_Word UserArity_7)
{
  MR_String Str_8;
  MR_Word State0_9;
  MR_Word State_10;

  State0_9 = mercury__string__builder__init_0_f_0();
  switch (PFU_5) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 1:
      {
        MR_String Var_15;
        MR_Word STATE_VARIABLE_U_1_16;
        MR_Word STATE_VARIABLE_U_2_18;
        MR_Word STATE_VARIABLE_U_3_20;
        MR_Integer Arity_22;
        MR_Word STATE_VARIABLE_U_1_23;
        MR_Word STATE_VARIABLE_U_2_25;
        void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv1_STATE_VARIABLE_U_1_16;
        void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv3_STATE_VARIABLE_U_2_18;
        void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv5_STATE_VARIABLE_U_2_25;
        void MR_CALL (* func_6)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv7_STATE_VARIABLE_U_3_20;
        void MR_CALL (* func_8)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv9_State_10;

        Var_15 = mdbcomp__prim_data__pred_or_func_to_str_1_f_0((MR_Integer) 1);
        func_0 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 6))));
        func_0(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) (Var_15)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (State0_9)), &conv1_STATE_VARIABLE_U_1_16);
        STATE_VARIABLE_U_1_16 = ((MR_Word) (conv1_STATE_VARIABLE_U_1_16));
        func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 6))));
        func_2(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) ((MR_String) "(")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_16)), &conv3_STATE_VARIABLE_U_2_18);
        STATE_VARIABLE_U_2_18 = ((MR_Word) (conv3_STATE_VARIABLE_U_2_18));
        Arity_22 = (MR_Integer) (UserArity_7);
        parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_98_114_97_99_107_101_116_101_100_95_115_121_109_95_110_97_109_101_95_110_103_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), (MR_Integer) 1, PredName_6, STATE_VARIABLE_U_2_18, &STATE_VARIABLE_U_1_23);
        func_4 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 6))));
        func_4(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) ((MR_String) "/")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_23)), &conv5_STATE_VARIABLE_U_2_25);
        STATE_VARIABLE_U_2_25 = ((MR_Word) (conv5_STATE_VARIABLE_U_2_25));
        func_6 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 10))));
        func_6(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) (Arity_22)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_25)), &conv7_STATE_VARIABLE_U_3_20);
        STATE_VARIABLE_U_3_20 = ((MR_Word) (conv7_STATE_VARIABLE_U_3_20));
        func_8 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 6))));
        func_8(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) ((MR_String) ")")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_20)), &conv9_State_10);
        State_10 = ((MR_Word) (conv9_State_10));
      }
      break;
    case (MR_Integer) 0:
      {
        MR_String Var_26;
        MR_Word STATE_VARIABLE_U_1_27;
        MR_Word STATE_VARIABLE_U_2_29;
        MR_Word STATE_VARIABLE_U_3_31;
        MR_Integer Arity_33;
        MR_Word STATE_VARIABLE_U_1_34;
        MR_Word STATE_VARIABLE_U_2_36;
        void MR_CALL (* func_10)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv11_STATE_VARIABLE_U_1_27;
        void MR_CALL (* func_12)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv13_STATE_VARIABLE_U_2_29;
        void MR_CALL (* func_14)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv15_STATE_VARIABLE_U_2_36;
        void MR_CALL (* func_16)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv17_STATE_VARIABLE_U_3_31;
        void MR_CALL (* func_18)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv19_State_10;

        Var_26 = mdbcomp__prim_data__pred_or_func_to_str_1_f_0((MR_Integer) 0);
        func_10 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 6))));
        func_10(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) (Var_26)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (State0_9)), &conv11_STATE_VARIABLE_U_1_27);
        STATE_VARIABLE_U_1_27 = ((MR_Word) (conv11_STATE_VARIABLE_U_1_27));
        func_12 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 6))));
        func_12(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) ((MR_String) "(")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_27)), &conv13_STATE_VARIABLE_U_2_29);
        STATE_VARIABLE_U_2_29 = ((MR_Word) (conv13_STATE_VARIABLE_U_2_29));
        Arity_33 = (MR_Integer) (UserArity_7);
        parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_98_114_97_99_107_101_116_101_100_95_115_121_109_95_110_97_109_101_95_110_103_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), (MR_Integer) 1, PredName_6, STATE_VARIABLE_U_2_29, &STATE_VARIABLE_U_1_34);
        func_14 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 6))));
        func_14(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) ((MR_String) "/")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_34)), &conv15_STATE_VARIABLE_U_2_36);
        STATE_VARIABLE_U_2_36 = ((MR_Word) (conv15_STATE_VARIABLE_U_2_36));
        func_16 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 10))));
        func_16(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) (Arity_33)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_36)), &conv17_STATE_VARIABLE_U_3_31);
        STATE_VARIABLE_U_3_31 = ((MR_Word) (conv17_STATE_VARIABLE_U_3_31));
        func_18 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 6))));
        func_18(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) ((MR_String) ")")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_3_31)), &conv19_State_10);
        State_10 = ((MR_Word) (conv19_State_10));
      }
      break;
    case (MR_Integer) 2:
      {
        MR_Integer Arity_38 = (MR_Integer) (UserArity_7);
        MR_Word STATE_VARIABLE_U_1_39;
        MR_Word STATE_VARIABLE_U_2_41;
        void MR_CALL (* func_20)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv21_STATE_VARIABLE_U_2_41;
        void MR_CALL (* func_22)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        MR_Box conv23_State_10;

        parse_tree__parse_tree_out_sym_name__f_84_121_112_101_83_112_101_99_79_102_95_95_112_114_101_100_95_95_109_101_114_99_117_114_121_95_102_111_114_109_97_116_95_98_114_97_99_107_101_116_101_100_95_115_121_109_95_110_97_109_101_95_110_103_116_95_95_91_83_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_104_97_110_100_108_101_44_32_85_32_61_32_115_116_114_105_110_103_46_98_117_105_108_100_101_114_46_115_116_97_116_101_93_95_48_95_49_5_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), (MR_Integer) 0, PredName_6, State0_9, &STATE_VARIABLE_U_1_39);
        func_20 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 6))));
        func_20(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) ((MR_String) "/")), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_1_39)), &conv21_STATE_VARIABLE_U_2_41);
        STATE_VARIABLE_U_2_41 = ((MR_Word) (conv21_STATE_VARIABLE_U_2_41));
        func_22 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]), 0)), 10))));
        func_22(((MR_Box) ((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_2[3]))), ((MR_Box) (Arity_38)), ((MR_Box) ((MR_Integer) 0)), ((MR_Box) (STATE_VARIABLE_U_2_41)), &conv23_State_10);
        State_10 = ((MR_Word) (conv23_State_10));
      }
      break;
  }
  Str_8 = mercury__string__builder__to_string_1_f_0(State_10);
  return Str_8;
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_oisu_4_p_0(
  MR_Word TypeClassInfo_for_pt_output_43,
  MR_Word OISU_5,
  MR_Box S_6,
  MR_Box STATE_VARIABLE_U_0_16,
  MR_Box * STATE_VARIABLE_U_17)
{
  MR_Word TypeCtor_8 = ((MR_Word) ((MR_hl_field(0, OISU_5, 0))));
  MR_Word CreatorPreds_9 = ((MR_Word) ((MR_hl_field(0, OISU_5, 1))));
  MR_Word MutatorPreds_10 = ((MR_Word) ((MR_hl_field(0, OISU_5, 2))));
  MR_Word DestructorPreds_11 = ((MR_Word) ((MR_hl_field(0, OISU_5, 3))));
  MR_Word TypeName_14;
  MR_Integer TypeArity_15;
  MR_Box STATE_VARIABLE_U_1_19;
  MR_Box STATE_VARIABLE_U_2_21;
  MR_Box STATE_VARIABLE_U_3_23;
  MR_Box STATE_VARIABLE_U_4_24;
  MR_Box STATE_VARIABLE_U_5_26;
  MR_Box STATE_VARIABLE_U_6_28;
  MR_Box STATE_VARIABLE_U_7_29;
  MR_Box STATE_VARIABLE_U_8_31;
  MR_Box STATE_VARIABLE_U_9_33;
  MR_Box STATE_VARIABLE_U_10_34;
  MR_Box STATE_VARIABLE_U_11_36;
  MR_Box STATE_VARIABLE_U_12_38;
  MR_Box STATE_VARIABLE_U_13_39;
  MR_Box STATE_VARIABLE_U_14_41;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  void MR_CALL (* func_1)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_3)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_5)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_6)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_7)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_8)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_9)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_10)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

  func_0(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) ":- pragma oisu(")), S_6, STATE_VARIABLE_U_0_16, &STATE_VARIABLE_U_1_19);
  TypeName_14 = ((MR_Word) ((MR_hl_field(0, TypeCtor_8, 0))));
  TypeArity_15 = ((MR_Integer) ((MR_hl_field(0, TypeCtor_8, 1))));
  parse_tree__parse_tree_out_sym_name__mercury_format_bracketed_sym_name_ngt_5_p_0(TypeClassInfo_for_pt_output_43, (MR_Integer) 0, TypeName_14, S_6, STATE_VARIABLE_U_1_19, &STATE_VARIABLE_U_2_21);
  func_1 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_1(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) "/")), S_6, STATE_VARIABLE_U_2_21, &STATE_VARIABLE_U_3_23);
  func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 10))));
  func_2(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) (TypeArity_15)), S_6, STATE_VARIABLE_U_3_23, &STATE_VARIABLE_U_4_24);
  func_3 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_3(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) ",\n")), S_6, STATE_VARIABLE_U_4_24, &STATE_VARIABLE_U_5_26);
  func_4 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_4(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) "\tcreators([\n")), S_6, STATE_VARIABLE_U_5_26, &STATE_VARIABLE_U_6_28);
  if ((CreatorPreds_9 == (MR_Word) ((MR_Unsigned) 0U)))
    STATE_VARIABLE_U_7_29 = STATE_VARIABLE_U_6_28;
  else
  {
    MR_Word PredSpec_47 = ((MR_Word) ((MR_hl_field(1, CreatorPreds_9, 0))));
    MR_Word PredSpecs_48 = ((MR_Word) ((MR_hl_field(1, CreatorPreds_9, 1))));

    parse_tree__parse_tree_out_pragma__mercury_format_pf_sym_name_user_arity_list_lag_5_p_0(TypeClassInfo_for_pt_output_43, PredSpec_47, PredSpecs_48, S_6, STATE_VARIABLE_U_6_28, &STATE_VARIABLE_U_7_29);
  }
  func_5 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_5(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) "\t]),\n")), S_6, STATE_VARIABLE_U_7_29, &STATE_VARIABLE_U_8_31);
  func_6 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_6(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) "\tmutators([\n")), S_6, STATE_VARIABLE_U_8_31, &STATE_VARIABLE_U_9_33);
  if ((MutatorPreds_10 == (MR_Word) ((MR_Unsigned) 0U)))
    STATE_VARIABLE_U_10_34 = STATE_VARIABLE_U_9_33;
  else
  {
    MR_Word PredSpec_55 = ((MR_Word) ((MR_hl_field(1, MutatorPreds_10, 0))));
    MR_Word PredSpecs_56 = ((MR_Word) ((MR_hl_field(1, MutatorPreds_10, 1))));

    parse_tree__parse_tree_out_pragma__mercury_format_pf_sym_name_user_arity_list_lag_5_p_0(TypeClassInfo_for_pt_output_43, PredSpec_55, PredSpecs_56, S_6, STATE_VARIABLE_U_9_33, &STATE_VARIABLE_U_10_34);
  }
  func_7 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_7(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) "\t]),\n")), S_6, STATE_VARIABLE_U_10_34, &STATE_VARIABLE_U_11_36);
  func_8 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_8(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) "\tdestructors([\n")), S_6, STATE_VARIABLE_U_11_36, &STATE_VARIABLE_U_12_38);
  if ((DestructorPreds_11 == (MR_Word) ((MR_Unsigned) 0U)))
    STATE_VARIABLE_U_13_39 = STATE_VARIABLE_U_12_38;
  else
  {
    MR_Word PredSpec_63 = ((MR_Word) ((MR_hl_field(1, DestructorPreds_11, 0))));
    MR_Word PredSpecs_64 = ((MR_Word) ((MR_hl_field(1, DestructorPreds_11, 1))));

    parse_tree__parse_tree_out_pragma__mercury_format_pf_sym_name_user_arity_list_lag_5_p_0(TypeClassInfo_for_pt_output_43, PredSpec_63, PredSpecs_64, S_6, STATE_VARIABLE_U_12_38, &STATE_VARIABLE_U_13_39);
  }
  func_9 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_9(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) "\t])\n")), S_6, STATE_VARIABLE_U_13_39, &STATE_VARIABLE_U_14_41);
  func_10 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_43, 0)), 6))));
  func_10(((MR_Box) (TypeClassInfo_for_pt_output_43)), ((MR_Box) ((MR_String) ").\n")), S_6, STATE_VARIABLE_U_14_41, STATE_VARIABLE_U_17);
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pf_sym_name_user_arity_list_lag_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_24,
  MR_Word PredSpec_6,
  MR_Word PredSpecs_7,
  MR_Box S_8,
  MR_Box STATE_VARIABLE_U_0_15,
  MR_Box * STATE_VARIABLE_U_16)
{
  while (MR_TRUE)
  {
    MR_Word PredOrFunc_10;
    MR_Word PredName_11;
    MR_Word UserArity_12;
    MR_Box STATE_VARIABLE_U_1_18;
    MR_Box STATE_VARIABLE_U_2_19;
    MR_String Var_25;
    MR_Box STATE_VARIABLE_U_1_26;
    MR_Box STATE_VARIABLE_U_2_28;
    MR_Box STATE_VARIABLE_U_3_30;
    MR_Integer Arity_32;
    MR_Box STATE_VARIABLE_U_1_33;
    MR_Box STATE_VARIABLE_U_2_35;
    void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_24, 0)), 6))));
    void MR_CALL (* func_1)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    void MR_CALL (* func_3)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    void MR_CALL (* func_5)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

    // setup for model_det tailcalls optimized into a loop
    ;
    func_0(((MR_Box) (TypeClassInfo_for_pt_output_24)), ((MR_Box) ((MR_String) "\t\t")), S_8, STATE_VARIABLE_U_0_15, &STATE_VARIABLE_U_1_18);
    PredOrFunc_10 = ((MR_Unsigned) ((MR_hl_field(0, PredSpec_6, 0))) & (MR_Integer) 1);
    PredName_11 = ((MR_Word) ((MR_hl_field(0, PredSpec_6, 1))));
    UserArity_12 = ((MR_Word) ((MR_hl_field(0, PredSpec_6, 2))));
    Var_25 = mdbcomp__prim_data__pred_or_func_to_str_1_f_0(PredOrFunc_10);
    func_1 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_24, 0)), 6))));
    func_1(((MR_Box) (TypeClassInfo_for_pt_output_24)), ((MR_Box) (Var_25)), S_8, STATE_VARIABLE_U_1_18, &STATE_VARIABLE_U_1_26);
    func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_24, 0)), 6))));
    func_2(((MR_Box) (TypeClassInfo_for_pt_output_24)), ((MR_Box) ((MR_String) "(")), S_8, STATE_VARIABLE_U_1_26, &STATE_VARIABLE_U_2_28);
    Arity_32 = (MR_Integer) (UserArity_12);
    parse_tree__parse_tree_out_sym_name__mercury_format_bracketed_sym_name_ngt_5_p_0(TypeClassInfo_for_pt_output_24, (MR_Integer) 1, PredName_11, S_8, STATE_VARIABLE_U_2_28, &STATE_VARIABLE_U_1_33);
    func_3 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_24, 0)), 6))));
    func_3(((MR_Box) (TypeClassInfo_for_pt_output_24)), ((MR_Box) ((MR_String) "/")), S_8, STATE_VARIABLE_U_1_33, &STATE_VARIABLE_U_2_35);
    func_4 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_24, 0)), 10))));
    func_4(((MR_Box) (TypeClassInfo_for_pt_output_24)), ((MR_Box) (Arity_32)), S_8, STATE_VARIABLE_U_2_35, &STATE_VARIABLE_U_3_30);
    func_5 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_24, 0)), 6))));
    func_5(((MR_Box) (TypeClassInfo_for_pt_output_24)), ((MR_Box) ((MR_String) ")")), S_8, STATE_VARIABLE_U_3_30, &STATE_VARIABLE_U_2_19);
    if ((PredSpecs_7 == (MR_Word) ((MR_Unsigned) 0U)))
    {
      void MR_CALL (* func_6)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_24, 0)), 6))));

      func_6(((MR_Box) (TypeClassInfo_for_pt_output_24)), ((MR_Box) ((MR_String) "\n")), S_8, STATE_VARIABLE_U_2_19, STATE_VARIABLE_U_16);
    }
    else
    {
      MR_Word HeadPredSpec_13 = ((MR_Word) ((MR_hl_field(1, PredSpecs_7, 0))));
      MR_Word TailPredSpecs_14 = ((MR_Word) ((MR_hl_field(1, PredSpecs_7, 1))));
      MR_Box STATE_VARIABLE_U_4_23;
      void MR_CALL (* func_7)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_24, 0)), 6))));
      MR_Word next_value_of_PredSpec_6;
      MR_Word next_value_of_PredSpecs_7;
      MR_Box next_value_of_STATE_VARIABLE_U_0_15;

      func_7(((MR_Box) (TypeClassInfo_for_pt_output_24)), ((MR_Box) ((MR_String) ",\n")), S_8, STATE_VARIABLE_U_2_19, &STATE_VARIABLE_U_4_23);
      // direct tailcall eliminated
      ;
      next_value_of_PredSpec_6 = HeadPredSpec_13;
      next_value_of_PredSpecs_7 = TailPredSpecs_14;
      next_value_of_STATE_VARIABLE_U_0_15 = STATE_VARIABLE_U_4_23;
      PredSpec_6 = next_value_of_PredSpec_6;
      PredSpecs_7 = next_value_of_PredSpecs_7;
      STATE_VARIABLE_U_0_15 = next_value_of_STATE_VARIABLE_U_0_15;
      continue;
    }
    break;
  }
}

static MR_String MR_CALL 
parse_tree__parse_tree_out_pragma__format_string_values_to_string_1_f_0(
  MR_Word FormatStringValues_3)
{
  MR_String Str_4;
  MR_Integer OrigFS_5 = ((MR_Integer) ((MR_hl_field(0, FormatStringValues_3, 0))));
  MR_Integer OrigVL_6 = ((MR_Integer) ((MR_hl_field(0, FormatStringValues_3, 1))));
  MR_String Var_16;
  MR_String Var_23;
  MR_String Var_25;
  MR_String Var_26;
  MR_String Var_33;

  mercury__string__format__format_signed_int_component_nowidth_noprec_3_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_5[0]), OrigVL_6, &Var_16);
  Var_23 = mercury__string__f_43_43_2_f_0(Var_16, (MR_String) ")");
  Var_25 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_23);
  mercury__string__format__format_signed_int_component_nowidth_noprec_3_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_5[0]), OrigFS_5, &Var_26);
  Var_33 = mercury__string__f_43_43_2_f_0(Var_26, Var_25);
  Str_4 = mercury__string__f_43_43_2_f_0((MR_String) "format_string_values(", Var_33);
  return Str_4;
}

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_obsolete_proc_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1)
{
  MR_Box wrapper_arg_2;
  MR_Box closure = closure_arg;
  MR_String conv0_Str_4;

  conv0_Str_4 = parse_tree__parse_tree_out_pragma__wrapped_sym_name_arity_to_string_1_f_0(((MR_Word) (wrapper_arg_1)));
  wrapper_arg_2 = ((MR_Box) (conv0_Str_4));
  return wrapper_arg_2;
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_obsolete_proc_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_28,
  MR_Word Lang_6,
  MR_Word ObsoleteProc_7,
  MR_Box S_8,
  MR_Box STATE_VARIABLE_U_0_18,
  MR_Box * STATE_VARIABLE_U_19)
{
  MR_Word PredNameModesPF_10 = ((MR_Word) ((MR_hl_field(0, ObsoleteProc_7, 0))));
  MR_Word ObsoleteInFavourOf_11 = ((MR_Word) ((MR_hl_field(0, ObsoleteProc_7, 1))));
  MR_String PredStr_14;
  MR_Word ObsoleteStrs_15;
  MR_String ObsoleteStr_16;
  MR_String DeclStr_17;
  MR_String Var_34;
  MR_String Var_36;
  MR_String Var_37;
  void MR_CALL (* func_1)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

  PredStr_14 = parse_tree__parse_tree_out_pragma__proc_pf_name_modes_to_string_2_f_0(Lang_6, PredNameModesPF_10);
  ObsoleteStrs_15 = mercury__list__map_2_f_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_sym_name_arity_0), (MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_1[6]), ObsoleteInFavourOf_11);
  ObsoleteStr_16 = mercury__string__join_list_2_f_0((MR_String) ", ", ObsoleteStrs_15);
  Var_34 = mercury__string__f_43_43_2_f_0(ObsoleteStr_16, (MR_String) "]).\n");
  Var_36 = mercury__string__f_43_43_2_f_0((MR_String) ", [", Var_34);
  Var_37 = mercury__string__f_43_43_2_f_0(PredStr_14, Var_36);
  DeclStr_17 = mercury__string__f_43_43_2_f_0((MR_String) ":- pragma obsolete_proc(", Var_37);
  func_1 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_28, 0)), 6))));
  func_1(((MR_Box) (TypeClassInfo_for_pt_output_28)), ((MR_Box) (DeclStr_17)), S_8, STATE_VARIABLE_U_0_18, STATE_VARIABLE_U_19);
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_struct_reuse_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4)
{
  MR_Box closure = closure_arg;

  parse_tree__parse_tree_out_type__mercury_format_type_6_p_0(((MR_Word) ((MR_hl_field(0, closure, 3)))), ((MR_Word) ((MR_hl_field(0, closure, 4)))), ((MR_Word) ((MR_hl_field(0, closure, 5)))), ((MR_Word) (wrapper_arg_1)), wrapper_arg_2, wrapper_arg_3, wrapper_arg_4);
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_struct_reuse_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_33,
  MR_Box S_6,
  MR_Word Lang_7,
  MR_Word Reuse_8,
  MR_Box STATE_VARIABLE_U_0_20,
  MR_Box * STATE_VARIABLE_U_21)
{
  MR_Word PredNameModesPF_10 = ((MR_Word) ((MR_hl_field(0, Reuse_8, 0))));
  MR_Word HeadVars_11 = ((MR_Word) ((MR_hl_field(0, Reuse_8, 1))));
  MR_Word HeadVarTypes_12 = ((MR_Word) ((MR_hl_field(0, Reuse_8, 2))));
  MR_Word VarSet_13 = ((MR_Word) ((MR_hl_field(0, Reuse_8, 3))));
  MR_Word TVarSet_14 = ((MR_Word) ((MR_hl_field(0, Reuse_8, 4))));
  MR_Word MaybeStructureReuseDomain_15 = ((MR_Word) ((MR_hl_field(0, Reuse_8, 5))));
  MR_String PredStr_18;
  MR_String InitStr_19;
  MR_Box STATE_VARIABLE_U_1_26;
  MR_Box STATE_VARIABLE_U_2_27;
  MR_Box STATE_VARIABLE_U_3_29;
  MR_Word Var_30;
  MR_Box STATE_VARIABLE_U_4_31;
  MR_String Var_35;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_7)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_8)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

  PredStr_18 = parse_tree__parse_tree_out_pragma__proc_pf_name_modes_to_string_2_f_0(Lang_7, PredNameModesPF_10);
  Var_35 = mercury__string__f_43_43_2_f_0(PredStr_18, (MR_String) ", ");
  InitStr_19 = mercury__string__f_43_43_2_f_0((MR_String) ":- pragma structure_reuse(", Var_35);
  func_0 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
  func_0(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) (InitStr_19)), S_6, STATE_VARIABLE_U_0_20, &STATE_VARIABLE_U_1_26);
  if ((HeadVars_11 == (MR_Word) ((MR_Unsigned) 0U)))
  {
    void MR_CALL (* func_1)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));

    func_1(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) ((MR_String) "vars, types")), S_6, STATE_VARIABLE_U_1_26, &STATE_VARIABLE_U_2_27);
  }
  else
  {
    MR_Box STATE_VARIABLE_U_2_39;
    MR_Box STATE_VARIABLE_U_3_41;
    MR_Box STATE_VARIABLE_U_4_43;
    MR_Box STATE_VARIABLE_U_5_45;
    MR_Word Var_46;
    MR_Box STATE_VARIABLE_U_6_48;
    void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
    void MR_CALL (* func_3)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    void MR_CALL (* func_5)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    void MR_CALL (* func_6)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

    func_2(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) ((MR_String) "vars(")), S_6, STATE_VARIABLE_U_1_26, &STATE_VARIABLE_U_2_39);
    parse_tree__parse_tree_out_term__mercury_format_vars_vs_6_p_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_var_type_0), TypeClassInfo_for_pt_output_33, VarSet_13, (MR_Integer) 0, HeadVars_11, S_6, STATE_VARIABLE_U_2_39, &STATE_VARIABLE_U_3_41);
    func_3 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
    func_3(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) ((MR_String) "), ")), S_6, STATE_VARIABLE_U_3_41, &STATE_VARIABLE_U_4_43);
    func_4 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
    func_4(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) ((MR_String) "types(")), S_6, STATE_VARIABLE_U_4_43, &STATE_VARIABLE_U_5_45);
    {
      Var_46 = (MR_Word) MR_new_object(MR_Word, (6 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(0, Var_46, 0) = ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_8[0]));
      MR_hl_field(0, Var_46, 1) = ((MR_Box) (parse_tree__parse_tree_out_pragma__mercury_format_pragma_struct_reuse_5_p_0_1));
      MR_hl_field(0, Var_46, 2) = ((MR_Box) ((MR_Integer) 3));
      MR_hl_field(0, Var_46, 3) = ((MR_Box) (TypeClassInfo_for_pt_output_33));
      MR_hl_field(0, Var_46, 4) = ((MR_Box) (TVarSet_14));
      MR_hl_field(0, Var_46, 5) = ((MR_Box) ((MR_Integer) 0));
    }
    func_5 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 25))));
    func_5(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_type_0)), ((MR_Box) (Var_46)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) (HeadVarTypes_12)), S_6, STATE_VARIABLE_U_5_45, &STATE_VARIABLE_U_6_48);
    func_6 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
    func_6(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) ((MR_String) ")")), S_6, STATE_VARIABLE_U_6_48, &STATE_VARIABLE_U_2_27);
  }
  func_7 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
  func_7(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) ((MR_String) ", ")), S_6, STATE_VARIABLE_U_2_27, &STATE_VARIABLE_U_3_29);
  {
    Var_30 = (MR_Word) MR_new_object(MR_Word, (1 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_30, 0) = ((MR_Box) (VarSet_13));
  }
  parse_tree__prog_ctgc__format_interface_maybe_structure_reuse_domain_6_p_0(TypeClassInfo_for_pt_output_33, S_6, Var_30, TVarSet_14, MaybeStructureReuseDomain_15, STATE_VARIABLE_U_3_29, &STATE_VARIABLE_U_4_31);
  func_8 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
  func_8(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) ((MR_String) ").\n")), S_6, STATE_VARIABLE_U_4_31, STATE_VARIABLE_U_21);
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_struct_sharing_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4)
{
  MR_Box closure = closure_arg;

  parse_tree__parse_tree_out_type__mercury_format_type_6_p_0(((MR_Word) ((MR_hl_field(0, closure, 3)))), ((MR_Word) ((MR_hl_field(0, closure, 4)))), ((MR_Word) ((MR_hl_field(0, closure, 5)))), ((MR_Word) (wrapper_arg_1)), wrapper_arg_2, wrapper_arg_3, wrapper_arg_4);
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_struct_sharing_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_33,
  MR_Box S_6,
  MR_Word Lang_7,
  MR_Word Sharing_8,
  MR_Box STATE_VARIABLE_U_0_20,
  MR_Box * STATE_VARIABLE_U_21)
{
  MR_Word PredNameModesPF_10 = ((MR_Word) ((MR_hl_field(0, Sharing_8, 0))));
  MR_Word HeadVars_11 = ((MR_Word) ((MR_hl_field(0, Sharing_8, 1))));
  MR_Word HeadVarTypes_12 = ((MR_Word) ((MR_hl_field(0, Sharing_8, 2))));
  MR_Word VarSet_13 = ((MR_Word) ((MR_hl_field(0, Sharing_8, 3))));
  MR_Word TVarSet_14 = ((MR_Word) ((MR_hl_field(0, Sharing_8, 4))));
  MR_Word MaybeSharingAs_15 = ((MR_Word) ((MR_hl_field(0, Sharing_8, 5))));
  MR_String PredStr_18;
  MR_String InitStr_19;
  MR_Box STATE_VARIABLE_U_1_26;
  MR_Box STATE_VARIABLE_U_2_27;
  MR_Box STATE_VARIABLE_U_3_29;
  MR_Word Var_30;
  MR_Box STATE_VARIABLE_U_4_31;
  MR_String Var_35;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_7)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_8)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

  PredStr_18 = parse_tree__parse_tree_out_pragma__proc_pf_name_modes_to_string_2_f_0(Lang_7, PredNameModesPF_10);
  Var_35 = mercury__string__f_43_43_2_f_0(PredStr_18, (MR_String) ", ");
  InitStr_19 = mercury__string__f_43_43_2_f_0((MR_String) ":- pragma structure_sharing(", Var_35);
  func_0 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
  func_0(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) (InitStr_19)), S_6, STATE_VARIABLE_U_0_20, &STATE_VARIABLE_U_1_26);
  if ((HeadVars_11 == (MR_Word) ((MR_Unsigned) 0U)))
  {
    void MR_CALL (* func_1)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));

    func_1(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) ((MR_String) "vars, types")), S_6, STATE_VARIABLE_U_1_26, &STATE_VARIABLE_U_2_27);
  }
  else
  {
    MR_Box STATE_VARIABLE_U_2_39;
    MR_Box STATE_VARIABLE_U_3_41;
    MR_Box STATE_VARIABLE_U_4_43;
    MR_Box STATE_VARIABLE_U_5_45;
    MR_Word Var_46;
    MR_Box STATE_VARIABLE_U_6_48;
    void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
    void MR_CALL (* func_3)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    void MR_CALL (* func_5)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    void MR_CALL (* func_6)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

    func_2(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) ((MR_String) "vars(")), S_6, STATE_VARIABLE_U_1_26, &STATE_VARIABLE_U_2_39);
    parse_tree__parse_tree_out_term__mercury_format_vars_vs_6_p_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_prog_var_type_0), TypeClassInfo_for_pt_output_33, VarSet_13, (MR_Integer) 0, HeadVars_11, S_6, STATE_VARIABLE_U_2_39, &STATE_VARIABLE_U_3_41);
    func_3 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
    func_3(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) ((MR_String) "), ")), S_6, STATE_VARIABLE_U_3_41, &STATE_VARIABLE_U_4_43);
    func_4 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
    func_4(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) ((MR_String) "types(")), S_6, STATE_VARIABLE_U_4_43, &STATE_VARIABLE_U_5_45);
    {
      Var_46 = (MR_Word) MR_new_object(MR_Word, (6 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(0, Var_46, 0) = ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_8[0]));
      MR_hl_field(0, Var_46, 1) = ((MR_Box) (parse_tree__parse_tree_out_pragma__mercury_format_pragma_struct_sharing_5_p_0_1));
      MR_hl_field(0, Var_46, 2) = ((MR_Box) ((MR_Integer) 3));
      MR_hl_field(0, Var_46, 3) = ((MR_Box) (TypeClassInfo_for_pt_output_33));
      MR_hl_field(0, Var_46, 4) = ((MR_Box) (TVarSet_14));
      MR_hl_field(0, Var_46, 5) = ((MR_Box) ((MR_Integer) 0));
    }
    func_5 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 25))));
    func_5(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_type_0)), ((MR_Box) (Var_46)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) (HeadVarTypes_12)), S_6, STATE_VARIABLE_U_5_45, &STATE_VARIABLE_U_6_48);
    func_6 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
    func_6(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) ((MR_String) ")")), S_6, STATE_VARIABLE_U_6_48, &STATE_VARIABLE_U_2_27);
  }
  func_7 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
  func_7(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) ((MR_String) ", ")), S_6, STATE_VARIABLE_U_2_27, &STATE_VARIABLE_U_3_29);
  {
    Var_30 = (MR_Word) MR_new_object(MR_Word, (1 * sizeof(MR_Word)), NULL, NULL);
    MR_hl_field(0, Var_30, 0) = ((MR_Box) (VarSet_13));
  }
  parse_tree__prog_ctgc__format_interface_structure_sharing_domain_6_p_0(TypeClassInfo_for_pt_output_33, S_6, Var_30, TVarSet_14, MaybeSharingAs_15, STATE_VARIABLE_U_3_29, &STATE_VARIABLE_U_4_31);
  func_8 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
  func_8(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) ((MR_String) ").\n")), S_6, STATE_VARIABLE_U_4_31, STATE_VARIABLE_U_21);
}

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_termination2_5_p_0_2(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1)
{
  MR_Box wrapper_arg_2;
  MR_Box closure = closure_arg;
  MR_String conv1_Str_4;

  conv1_Str_4 = parse_tree__parse_tree_out_pragma__arg_size_constr_to_string_1_f_0(((MR_Word) (wrapper_arg_1)));
  wrapper_arg_2 = ((MR_Box) (conv1_Str_4));
  return wrapper_arg_2;
}

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_termination2_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1)
{
  MR_Box wrapper_arg_2;
  MR_Box closure = closure_arg;
  MR_String conv0_Str_4;

  conv0_Str_4 = parse_tree__parse_tree_out_pragma__arg_size_constr_to_string_1_f_0(((MR_Word) (wrapper_arg_1)));
  wrapper_arg_2 = ((MR_Box) (conv0_Str_4));
  return wrapper_arg_2;
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_termination2_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_33,
  MR_Box S_6,
  MR_Word Lang_7,
  MR_Word Term2_8,
  MR_Box STATE_VARIABLE_U_0_21,
  MR_Box * STATE_VARIABLE_U_22)
{
  MR_Word PredNameModesPF_10 = ((MR_Word) ((MR_hl_field(0, Term2_8, 0))));
  MR_Word MaybeSuccess_11 = ((MR_Word) ((MR_hl_field(0, Term2_8, 1))));
  MR_Word MaybeFailure_12 = ((MR_Word) ((MR_hl_field(0, Term2_8, 2))));
  MR_Word MaybeTermination_13 = ((MR_Word) ((MR_hl_field(0, Term2_8, 3))));
  MR_String PredStr_16;
  MR_String SuccessStr_17;
  MR_String FailureStr_18;
  MR_String TermStr_19;
  MR_String DeclStr_20;
  MR_String Var_35;
  MR_String Var_37;
  MR_String Var_38;
  MR_String Var_40;
  MR_String Var_41;
  MR_String Var_43;
  MR_String Var_44;
  void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

  PredStr_16 = parse_tree__parse_tree_out_pragma__proc_pf_name_modes_to_string_2_f_0(Lang_7, PredNameModesPF_10);
  if ((MaybeSuccess_11 == (MR_Word) ((MR_Unsigned) 0U)))
    SuccessStr_17 = (MR_String) "not_set";
  else
  {
    MR_Word ArgSizeConstraints_46 = ((MR_Word) ((MR_hl_field(1, MaybeSuccess_11, 0))));
    MR_Word ConstraintStrs_47;
    MR_String ConstraintsStr_48;
    MR_String Var_54;

    ConstraintStrs_47 = mercury__list__map_2_f_0((MR_Word) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_arg_size_constr_0), (MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_1[4]), ArgSizeConstraints_46);
    ConstraintsStr_48 = mercury__string__join_list_2_f_0((MR_String) ", ", ConstraintStrs_47);
    Var_54 = mercury__string__f_43_43_2_f_0(ConstraintsStr_48, (MR_String) "])");
    SuccessStr_17 = mercury__string__f_43_43_2_f_0((MR_String) "constraints([", Var_54);
  }
  if ((MaybeFailure_12 == (MR_Word) ((MR_Unsigned) 0U)))
    FailureStr_18 = (MR_String) "not_set";
  else
  {
    MR_Word ArgSizeConstraints_56 = ((MR_Word) ((MR_hl_field(1, MaybeFailure_12, 0))));
    MR_Word ConstraintStrs_57;
    MR_String ConstraintsStr_58;
    MR_String Var_64;

    ConstraintStrs_57 = mercury__list__map_2_f_0((MR_Word) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_arg_size_constr_0), (MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_1[5]), ArgSizeConstraints_56);
    ConstraintsStr_58 = mercury__string__join_list_2_f_0((MR_String) ", ", ConstraintStrs_57);
    Var_64 = mercury__string__f_43_43_2_f_0(ConstraintsStr_58, (MR_String) "])");
    FailureStr_18 = mercury__string__f_43_43_2_f_0((MR_String) "constraints([", Var_64);
  }
  if ((MaybeTermination_13 == (MR_Word) ((MR_Unsigned) 0U)))
    TermStr_19 = (MR_String) "not_set";
  else
  {
    MR_Word Termination_66 = ((MR_Word) ((MR_hl_field(1, MaybeTermination_13, 0))));

    if (((MR_tag((MR_Word) Termination_66)) == (MR_Integer) 1))
      TermStr_19 = (MR_String) "can_loop";
    else
      TermStr_19 = (MR_String) "cannot_loop";
  }
  Var_35 = mercury__string__f_43_43_2_f_0(TermStr_19, (MR_String) ").\n");
  Var_37 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_35);
  Var_38 = mercury__string__f_43_43_2_f_0(FailureStr_18, Var_37);
  Var_40 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_38);
  Var_41 = mercury__string__f_43_43_2_f_0(SuccessStr_17, Var_40);
  Var_43 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_41);
  Var_44 = mercury__string__f_43_43_2_f_0(PredStr_16, Var_43);
  DeclStr_20 = mercury__string__f_43_43_2_f_0((MR_String) ":- pragma termination2_info(", Var_44);
  func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_33, 0)), 6))));
  func_2(((MR_Box) (TypeClassInfo_for_pt_output_33)), ((MR_Box) (DeclStr_20)), S_6, STATE_VARIABLE_U_0_21, STATE_VARIABLE_U_22);
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_termination_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_31,
  MR_Box S_6,
  MR_Word Lang_7,
  MR_Word Term_8,
  MR_Box STATE_VARIABLE_U_0_19,
  MR_Box * STATE_VARIABLE_U_20)
{
  MR_Word PredNameModesPF_10 = ((MR_Word) ((MR_hl_field(0, Term_8, 0))));
  MR_Word MaybeArgSize_11 = ((MR_Word) ((MR_hl_field(0, Term_8, 1))));
  MR_Word MaybeTermination_12 = ((MR_Word) ((MR_hl_field(0, Term_8, 2))));
  MR_String PredStr_15;
  MR_String ArgSizeStr_16;
  MR_String TermStr_17;
  MR_String DeclStr_18;
  MR_String Var_34;
  MR_String Var_36;
  MR_String Var_37;
  MR_String Var_39;
  MR_String Var_40;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

  PredStr_15 = parse_tree__parse_tree_out_pragma__proc_pf_name_modes_to_string_2_f_0(Lang_7, PredNameModesPF_10);
  ArgSizeStr_16 = parse_tree__parse_tree_out_pragma__maybe_arg_size_info_to_string_2_f_0((MR_Word) (&mercury__unit__unit__type_ctor_info_unit_0), (MR_Integer) 0, MaybeArgSize_11);
  TermStr_17 = parse_tree__parse_tree_out_pragma__maybe_termination_info_to_string_2_f_0((MR_Word) (&mercury__unit__unit__type_ctor_info_unit_0), (MR_Word) (&mercury__unit__unit__type_ctor_info_unit_0), (MR_Integer) 0, MaybeTermination_12);
  Var_34 = mercury__string__f_43_43_2_f_0(TermStr_17, (MR_String) ").\n");
  Var_36 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_34);
  Var_37 = mercury__string__f_43_43_2_f_0(ArgSizeStr_16, Var_36);
  Var_39 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_37);
  Var_40 = mercury__string__f_43_43_2_f_0(PredStr_15, Var_39);
  DeclStr_18 = mercury__string__f_43_43_2_f_0((MR_String) ":- pragma termination_info(", Var_40);
  func_0 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_31, 0)), 6))));
  func_0(((MR_Box) (TypeClassInfo_for_pt_output_31)), ((MR_Box) (DeclStr_18)), S_6, STATE_VARIABLE_U_0_19, STATE_VARIABLE_U_20);
}

MR_String MR_CALL 
parse_tree__parse_tree_out_pragma__maybe_termination_info_to_string_2_f_0(
  MR_Word TypeInfo_for_S_16,
  MR_Word TypeInfo_for_T_17,
  MR_Word Verbose_4,
  MR_Word MaybeTerminationInfo_5)
{
  MR_String Str_6;

  if ((MaybeTerminationInfo_5 == (MR_Word) ((MR_Unsigned) 0U)))
    Str_6 = (MR_String) "not_set";
  else
  {
    MR_Word Var_18 = ((MR_Word) ((MR_hl_field(1, MaybeTerminationInfo_5, 0))));

    if (((MR_tag((MR_Word) Var_18)) == (MR_Integer) 1))
    {
      MR_Box ErrorInfo_8 = (MR_hl_field(1, Var_18, 0));

      switch (Verbose_4) {
        default: /*NOTREACHED*/ MR_assert(0);
        case (MR_Integer) 0:
          Str_6 = (MR_String) "can_loop";
          break;
        case (MR_Integer) 1:
          {
            MR_String Var_14;
            MR_String Var_20;

            Var_14 = mercury__string__string_1_f_0(TypeInfo_for_T_17, ErrorInfo_8);
            Var_20 = mercury__string__f_43_43_2_f_0(Var_14, (MR_String) ")");
            Str_6 = mercury__string__f_43_43_2_f_0((MR_String) "can_loop(", Var_20);
          }
          break;
      }
    }
    else
      Str_6 = (MR_String) "cannot_loop";
  }
  return Str_6;
}

static MR_Box MR_CALL 
parse_tree__parse_tree_out_pragma__maybe_arg_size_info_to_string_2_f_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1)
{
  MR_Box wrapper_arg_2;
  MR_Box closure = closure_arg;
  MR_String conv0_HeadVar__2_2;

  conv0_HeadVar__2_2 = parse_tree__parse_tree_out_pragma__bool_to_string_1_f_0(((MR_Word) (wrapper_arg_1)));
  wrapper_arg_2 = ((MR_Box) (conv0_HeadVar__2_2));
  return wrapper_arg_2;
}

MR_String MR_CALL 
parse_tree__parse_tree_out_pragma__maybe_arg_size_info_to_string_2_f_0(
  MR_Word TypeInfo_for_T_24,
  MR_Word Verbose_4,
  MR_Word MaybeArgSizeInfo_5)
{
  MR_String Str_6;

  if ((MaybeArgSizeInfo_5 == (MR_Word) ((MR_Unsigned) 0U)))
    Str_6 = (MR_String) "not_set";
  else
  {
    MR_Word Var_25 = ((MR_Word) ((MR_hl_field(1, MaybeArgSizeInfo_5, 0))));

    if (((MR_tag((MR_Word) Var_25)) == (MR_Integer) 0))
    {
      MR_Integer Const_7 = ((MR_Integer) ((MR_hl_field(0, Var_25, 0))));
      MR_Word UsedArgs_8 = ((MR_Word) ((MR_hl_field(0, Var_25, 1))));
      MR_String Var_16;
      MR_String Var_30;
      MR_String Var_32;
      MR_String Var_33;
      MR_String Var_40;
      MR_Word BoolStrs_42;
      MR_String Var_44;
      MR_String Var_49;

      BoolStrs_42 = mercury__list__map_2_f_0((MR_Word) (&mercury__bool__bool__type_ctor_info_bool_0), (MR_Word) (&mercury__builtin__builtin__type_ctor_info_string_0), (MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_1[3]), UsedArgs_8);
      Var_44 = mercury__string__join_list_2_f_0((MR_String) ", ", BoolStrs_42);
      Var_49 = mercury__string__f_43_43_2_f_0(Var_44, (MR_String) "]");
      Var_16 = mercury__string__f_43_43_2_f_0((MR_String) "[", Var_49);
      Var_30 = mercury__string__f_43_43_2_f_0(Var_16, (MR_String) ")");
      Var_32 = mercury__string__f_43_43_2_f_0((MR_String) ", ", Var_30);
      mercury__string__format__format_signed_int_component_nowidth_noprec_3_p_0((MR_Word) (&parse_tree__parse_tree_out_pragma_scalar_common_5[0]), Const_7, &Var_33);
      Var_40 = mercury__string__f_43_43_2_f_0(Var_33, Var_32);
      Str_6 = mercury__string__f_43_43_2_f_0((MR_String) "finite(", Var_40);
    }
    else
    {
      MR_Box ErrorInfo_9 = (MR_hl_field(1, Var_25, 0));

      switch (Verbose_4) {
        default: /*NOTREACHED*/ MR_assert(0);
        case (MR_Integer) 0:
          Str_6 = (MR_String) "infinite";
          break;
        case (MR_Integer) 1:
          {
            MR_String Var_22;
            MR_String Var_27;

            Var_22 = mercury__string__string_1_f_0(TypeInfo_for_T_24, ErrorInfo_9);
            Var_27 = mercury__string__f_43_43_2_f_0(Var_22, (MR_String) ")");
            Str_6 = mercury__string__f_43_43_2_f_0((MR_String) "infinite(", Var_27);
          }
          break;
      }
    }
  }
  return Str_6;
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_type_spec_5_p_0_1(
  MR_Box closure_arg,
  MR_Box wrapper_arg_1,
  MR_Box wrapper_arg_2,
  MR_Box wrapper_arg_3,
  MR_Box * wrapper_arg_4)
{
  MR_Box closure = closure_arg;

  parse_tree__parse_tree_out_pragma__mercury_format_tvar_subst_5_p_0(((MR_Word) ((MR_hl_field(0, closure, 3)))), ((MR_Word) ((MR_hl_field(0, closure, 4)))), ((MR_Word) (wrapper_arg_1)), wrapper_arg_2, wrapper_arg_3, wrapper_arg_4);
}

void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_pragma_type_spec_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_36,
  MR_Box S_6,
  MR_Word Lang_7,
  MR_Word TypeSpec_8,
  MR_Box STATE_VARIABLE_U_0_25,
  MR_Box * STATE_VARIABLE_U_26)
{
  MR_Word PFUMM_10 = ((MR_Word) ((MR_hl_field(0, TypeSpec_8, 0))));
  MR_Word PredName_11 = ((MR_Word) ((MR_hl_field(0, TypeSpec_8, 1))));
  MR_Word TypeSubst_13 = ((MR_Word) ((MR_hl_field(0, TypeSpec_8, 3))));
  MR_Word TVarSet_14 = ((MR_Word) ((MR_hl_field(0, TypeSpec_8, 4))));
  MR_Box STATE_VARIABLE_U_1_28;
  MR_Box STATE_VARIABLE_U_2_29;
  MR_Box STATE_VARIABLE_U_5_33;
  MR_Box STATE_VARIABLE_U_6_34;
  MR_Word HeadTypeSubst_78;
  MR_Word TailTypeSubsts_79;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
  void MR_CALL (* func_15)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
  void MR_CALL (* func_19)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

  func_0(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) ((MR_String) ":- pragma type_spec(")), S_6, STATE_VARIABLE_U_0_25, &STATE_VARIABLE_U_1_28);
  switch (MR_tag((MR_Word) PFUMM_10)) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 0:
      {
        MR_Word ModesOrArity_45 = ((MR_Word) ((MR_hl_field(0, PFUMM_10, 0))));

        if (((MR_tag((MR_Word) ModesOrArity_45)) == (MR_Integer) 1))
        {
          MR_Word Arity_37 = ((MR_Word) ((MR_hl_field(1, ModesOrArity_45, 0))));
          MR_String Var_62;
          MR_Box STATE_VARIABLE_U_1_63;
          MR_Box STATE_VARIABLE_U_2_65;
          MR_Box STATE_VARIABLE_U_3_67;
          MR_Integer Arity_69;
          MR_Box STATE_VARIABLE_U_1_70;
          MR_Box STATE_VARIABLE_U_2_72;
          void MR_CALL (* func_7)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          void MR_CALL (* func_8)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          void MR_CALL (* func_9)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          void MR_CALL (* func_10)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          void MR_CALL (* func_11)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

          Var_62 = mdbcomp__prim_data__pred_or_func_to_str_1_f_0((MR_Integer) 0);
          func_7 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
          func_7(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) (Var_62)), S_6, STATE_VARIABLE_U_1_28, &STATE_VARIABLE_U_1_63);
          func_8 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
          func_8(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) ((MR_String) "(")), S_6, STATE_VARIABLE_U_1_63, &STATE_VARIABLE_U_2_65);
          Arity_69 = (MR_Integer) (Arity_37);
          parse_tree__parse_tree_out_sym_name__mercury_format_bracketed_sym_name_ngt_5_p_0(TypeClassInfo_for_pt_output_36, (MR_Integer) 1, PredName_11, S_6, STATE_VARIABLE_U_2_65, &STATE_VARIABLE_U_1_70);
          func_9 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
          func_9(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) ((MR_String) "/")), S_6, STATE_VARIABLE_U_1_70, &STATE_VARIABLE_U_2_72);
          func_10 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 10))));
          func_10(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) (Arity_69)), S_6, STATE_VARIABLE_U_2_72, &STATE_VARIABLE_U_3_67);
          func_11 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
          func_11(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) ((MR_String) ")")), S_6, STATE_VARIABLE_U_3_67, &STATE_VARIABLE_U_2_29);
        }
        else
        {
          MR_Word Modes_38 = ((MR_Word) ((MR_hl_field(0, ModesOrArity_45, 0))));
          MR_Word PredNameModesPF_39;
          MR_String PredStr_40;
          void MR_CALL (* func_12)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

          {
            PredNameModesPF_39 = (MR_Word) MR_new_object(MR_Word, (3 * sizeof(MR_Word)), NULL, NULL);
            MR_hl_field(0, PredNameModesPF_39, 0) = (MR_Box) ((MR_Unsigned) ((MR_Integer) 0));
            MR_hl_field(0, PredNameModesPF_39, 1) = ((MR_Box) (PredName_11));
            MR_hl_field(0, PredNameModesPF_39, 2) = ((MR_Box) (Modes_38));
          }
          PredStr_40 = parse_tree__parse_tree_out_pragma__proc_pf_name_modes_to_string_2_f_0(Lang_7, PredNameModesPF_39);
          func_12 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
          func_12(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) (PredStr_40)), S_6, STATE_VARIABLE_U_1_28, &STATE_VARIABLE_U_2_29);
        }
      }
      break;
    case (MR_Integer) 1:
      {
        MR_Word ModesOrArity_18 = ((MR_Word) ((MR_hl_field(1, PFUMM_10, 0))));

        if (((MR_tag((MR_Word) ModesOrArity_18)) == (MR_Integer) 1))
        {
          MR_Word Arity_23 = ((MR_Word) ((MR_hl_field(1, ModesOrArity_18, 0))));
          MR_String Var_51;
          MR_Box STATE_VARIABLE_U_1_52;
          MR_Box STATE_VARIABLE_U_2_54;
          MR_Box STATE_VARIABLE_U_3_56;
          MR_Integer Arity_58;
          MR_Box STATE_VARIABLE_U_1_59;
          MR_Box STATE_VARIABLE_U_2_61;
          void MR_CALL (* func_1)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          void MR_CALL (* func_2)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          void MR_CALL (* func_3)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          void MR_CALL (* func_4)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
          void MR_CALL (* func_5)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

          Var_51 = mdbcomp__prim_data__pred_or_func_to_str_1_f_0((MR_Integer) 1);
          func_1 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
          func_1(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) (Var_51)), S_6, STATE_VARIABLE_U_1_28, &STATE_VARIABLE_U_1_52);
          func_2 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
          func_2(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) ((MR_String) "(")), S_6, STATE_VARIABLE_U_1_52, &STATE_VARIABLE_U_2_54);
          Arity_58 = (MR_Integer) (Arity_23);
          parse_tree__parse_tree_out_sym_name__mercury_format_bracketed_sym_name_ngt_5_p_0(TypeClassInfo_for_pt_output_36, (MR_Integer) 1, PredName_11, S_6, STATE_VARIABLE_U_2_54, &STATE_VARIABLE_U_1_59);
          func_3 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
          func_3(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) ((MR_String) "/")), S_6, STATE_VARIABLE_U_1_59, &STATE_VARIABLE_U_2_61);
          func_4 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 10))));
          func_4(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) (Arity_58)), S_6, STATE_VARIABLE_U_2_61, &STATE_VARIABLE_U_3_56);
          func_5 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
          func_5(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) ((MR_String) ")")), S_6, STATE_VARIABLE_U_3_56, &STATE_VARIABLE_U_2_29);
        }
        else
        {
          MR_Word Modes_20 = ((MR_Word) ((MR_hl_field(0, ModesOrArity_18, 0))));
          MR_Word PredNameModesPF_21;
          MR_String PredStr_22;
          void MR_CALL (* func_6)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

          {
            PredNameModesPF_21 = (MR_Word) MR_new_object(MR_Word, (3 * sizeof(MR_Word)), NULL, NULL);
            MR_hl_field(0, PredNameModesPF_21, 0) = (MR_Box) ((MR_Unsigned) ((MR_Integer) 1));
            MR_hl_field(0, PredNameModesPF_21, 1) = ((MR_Box) (PredName_11));
            MR_hl_field(0, PredNameModesPF_21, 2) = ((MR_Box) (Modes_20));
          }
          PredStr_22 = parse_tree__parse_tree_out_pragma__proc_pf_name_modes_to_string_2_f_0(Lang_7, PredNameModesPF_21);
          func_6 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
          func_6(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) (PredStr_22)), S_6, STATE_VARIABLE_U_1_28, &STATE_VARIABLE_U_2_29);
        }
      }
      break;
    case (MR_Integer) 2:
      {
        MR_Word PredArity_24 = ((MR_Word) ((MR_hl_field(2, PFUMM_10, 0))));
        MR_Integer Arity_74 = (MR_Integer) (PredArity_24);
        MR_Box STATE_VARIABLE_U_1_75;
        MR_Box STATE_VARIABLE_U_2_77;
        void MR_CALL (* func_13)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
        void MR_CALL (* func_14)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

        parse_tree__parse_tree_out_sym_name__mercury_format_bracketed_sym_name_ngt_5_p_0(TypeClassInfo_for_pt_output_36, (MR_Integer) 0, PredName_11, S_6, STATE_VARIABLE_U_1_28, &STATE_VARIABLE_U_1_75);
        func_13 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
        func_13(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) ((MR_String) "/")), S_6, STATE_VARIABLE_U_1_75, &STATE_VARIABLE_U_2_77);
        func_14 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 10))));
        func_14(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) (Arity_74)), S_6, STATE_VARIABLE_U_2_77, &STATE_VARIABLE_U_2_29);
      }
      break;
  }
  func_15 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
  func_15(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) ((MR_String) ", ")), S_6, STATE_VARIABLE_U_2_29, &STATE_VARIABLE_U_5_33);
  HeadTypeSubst_78 = ((MR_Word) ((MR_hl_field(0, TypeSubst_13, 0))));
  TailTypeSubsts_79 = ((MR_Word) ((MR_hl_field(0, TypeSubst_13, 1))));
  if ((TailTypeSubsts_79 == (MR_Word) ((MR_Unsigned) 0U)))
    parse_tree__parse_tree_out_pragma__mercury_format_tvar_subst_5_p_0(TypeClassInfo_for_pt_output_36, TVarSet_14, HeadTypeSubst_78, S_6, STATE_VARIABLE_U_5_33, &STATE_VARIABLE_U_6_34);
  else
  {
    MR_Box STATE_VARIABLE_U_2_81;
    MR_Word Var_82;
    MR_Word Var_84;
    MR_Box STATE_VARIABLE_U_3_85;
    void MR_CALL (* func_16)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *) = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
    void MR_CALL (* func_17)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);
    void MR_CALL (* func_18)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

    func_16(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) ((MR_String) "(")), S_6, STATE_VARIABLE_U_5_33, &STATE_VARIABLE_U_2_81);
    {
      Var_82 = (MR_Word) MR_new_object(MR_Word, (5 * sizeof(MR_Word)), NULL, NULL);
      MR_hl_field(0, Var_82, 0) = ((MR_Box) (&parse_tree__parse_tree_out_pragma_scalar_common_7[0]));
      MR_hl_field(0, Var_82, 1) = ((MR_Box) (parse_tree__parse_tree_out_pragma__mercury_format_pragma_type_spec_5_p_0_1));
      MR_hl_field(0, Var_82, 2) = ((MR_Box) ((MR_Integer) 2));
      MR_hl_field(0, Var_82, 3) = ((MR_Box) (TypeClassInfo_for_pt_output_36));
      MR_hl_field(0, Var_82, 4) = ((MR_Box) (TVarSet_14));
    }
    {
      Var_84 = (MR_Word) MR_mkword(1, MR_new_object(MR_Word, (2 * sizeof(MR_Word)), NULL, NULL));
      MR_hl_field(1, Var_84, 0) = ((MR_Box) (HeadTypeSubst_78));
      MR_hl_field(1, Var_84, 1) = ((MR_Box) (TailTypeSubsts_79));
    }
    func_17 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 25))));
    func_17(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) (&parse_tree__prog_data_pragma__parse_tree__prog_data_pragma__type_ctor_info_tvar_subst_0)), ((MR_Box) (Var_82)), ((MR_Box) ((MR_String) ", ")), ((MR_Box) (Var_84)), S_6, STATE_VARIABLE_U_2_81, &STATE_VARIABLE_U_3_85);
    func_18 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
    func_18(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) ((MR_String) ")")), S_6, STATE_VARIABLE_U_3_85, &STATE_VARIABLE_U_6_34);
  }
  func_19 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_36, 0)), 6))));
  func_19(((MR_Box) (TypeClassInfo_for_pt_output_36)), ((MR_Box) ((MR_String) ").\n")), S_6, STATE_VARIABLE_U_6_34, STATE_VARIABLE_U_26);
}

static MR_String MR_CALL 
parse_tree__parse_tree_out_pragma__proc_pf_name_modes_to_string_2_f_0(
  MR_Word Lang_4,
  MR_Word PredNameModesPF_5)
{
  MR_String Str_6;
  MR_Word PredOrFunc_7 = ((MR_Unsigned) ((MR_hl_field(0, PredNameModesPF_5, 0))) & (MR_Integer) 1);
  MR_Word SymName_8 = ((MR_Word) ((MR_hl_field(0, PredNameModesPF_5, 1))));
  MR_Word Modes_9 = ((MR_Word) ((MR_hl_field(0, PredNameModesPF_5, 2))));
  MR_Word InstVarSet_10;

  mercury__varset__init_1_p_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_inst_var_type_0), &InstVarSet_10);
  switch (PredOrFunc_7) {
    default: /*NOTREACHED*/ MR_assert(0);
    case (MR_Integer) 1:
      {
        MR_Word FuncArgModes_12;
        MR_Word ReturnArgMode_13;
        MR_Box conv0_ReturnArgMode_13;

        parse_tree__prog_util__pred_args_to_func_args_3_p_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_mer_mode_0), Modes_9, &FuncArgModes_12, &conv0_ReturnArgMode_13);
        ReturnArgMode_13 = ((MR_Word) (conv0_ReturnArgMode_13));
        Str_6 = parse_tree__parse_tree_out_pred_decl__mercury_func_mode_subdecl_to_string_6_f_0(Lang_4, InstVarSet_10, SymName_8, FuncArgModes_12, ReturnArgMode_13, (MR_Word) ((MR_Unsigned) 0U));
      }
      break;
    case (MR_Integer) 0:
      Str_6 = parse_tree__parse_tree_out_pred_decl__mercury_pred_mode_subdecl_to_string_5_f_0(Lang_4, InstVarSet_10, SymName_8, Modes_9, (MR_Word) ((MR_Unsigned) 0U));
      break;
  }
  return Str_6;
}

static void MR_CALL 
parse_tree__parse_tree_out_pragma__mercury_format_tvar_subst_5_p_0(
  MR_Word TypeClassInfo_for_pt_output_19,
  MR_Word VarSet_6,
  MR_Word TVarSubst_7,
  MR_Box S_8,
  MR_Box STATE_VARIABLE_U_0_12,
  MR_Box * STATE_VARIABLE_U_13)
{
  MR_Word Var_10 = ((MR_Word) ((MR_hl_field(0, TVarSubst_7, 0))));
  MR_Word Type_11 = ((MR_Word) ((MR_hl_field(0, TVarSubst_7, 1))));
  MR_Box STATE_VARIABLE_U_1_15;
  MR_Box STATE_VARIABLE_U_2_17;
  void MR_CALL (* func_0)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *);

  parse_tree__parse_tree_out_term__mercury_format_var_vs_6_p_0((MR_Word) (&parse_tree__prog_data__parse_tree__prog_data__type_ctor_info_tvar_type_0), TypeClassInfo_for_pt_output_19, VarSet_6, (MR_Integer) 0, Var_10, S_8, STATE_VARIABLE_U_0_12, &STATE_VARIABLE_U_1_15);
  func_0 = ((void MR_CALL (*)(MR_Box, MR_Box, MR_Box, MR_Box, MR_Box *)) ((MR_hl_field(0, (MR_hl_field(0, TypeClassInfo_for_pt_output_19, 0)), 6))));
  func_0(((MR_Box) (TypeClassInfo_for_pt_output_19)), ((MR_Box) ((MR_String) " = ")), S_8, STATE_VARIABLE_U_1_15, &STATE_VARIABLE_U_2_17);
  parse_tree__parse_tree_out_type__mercury_format_type_6_p_0(TypeClassInfo_for_pt_output_19, VarSet_6, (MR_Integer) 0, Type_11, S_8, STATE_VARIABLE_U_2_17, STATE_VARIABLE_U_13);
}

void mercury__parse_tree__parse_tree_out_pragma__init(void)
{
}

void mercury__parse_tree__parse_tree_out_pragma__init_type_tables(void)
{
}

void mercury__parse_tree__parse_tree_out_pragma__init_debugger(void)
{
  MR_fatal_error("debugger initialization in MLDS grade");
}

// Ensure everything is compiled with the same grade.
const char *mercury__parse_tree__parse_tree_out_pragma__grade_check(void)
{
  return &MR_GRADE_VAR;
}

// :- end_module parse_tree.parse_tree_out_pragma.
