/*
** Automatically generated from `mtc_diff.m'
** by the Mercury compiler,
** version 14.01.1, configured for x86_64-apple-darwin13.3.0.
** Do not edit.
**
** The autoconfigured grade settings governing
** the generation of this C file were
**
** TAG_BITS=2
** UNBOXED_FLOAT=no
** PREGENERATED_DIST=yes
** HIGHLEVEL_CODE=yes
**
** END_OF_C_GRADE_INFO
*/


/* :- module mtc_diff. */
/* :- implementation. */

/*
INIT mercury__mtc_diff__init
ENDINIT
*/

#include "mtc_diff.mih"


#include "array.mih"
#include "assoc_list.mih"
#include "bimap.mih"
#include "bitmap.mih"
#include "bool.mih"
#include "builtin.mih"
#include "char.mih"
#include "construct.mih"
#include "deconstruct.mih"
#include "enum.mih"
#include "getopt.mih"
#include "io.mih"
#include "list.mih"
#include "map.mih"
#include "maybe.mih"
#include "mdbcomp.mih"
#include "ops.mih"
#include "pair.mih"
#include "pretty_printer.mih"
#include "private_builtin.mih"
#include "random.mih"
#include "rtti_implementation.mih"
#include "set.mih"
#include "set_ordlist.mih"
#include "stream.mih"
#include "string.mih"
#include "term.mih"
#include "time.mih"
#include "tree234.mih"
#include "type_desc.mih"
#include "univ.mih"
#include "mdbcomp.goal_path.mih"
#include "mdbcomp.prim_data.mih"
#include "mdbcomp.shared_utilities.mih"
#include "mdbcomp.trace_counts.mih"



#line 42 "mtc_diff.m"
struct mtc_diff__main_2_p_0_4_env_0_s {
#line 42 "mtc_diff.m"
  MR_Box * mtc_diff__main_2_p_0_4_env_0__wrapper_arg_2;
#line 42 "mtc_diff.m"
  MR_Cont mtc_diff__main_2_p_0_4_env_0__cont;
#line 42 "mtc_diff.m"
  void * mtc_diff__main_2_p_0_4_env_0__cont_env_ptr;
#line 42 "mtc_diff.m"
  MR_Word mtc_diff__main_2_p_0_4_env_0__conv0_HeadVar__2_2;
#line 42 "mtc_diff.m"
};


#line 83 "mtc_diff.c"
static const MR_EnumFunctorDesc mtc_diff__mtc_diff__enum_functor_desc_option_0_0;

#line 86 "mtc_diff.c"
static const MR_EnumFunctorDescPtr mtc_diff__mtc_diff__enum_value_ordered_option_0[1];

#line 89 "mtc_diff.c"
static const MR_EnumFunctorDescPtr mtc_diff__mtc_diff__enum_name_ordered_option_0[1];

#line 92 "mtc_diff.c"
static const MR_Integer mtc_diff__mtc_diff__functor_number_map_option_0[1];

#line 95 "mtc_diff.c"
static const MR_FA_TypeInfo_Struct2 mtc_diff__tree234__ti_tree234_2mtc_diff__type_ctor_info_option_0getopt__type_ctor_info_option_data_0;

#line 98 "mtc_diff.c"
static MR_bool MR_CALL 
mtc_diff____Unify____option_0_0_10001(
#line 101 "mtc_diff.c"
  MR_Box mtc_diff__wrapper_arg_1,
#line 103 "mtc_diff.c"
  MR_Box mtc_diff__wrapper_arg_2);

#line 106 "mtc_diff.c"
static void MR_CALL 
mtc_diff____Compare____option_0_0_10001(
#line 109 "mtc_diff.c"
  MR_Box * mtc_diff__wrapper_arg_1,
#line 111 "mtc_diff.c"
  MR_Box mtc_diff__wrapper_arg_2,
#line 113 "mtc_diff.c"
  MR_Box mtc_diff__wrapper_arg_3);

#line 116 "mtc_diff.c"
static MR_bool MR_CALL 
mtc_diff____Unify____option_table_0_0_10001(
#line 119 "mtc_diff.c"
  MR_Box mtc_diff__wrapper_arg_1,
#line 121 "mtc_diff.c"
  MR_Box mtc_diff__wrapper_arg_2);

#line 124 "mtc_diff.c"
static void MR_CALL 
mtc_diff____Compare____option_table_0_0_10001(
#line 127 "mtc_diff.c"
  MR_Box * mtc_diff__wrapper_arg_1,
#line 129 "mtc_diff.c"
  MR_Box mtc_diff__wrapper_arg_2,
#line 131 "mtc_diff.c"
  MR_Box mtc_diff__wrapper_arg_3);

#line 106 "mtc_diff.m"
static void MR_CALL 
mtc_diff__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_95_95_67_111_109_112_97_114_101_95_95_95_109_116_99_95_100_105_102_102_95_95_111_112_116_105_111_110_95_48_95_95_91_50_44_32_51_93_95_48_3_p_0(
#line 106 "mtc_diff.m"
  MR_Word * mtc_diff__HeadVar__1_1);

#line 106 "mtc_diff.m"
static MR_bool MR_CALL 
mtc_diff__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_95_95_85_110_105_102_121_95_95_95_109_116_99_95_100_105_102_102_95_95_111_112_116_105_111_110_95_48_95_95_91_49_44_32_50_93_95_48_2_p_0(void);

#line 109 "mtc_diff.m"
static void MR_CALL 
mtc_diff____Compare____option_table_0_0(
#line 109 "mtc_diff.m"
  MR_Word * mtc_diff__HeadVar__1_1,
#line 109 "mtc_diff.m"
  MR_Word mtc_diff__HeadVar__2_2,
#line 109 "mtc_diff.m"
  MR_Word mtc_diff__HeadVar__3_3);

#line 109 "mtc_diff.m"
static MR_bool MR_CALL 
mtc_diff____Unify____option_table_0_0(
#line 109 "mtc_diff.m"
  MR_Word mtc_diff__HeadVar__1_1,
#line 109 "mtc_diff.m"
  MR_Word mtc_diff__HeadVar__2_2);

#line 106 "mtc_diff.m"
static void MR_CALL 
mtc_diff____Compare____option_0_0(
#line 106 "mtc_diff.m"
  MR_Word * mtc_diff__HeadVar__1_1);

#line 106 "mtc_diff.m"
static MR_bool MR_CALL 
mtc_diff____Unify____option_0_0(void);

#line 113 "mtc_diff.m"
static void MR_CALL 
mtc_diff__option_default_2_p_0(
#line 113 "mtc_diff.m"
  MR_Word * mtc_diff__HeadVar__2_2,
#line 113 "mtc_diff.m"
  MR_Cont mtc_diff__cont,
#line 113 "mtc_diff.m"
  void * mtc_diff__cont_env_ptr);

#line 112 "mtc_diff.m"
static MR_bool MR_CALL 
mtc_diff__long_option_2_p_0(
#line 112 "mtc_diff.m"
  MR_String mtc_diff__HeadVar__1_1);

#line 111 "mtc_diff.m"
static MR_bool MR_CALL 
mtc_diff__short_option_2_p_0(
#line 111 "mtc_diff.m"
  MR_Char mtc_diff__HeadVar__1_1);

#line 42 "mtc_diff.m"
static void MR_CALL 
main_2_p_0_3(
#line 42 "mtc_diff.m"
  void * mtc_diff__env_ptr_arg);

#line 42 "mtc_diff.m"
static void MR_CALL 
main_2_p_0_4(
#line 42 "mtc_diff.m"
  MR_Box mtc_diff__closure_arg,
#line 42 "mtc_diff.m"
  MR_Box * mtc_diff__wrapper_arg_1,
#line 42 "mtc_diff.m"
  MR_Box * mtc_diff__wrapper_arg_2,
#line 42 "mtc_diff.m"
  MR_Cont mtc_diff__cont,
#line 42 "mtc_diff.m"
  void * mtc_diff__cont_env_ptr);

#line 42 "mtc_diff.m"
static MR_bool MR_CALL 
main_2_p_0_2(
#line 42 "mtc_diff.m"
  MR_Box mtc_diff__closure_arg,
#line 42 "mtc_diff.m"
  MR_Box mtc_diff__wrapper_arg_1,
#line 42 "mtc_diff.m"
  MR_Box * mtc_diff__wrapper_arg_2);

#line 42 "mtc_diff.m"
static MR_bool MR_CALL 
main_2_p_0_1(
#line 42 "mtc_diff.m"
  MR_Box mtc_diff__closure_arg,
#line 42 "mtc_diff.m"
  MR_Box mtc_diff__wrapper_arg_1,
#line 42 "mtc_diff.m"
  MR_Box * mtc_diff__wrapper_arg_2);


static /* final */ const MR_Box mtc_diff_scalar_common_1[5][3];

static /* final */ const MR_Box mtc_diff_scalar_common_2[3][5];

static /* final */ const MR_Box mtc_diff_scalar_common_3[1][2];




static /* final */ const MR_Box mtc_diff_scalar_common_1[5][3] = {
  /* row 0 */
  {
    ((MR_Box) (&mercury__tree234__tree234__type_ctor_info_tree234_2)),
    ((MR_Box) (&mtc_diff__mtc_diff__type_ctor_info_option_0)),
    ((MR_Box) (&mercury__getopt__getopt__type_ctor_info_option_data_0))
  },
  /* row 1 */
  {
    ((MR_Box) (&mtc_diff_scalar_common_2[0])),
    ((MR_Box) (main_2_p_0_1)),
    ((MR_Box) (MR_Word) ((MR_Integer) 0))
  },
  /* row 2 */
  {
    ((MR_Box) (&mtc_diff_scalar_common_2[1])),
    ((MR_Box) (main_2_p_0_2)),
    ((MR_Box) (MR_Word) ((MR_Integer) 0))
  },
  /* row 3 */
  {
    ((MR_Box) (&mtc_diff_scalar_common_2[2])),
    ((MR_Box) (main_2_p_0_4)),
    ((MR_Box) (MR_Word) ((MR_Integer) 0))
  },
  /* row 4 */
  {
    ((MR_Box) (&mtc_diff_scalar_common_1[1])),
    ((MR_Box) (&mtc_diff_scalar_common_1[2])),
    ((MR_Box) (&mtc_diff_scalar_common_1[3]))
  },
};

static /* final */ const MR_Box mtc_diff_scalar_common_2[3][5] = {
  /* row 0 */
  {
    NULL,
    ((MR_Box) (NULL)),
    ((MR_Box) (MR_Word) ((MR_Integer) 2)),
    ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_character_0)),
    ((MR_Box) (&mtc_diff__mtc_diff__type_ctor_info_option_0))
  },
  /* row 1 */
  {
    NULL,
    ((MR_Box) (NULL)),
    ((MR_Box) (MR_Word) ((MR_Integer) 2)),
    ((MR_Box) (&mercury__builtin__builtin__type_ctor_info_string_0)),
    ((MR_Box) (&mtc_diff__mtc_diff__type_ctor_info_option_0))
  },
  /* row 2 */
  {
    NULL,
    ((MR_Box) (NULL)),
    ((MR_Box) (MR_Word) ((MR_Integer) 2)),
    ((MR_Box) (&mtc_diff__mtc_diff__type_ctor_info_option_0)),
    ((MR_Box) (&mercury__getopt__getopt__type_ctor_info_option_data_0))
  },
};

static /* final */ const MR_Box mtc_diff_scalar_common_3[1][2] = {
  /* row 0 */
  {
    ((MR_Box) (MR_Word) ((MR_Integer) 0)),
    ((MR_Box) ((MR_String) ""))
  },
};



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



#line 327 "mtc_diff.c"
static const MR_EnumFunctorDesc mtc_diff__mtc_diff__enum_functor_desc_option_0_0 = {
  (MR_String) "output_filename",
  (MR_Integer) 0
};

#line 333 "mtc_diff.c"
static const MR_EnumFunctorDescPtr mtc_diff__mtc_diff__enum_value_ordered_option_0[1] = {
  &mtc_diff__mtc_diff__enum_functor_desc_option_0_0
};

#line 338 "mtc_diff.c"
static const MR_EnumFunctorDescPtr mtc_diff__mtc_diff__enum_name_ordered_option_0[1] = {
  &mtc_diff__mtc_diff__enum_functor_desc_option_0_0
};

#line 343 "mtc_diff.c"
static const MR_Integer mtc_diff__mtc_diff__functor_number_map_option_0[1] = {
  (MR_Integer) 0
};

#line 348 "mtc_diff.c"
const MR_TypeCtorInfo_Struct mtc_diff__mtc_diff__type_ctor_info_option_0 = {
  (MR_Integer) 0,
  (MR_Integer) 15,
  (MR_Integer) -1,
  mercury__private_builtin__MR_TYPECTOR_REP_DUMMY,
  ((MR_Box) (mtc_diff____Unify____option_0_0_10001)),
  ((MR_Box) (mtc_diff____Compare____option_0_0_10001)),
  (MR_String) "mtc_diff",
  (MR_String) "option",
  {
    mtc_diff__mtc_diff__enum_name_ordered_option_0
  },
  {
    mtc_diff__mtc_diff__enum_value_ordered_option_0
  },
  (MR_Integer) 1,
  (MR_Integer) 4,
  mtc_diff__mtc_diff__functor_number_map_option_0
};

#line 369 "mtc_diff.c"
static const MR_FA_TypeInfo_Struct2 mtc_diff__tree234__ti_tree234_2mtc_diff__type_ctor_info_option_0getopt__type_ctor_info_option_data_0 = {
  &mercury__tree234__tree234__type_ctor_info_tree234_2,
  {
    (MR_TypeInfo) &mtc_diff__mtc_diff__type_ctor_info_option_0,
    (MR_TypeInfo) &mercury__getopt__getopt__type_ctor_info_option_data_0
  }
};

#line 378 "mtc_diff.c"
const MR_TypeCtorInfo_Struct mtc_diff__mtc_diff__type_ctor_info_option_table_0 = {
  (MR_Integer) 0,
  (MR_Integer) 15,
  (MR_Integer) -1,
  mercury__private_builtin__MR_TYPECTOR_REP_EQUIV_GROUND,
  ((MR_Box) (mtc_diff____Unify____option_table_0_0_10001)),
  ((MR_Box) (mtc_diff____Compare____option_table_0_0_10001)),
  (MR_String) "mtc_diff",
  (MR_String) "option_table",
  {
    NULL
  },
  {
    (MR_PseudoTypeInfo) &mtc_diff__tree234__ti_tree234_2mtc_diff__type_ctor_info_option_0getopt__type_ctor_info_option_data_0
  },
  (MR_Integer) -1,
  (MR_Integer) 0,
  NULL
};

#line 399 "mtc_diff.c"
static MR_bool MR_CALL 
mtc_diff____Unify____option_0_0_10001(
#line 402 "mtc_diff.c"
  MR_Box mtc_diff__wrapper_arg_1,
#line 404 "mtc_diff.c"
  MR_Box mtc_diff__wrapper_arg_2)
#line 406 "mtc_diff.c"
{
#line 408 "mtc_diff.c"
  {
#line 410 "mtc_diff.c"
    MR_bool mtc_diff__succeeded;

#line 413 "mtc_diff.c"
    {
#line 415 "mtc_diff.c"
      mtc_diff__succeeded = mtc_diff____Unify____option_0_0();
    }
#line 418 "mtc_diff.c"
    return mtc_diff__succeeded;
#line 420 "mtc_diff.c"
  }
#line 422 "mtc_diff.c"
}

#line 425 "mtc_diff.c"
static void MR_CALL 
mtc_diff____Compare____option_0_0_10001(
#line 428 "mtc_diff.c"
  MR_Box * mtc_diff__wrapper_arg_1,
#line 430 "mtc_diff.c"
  MR_Box mtc_diff__wrapper_arg_2,
#line 432 "mtc_diff.c"
  MR_Box mtc_diff__wrapper_arg_3)
#line 434 "mtc_diff.c"
{
#line 436 "mtc_diff.c"
  {
#line 438 "mtc_diff.c"
    MR_Word mtc_diff__conv0_HeadVar__1_1;

#line 441 "mtc_diff.c"
    {
#line 443 "mtc_diff.c"
      mtc_diff____Compare____option_0_0(&mtc_diff__conv0_HeadVar__1_1);
    }
#line 446 "mtc_diff.c"
    *mtc_diff__wrapper_arg_1 = ((MR_Box) (mtc_diff__conv0_HeadVar__1_1));
#line 448 "mtc_diff.c"
  }
#line 450 "mtc_diff.c"
}

#line 453 "mtc_diff.c"
static MR_bool MR_CALL 
mtc_diff____Unify____option_table_0_0_10001(
#line 456 "mtc_diff.c"
  MR_Box mtc_diff__wrapper_arg_1,
#line 458 "mtc_diff.c"
  MR_Box mtc_diff__wrapper_arg_2)
#line 460 "mtc_diff.c"
{
#line 462 "mtc_diff.c"
  {
#line 464 "mtc_diff.c"
    MR_bool mtc_diff__succeeded;

#line 467 "mtc_diff.c"
    {
#line 469 "mtc_diff.c"
      mtc_diff__succeeded = mtc_diff____Unify____option_table_0_0(((MR_Word) mtc_diff__wrapper_arg_1), ((MR_Word) mtc_diff__wrapper_arg_2));
    }
#line 472 "mtc_diff.c"
    return mtc_diff__succeeded;
#line 474 "mtc_diff.c"
  }
#line 476 "mtc_diff.c"
}

#line 479 "mtc_diff.c"
static void MR_CALL 
mtc_diff____Compare____option_table_0_0_10001(
#line 482 "mtc_diff.c"
  MR_Box * mtc_diff__wrapper_arg_1,
#line 484 "mtc_diff.c"
  MR_Box mtc_diff__wrapper_arg_2,
#line 486 "mtc_diff.c"
  MR_Box mtc_diff__wrapper_arg_3)
#line 488 "mtc_diff.c"
{
#line 490 "mtc_diff.c"
  {
#line 492 "mtc_diff.c"
    MR_Word mtc_diff__conv0_HeadVar__1_1;

#line 495 "mtc_diff.c"
    {
#line 497 "mtc_diff.c"
      mtc_diff____Compare____option_table_0_0(&mtc_diff__conv0_HeadVar__1_1, ((MR_Word) mtc_diff__wrapper_arg_2), ((MR_Word) mtc_diff__wrapper_arg_3));
    }
#line 500 "mtc_diff.c"
    *mtc_diff__wrapper_arg_1 = ((MR_Box) (mtc_diff__conv0_HeadVar__1_1));
#line 502 "mtc_diff.c"
  }
#line 504 "mtc_diff.c"
}

#line 106 "mtc_diff.m"
static void MR_CALL 
mtc_diff__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_95_95_67_111_109_112_97_114_101_95_95_95_109_116_99_95_100_105_102_102_95_95_111_112_116_105_111_110_95_48_95_95_91_50_44_32_51_93_95_48_3_p_0(
#line 106 "mtc_diff.m"
  MR_Word * mtc_diff__HeadVar__1_1)
#line 106 "mtc_diff.m"
{
#line 106 "mtc_diff.m"
  {
#line 106 "mtc_diff.m"
    MR_bool mtc_diff__succeeded;

#line 106 "mtc_diff.m"
    *mtc_diff__HeadVar__1_1 = (MR_Integer) 0;
#line 106 "mtc_diff.m"
  }
#line 106 "mtc_diff.m"
}

#line 106 "mtc_diff.m"
static MR_bool MR_CALL 
mtc_diff__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_95_95_85_110_105_102_121_95_95_95_109_116_99_95_100_105_102_102_95_95_111_112_116_105_111_110_95_48_95_95_91_49_44_32_50_93_95_48_2_p_0(void)
#line 106 "mtc_diff.m"
{
#line 106 "mtc_diff.m"
  {
#line 106 "mtc_diff.m"
    return MR_TRUE;
#line 106 "mtc_diff.m"
  }
#line 106 "mtc_diff.m"
}

#line 109 "mtc_diff.m"
static void MR_CALL 
mtc_diff____Compare____option_table_0_0(
#line 109 "mtc_diff.m"
  MR_Word * mtc_diff__HeadVar__1_1,
#line 109 "mtc_diff.m"
  MR_Word mtc_diff__HeadVar__2_2,
#line 109 "mtc_diff.m"
  MR_Word mtc_diff__HeadVar__3_3)
#line 109 "mtc_diff.m"
{
#line 109 "mtc_diff.m"
  {
#line 109 "mtc_diff.m"
    MR_bool mtc_diff__succeeded;
#line 109 "mtc_diff.m"
    MR_Word mtc_diff__Cast_HeadVar1_4 = mtc_diff__HeadVar__2_2;
#line 109 "mtc_diff.m"
    MR_Word mtc_diff__Cast_HeadVar2_5 = mtc_diff__HeadVar__3_3;

#line 109 "mtc_diff.m"
    {
#line 109 "mtc_diff.m"
      mercury__builtin__compare_3_p_0((MR_Word) &mtc_diff_scalar_common_1[0], mtc_diff__HeadVar__1_1, ((MR_Box) (mtc_diff__Cast_HeadVar1_4)), ((MR_Box) (mtc_diff__Cast_HeadVar2_5)));
#line 109 "mtc_diff.m"
      return;
    }
#line 109 "mtc_diff.m"
  }
#line 109 "mtc_diff.m"
}

#line 109 "mtc_diff.m"
static MR_bool MR_CALL 
mtc_diff____Unify____option_table_0_0(
#line 109 "mtc_diff.m"
  MR_Word mtc_diff__HeadVar__1_1,
#line 109 "mtc_diff.m"
  MR_Word mtc_diff__HeadVar__2_2)
#line 109 "mtc_diff.m"
{
#line 109 "mtc_diff.m"
  {
#line 109 "mtc_diff.m"
    MR_bool mtc_diff__succeeded;
#line 109 "mtc_diff.m"
    MR_Word mtc_diff__Cast_HeadVar1_3 = mtc_diff__HeadVar__1_1;
#line 109 "mtc_diff.m"
    MR_Word mtc_diff__Cast_HeadVar2_4 = mtc_diff__HeadVar__2_2;

#line 109 "mtc_diff.m"
    {
#line 109 "mtc_diff.m"
      return mtc_diff__succeeded = mercury__builtin__unify_2_p_0((MR_Word) &mtc_diff_scalar_common_1[0], ((MR_Box) (mtc_diff__Cast_HeadVar1_3)), ((MR_Box) (mtc_diff__Cast_HeadVar2_4)));
    }
#line 109 "mtc_diff.m"
    return mtc_diff__succeeded;
#line 109 "mtc_diff.m"
  }
#line 109 "mtc_diff.m"
}

#line 106 "mtc_diff.m"
static void MR_CALL 
mtc_diff____Compare____option_0_0(
#line 106 "mtc_diff.m"
  MR_Word * mtc_diff__HeadVar__1_1)
#line 106 "mtc_diff.m"
{
#line 106 "mtc_diff.m"
  {
#line 106 "mtc_diff.m"
    MR_bool mtc_diff__succeeded;

#line 106 "mtc_diff.m"
    {
#line 106 "mtc_diff.m"
      mtc_diff__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_95_95_67_111_109_112_97_114_101_95_95_95_109_116_99_95_100_105_102_102_95_95_111_112_116_105_111_110_95_48_95_95_91_50_44_32_51_93_95_48_3_p_0(mtc_diff__HeadVar__1_1);
#line 106 "mtc_diff.m"
      return;
    }
#line 106 "mtc_diff.m"
  }
#line 106 "mtc_diff.m"
}

#line 106 "mtc_diff.m"
static MR_bool MR_CALL 
mtc_diff____Unify____option_0_0(void)
#line 106 "mtc_diff.m"
{
#line 106 "mtc_diff.m"
  {
#line 106 "mtc_diff.m"
    MR_bool mtc_diff__succeeded;

#line 106 "mtc_diff.m"
    {
#line 106 "mtc_diff.m"
      return mtc_diff__succeeded = mtc_diff__f_85_110_117_115_101_100_65_114_103_115_95_95_112_114_101_100_95_95_95_95_85_110_105_102_121_95_95_95_109_116_99_95_100_105_102_102_95_95_111_112_116_105_111_110_95_48_95_95_91_49_44_32_50_93_95_48_2_p_0();
    }
#line 106 "mtc_diff.m"
    return mtc_diff__succeeded;
#line 106 "mtc_diff.m"
  }
#line 106 "mtc_diff.m"
}

#line 113 "mtc_diff.m"
static void MR_CALL 
mtc_diff__option_default_2_p_0(
#line 113 "mtc_diff.m"
  MR_Word * mtc_diff__HeadVar__2_2,
#line 113 "mtc_diff.m"
  MR_Cont mtc_diff__cont,
#line 113 "mtc_diff.m"
  void * mtc_diff__cont_env_ptr)
#line 113 "mtc_diff.m"
{
#line 115 "mtc_diff.m"
  {
#line 115 "mtc_diff.m"
    MR_bool mtc_diff__succeeded;

#line 115 "mtc_diff.m"
    mercury__private_builtin__dummy_var = (MR_Integer) 0;
#line 115 "mtc_diff.m"
    *mtc_diff__HeadVar__2_2 = (MR_Word) MR_mkword(MR_mktag(3), &mtc_diff_scalar_common_3[0]);
#line 115 "mtc_diff.m"
    {
#line 115 "mtc_diff.m"
      mtc_diff__cont(mtc_diff__cont_env_ptr);
#line 115 "mtc_diff.m"
      return;
    }
#line 115 "mtc_diff.m"
  }
#line 113 "mtc_diff.m"
}

#line 112 "mtc_diff.m"
static MR_bool MR_CALL 
mtc_diff__long_option_2_p_0(
#line 112 "mtc_diff.m"
  MR_String mtc_diff__HeadVar__1_1)
#line 112 "mtc_diff.m"
{
#line 119 "mtc_diff.m"
  {
#line 119 "mtc_diff.m"
    MR_bool mtc_diff__succeeded = (strcmp(mtc_diff__HeadVar__1_1, (MR_String) "out") == 0);

#line 119 "mtc_diff.m"
    if (mtc_diff__succeeded)
#line 119 "mtc_diff.m"
      {
#line 119 "mtc_diff.m"
        mercury__private_builtin__dummy_var = (MR_Integer) 0;
#line 119 "mtc_diff.m"
        mtc_diff__succeeded = MR_TRUE;
#line 119 "mtc_diff.m"
      }
#line 119 "mtc_diff.m"
    return mtc_diff__succeeded;
#line 119 "mtc_diff.m"
  }
#line 112 "mtc_diff.m"
}

#line 111 "mtc_diff.m"
static MR_bool MR_CALL 
mtc_diff__short_option_2_p_0(
#line 111 "mtc_diff.m"
  MR_Char mtc_diff__HeadVar__1_1)
#line 111 "mtc_diff.m"
{
#line 117 "mtc_diff.m"
  {
#line 117 "mtc_diff.m"
    MR_bool mtc_diff__succeeded = (mtc_diff__HeadVar__1_1 == (MR_Char) 111);

#line 117 "mtc_diff.m"
    if (mtc_diff__succeeded)
#line 117 "mtc_diff.m"
      {
#line 117 "mtc_diff.m"
        mercury__private_builtin__dummy_var = (MR_Integer) 0;
#line 117 "mtc_diff.m"
        mtc_diff__succeeded = MR_TRUE;
#line 117 "mtc_diff.m"
      }
#line 117 "mtc_diff.m"
    return mtc_diff__succeeded;
#line 117 "mtc_diff.m"
  }
#line 111 "mtc_diff.m"
}

#line 42 "mtc_diff.m"
static void MR_CALL 
main_2_p_0_3(
#line 42 "mtc_diff.m"
  void * mtc_diff__env_ptr_arg)
#line 42 "mtc_diff.m"
{
#line 42 "mtc_diff.m"
  {
#line 42 "mtc_diff.m"
    struct mtc_diff__main_2_p_0_4_env_0_s * mtc_diff__env_ptr = (struct mtc_diff__main_2_p_0_4_env_0_s *) mtc_diff__env_ptr_arg;

#line 42 "mtc_diff.m"
    *((mtc_diff__env_ptr)->mtc_diff__main_2_p_0_4_env_0__wrapper_arg_2) = ((MR_Box) ((mtc_diff__env_ptr)->mtc_diff__main_2_p_0_4_env_0__conv0_HeadVar__2_2));
#line 42 "mtc_diff.m"
    {
#line 42 "mtc_diff.m"
      ((mtc_diff__env_ptr)->mtc_diff__main_2_p_0_4_env_0__cont)((mtc_diff__env_ptr)->mtc_diff__main_2_p_0_4_env_0__cont_env_ptr);
#line 42 "mtc_diff.m"
      return;
    }
#line 42 "mtc_diff.m"
  }
#line 42 "mtc_diff.m"
}

#line 42 "mtc_diff.m"
static void MR_CALL 
main_2_p_0_4(
#line 42 "mtc_diff.m"
  MR_Box mtc_diff__closure_arg,
#line 42 "mtc_diff.m"
  MR_Box * mtc_diff__wrapper_arg_1,
#line 42 "mtc_diff.m"
  MR_Box * mtc_diff__wrapper_arg_2,
#line 42 "mtc_diff.m"
  MR_Cont mtc_diff__cont,
#line 42 "mtc_diff.m"
  void * mtc_diff__cont_env_ptr)
#line 42 "mtc_diff.m"
{
#line 42 "mtc_diff.m"
  {
#line 42 "mtc_diff.m"
    struct mtc_diff__main_2_p_0_4_env_0_s mtc_diff__env;

#line 42 "mtc_diff.m"
    (mtc_diff__env).mtc_diff__main_2_p_0_4_env_0__wrapper_arg_2 = mtc_diff__wrapper_arg_2;
#line 42 "mtc_diff.m"
    (mtc_diff__env).mtc_diff__main_2_p_0_4_env_0__cont = mtc_diff__cont;
#line 42 "mtc_diff.m"
    (mtc_diff__env).mtc_diff__main_2_p_0_4_env_0__cont_env_ptr = mtc_diff__cont_env_ptr;
#line 42 "mtc_diff.m"
    {
#line 42 "mtc_diff.m"
      MR_Box mtc_diff__closure = mtc_diff__closure_arg;

#line 42 "mtc_diff.m"
      {
#line 42 "mtc_diff.m"
        mtc_diff__option_default_2_p_0(&(mtc_diff__env).mtc_diff__main_2_p_0_4_env_0__conv0_HeadVar__2_2, main_2_p_0_3, &mtc_diff__env);
      }
#line 42 "mtc_diff.m"
    }
#line 42 "mtc_diff.m"
  }
#line 42 "mtc_diff.m"
}

#line 42 "mtc_diff.m"
static MR_bool MR_CALL 
main_2_p_0_2(
#line 42 "mtc_diff.m"
  MR_Box mtc_diff__closure_arg,
#line 42 "mtc_diff.m"
  MR_Box mtc_diff__wrapper_arg_1,
#line 42 "mtc_diff.m"
  MR_Box * mtc_diff__wrapper_arg_2)
#line 42 "mtc_diff.m"
{
#line 42 "mtc_diff.m"
  {
#line 42 "mtc_diff.m"
    MR_bool mtc_diff__succeeded;
#line 42 "mtc_diff.m"
    MR_Box mtc_diff__closure = mtc_diff__closure_arg;

#line 42 "mtc_diff.m"
    {
#line 42 "mtc_diff.m"
      return mtc_diff__succeeded = mtc_diff__long_option_2_p_0(((MR_String) mtc_diff__wrapper_arg_1));
    }
#line 42 "mtc_diff.m"
    return mtc_diff__succeeded;
#line 42 "mtc_diff.m"
  }
#line 42 "mtc_diff.m"
}

#line 42 "mtc_diff.m"
static MR_bool MR_CALL 
main_2_p_0_1(
#line 42 "mtc_diff.m"
  MR_Box mtc_diff__closure_arg,
#line 42 "mtc_diff.m"
  MR_Box mtc_diff__wrapper_arg_1,
#line 42 "mtc_diff.m"
  MR_Box * mtc_diff__wrapper_arg_2)
#line 42 "mtc_diff.m"
{
#line 42 "mtc_diff.m"
  {
#line 42 "mtc_diff.m"
    MR_bool mtc_diff__succeeded;
#line 42 "mtc_diff.m"
    MR_Box mtc_diff__closure = mtc_diff__closure_arg;

#line 42 "mtc_diff.m"
    {
#line 42 "mtc_diff.m"
      return mtc_diff__succeeded = mtc_diff__short_option_2_p_0(((MR_Char) (MR_Word) mtc_diff__wrapper_arg_1));
    }
#line 42 "mtc_diff.m"
    return mtc_diff__succeeded;
#line 42 "mtc_diff.m"
  }
#line 42 "mtc_diff.m"
}

#line 21 "mtc_diff.m"
void MR_CALL 
main_2_p_0(void)
#line 21 "mtc_diff.m"
{
#line 39 "mtc_diff.m"
  {
#line 39 "mtc_diff.m"
    MR_bool mtc_diff__succeeded;
#line 39 "mtc_diff.m"
    MR_Word mtc_diff__TypeCtorInfo_69_69;
#line 39 "mtc_diff.m"
    MR_Word mtc_diff__Args0_4;
#line 39 "mtc_diff.m"
    MR_Word mtc_diff__Args_6;
#line 39 "mtc_diff.m"
    MR_Word mtc_diff__GetoptResult_7;

#line 40 "mtc_diff.m"
    {
#line 40 "mtc_diff.m"
      mdbcomp__shared_utilities__unlimit_stack_2_p_0();
    }
#line 41 "mtc_diff.m"
    {
#line 41 "mtc_diff.m"
      mercury__io__command_line_arguments_3_p_0(&mtc_diff__Args0_4);
    }
#line 895 "mtc_diff.c"
    mtc_diff__TypeCtorInfo_69_69 = (MR_Word) &mtc_diff__mtc_diff__type_ctor_info_option_0;
#line 43 "mtc_diff.m"
    {
#line 43 "mtc_diff.m"
      mercury__getopt__process_options_4_p_0(mtc_diff__TypeCtorInfo_69_69, (MR_Word) MR_mkword(MR_mktag(2), &mtc_diff_scalar_common_1[4]), mtc_diff__Args0_4, &mtc_diff__Args_6, &mtc_diff__GetoptResult_7);
    }
#line 91 "mtc_diff.m"
    if (((MR_tag((MR_Word) mtc_diff__GetoptResult_7)) == (MR_mktag((MR_Integer) 1))))
#line 92 "mtc_diff.m"
      {
#line 92 "mtc_diff.m"
        MR_String mtc_diff__GetoptErrorMsg_28 = ((MR_String) (MR_hl_field(MR_mktag(1), mtc_diff__GetoptResult_7, (MR_Integer) 0)));

#line 93 "mtc_diff.m"
        {
#line 93 "mtc_diff.m"
          mercury__io__write_string_3_p_0(mtc_diff__GetoptErrorMsg_28);
        }
#line 94 "mtc_diff.m"
        {
#line 94 "mtc_diff.m"
          mercury__io__nl_2_p_0();
#line 94 "mtc_diff.m"
          return;
        }
#line 92 "mtc_diff.m"
      }
#line 91 "mtc_diff.m"
    else
#line 45 "mtc_diff.m"
      {
#line 45 "mtc_diff.m"
        MR_Word mtc_diff__OptionTable_8 = ((MR_Word) (MR_hl_field(MR_mktag(0), mtc_diff__GetoptResult_7, (MR_Integer) 0)));
#line 45 "mtc_diff.m"
        MR_String mtc_diff__OutputFile_9;
#line 88 "mtc_diff.m"
        MR_String mtc_diff__Arg1_10;
#line 88 "mtc_diff.m"
        MR_String mtc_diff__Arg2_11;
#line 48 "mtc_diff.m"
        MR_Word mtc_diff__V_39_39;
#line 48 "mtc_diff.m"
        MR_Word mtc_diff__V_40_40;

#line 46 "mtc_diff.m"
        mercury__private_builtin__dummy_var = (MR_Integer) 0;
#line 46 "mtc_diff.m"
        {
#line 46 "mtc_diff.m"
          mercury__getopt__lookup_string_option_3_p_0(mtc_diff__TypeCtorInfo_69_69, mtc_diff__OptionTable_8, ((MR_Box) ((MR_Integer) 0)), &mtc_diff__OutputFile_9);
        }
#line 49 "mtc_diff.m"
        mtc_diff__succeeded = (strcmp(mtc_diff__OutputFile_9, (MR_String) "") == 0);
#line 49 "mtc_diff.m"
        mtc_diff__succeeded = !(mtc_diff__succeeded);
#line 48 "mtc_diff.m"
        if (mtc_diff__succeeded)
#line 48 "mtc_diff.m"
          {
#line 48 "mtc_diff.m"
            mtc_diff__succeeded = ((MR_tag((MR_Word) mtc_diff__Args_6)) == (MR_mktag((MR_Integer) 1)));
#line 48 "mtc_diff.m"
            if (mtc_diff__succeeded)
#line 48 "mtc_diff.m"
              {
#line 48 "mtc_diff.m"
                mtc_diff__Arg1_10 = ((MR_String) (MR_hl_field(MR_mktag(1), mtc_diff__Args_6, (MR_Integer) 0)));
#line 48 "mtc_diff.m"
                mtc_diff__V_39_39 = ((MR_Word) (MR_hl_field(MR_mktag(1), mtc_diff__Args_6, (MR_Integer) 1)));
#line 48 "mtc_diff.m"
                mtc_diff__succeeded = ((MR_tag((MR_Word) mtc_diff__V_39_39)) == (MR_mktag((MR_Integer) 1)));
#line 48 "mtc_diff.m"
                if (mtc_diff__succeeded)
#line 48 "mtc_diff.m"
                  {
#line 48 "mtc_diff.m"
                    mtc_diff__Arg2_11 = ((MR_String) (MR_hl_field(MR_mktag(1), mtc_diff__V_39_39, (MR_Integer) 0)));
#line 48 "mtc_diff.m"
                    mtc_diff__V_40_40 = ((MR_Word) (MR_hl_field(MR_mktag(1), mtc_diff__V_39_39, (MR_Integer) 1)));
#line 48 "mtc_diff.m"
                    mtc_diff__succeeded = (mtc_diff__V_40_40 == ((MR_Word) MR_mkword(MR_mktag(0), MR_mkbody((MR_Integer) 0))));
#line 48 "mtc_diff.m"
                  }
#line 48 "mtc_diff.m"
              }
#line 48 "mtc_diff.m"
          }
#line 88 "mtc_diff.m"
        if (mtc_diff__succeeded)
#line 51 "mtc_diff.m"
          {
#line 51 "mtc_diff.m"
            MR_Word mtc_diff__StdErr_12;
#line 51 "mtc_diff.m"
            MR_Word mtc_diff__MaybeTraceCounts1_13;
#line 51 "mtc_diff.m"
            MR_Word mtc_diff__MaybeTraceCounts2_17;
#line 84 "mtc_diff.m"
            MR_Word mtc_diff__Type1_21;
#line 84 "mtc_diff.m"
            MR_Word mtc_diff__TraceCounts1_22;
#line 84 "mtc_diff.m"
            MR_Word mtc_diff__Type2_23;
#line 84 "mtc_diff.m"
            MR_Word mtc_diff__TraceCounts2_24;

#line 51 "mtc_diff.m"
            {
#line 51 "mtc_diff.m"
              mercury__io__stderr_stream_3_p_0(&mtc_diff__StdErr_12);
            }
#line 52 "mtc_diff.m"
            {
#line 52 "mtc_diff.m"
              mdbcomp__trace_counts__read_trace_counts_source_4_p_0(mtc_diff__Arg1_10, &mtc_diff__MaybeTraceCounts1_13);
            }
#line 55 "mtc_diff.m"
            if (((MR_tag((MR_Word) mtc_diff__MaybeTraceCounts1_13)) == (MR_mktag((MR_Integer) 1))))
#line 56 "mtc_diff.m"
              {
#line 56 "mtc_diff.m"
                MR_String mtc_diff__Msg1_16 = ((MR_String) (MR_hl_field(MR_mktag(1), mtc_diff__MaybeTraceCounts1_13, (MR_Integer) 0)));

#line 57 "mtc_diff.m"
                {
#line 57 "mtc_diff.m"
                  mercury__io__write_string_4_p_0(mtc_diff__StdErr_12, mtc_diff__Msg1_16);
                }
#line 58 "mtc_diff.m"
                {
#line 58 "mtc_diff.m"
                  mercury__io__nl_3_p_0(mtc_diff__StdErr_12);
                }
#line 56 "mtc_diff.m"
              }
#line 55 "mtc_diff.m"
            else
#line 54 "mtc_diff.m"
              {
#line 54 "mtc_diff.m"
              }
#line 60 "mtc_diff.m"
            {
#line 60 "mtc_diff.m"
              mdbcomp__trace_counts__read_trace_counts_source_4_p_0(mtc_diff__Arg2_11, &mtc_diff__MaybeTraceCounts2_17);
            }
#line 63 "mtc_diff.m"
            if (((MR_tag((MR_Word) mtc_diff__MaybeTraceCounts2_17)) == (MR_mktag((MR_Integer) 1))))
#line 64 "mtc_diff.m"
              {
#line 64 "mtc_diff.m"
                MR_String mtc_diff__Msg2_20 = ((MR_String) (MR_hl_field(MR_mktag(1), mtc_diff__MaybeTraceCounts2_17, (MR_Integer) 0)));

#line 65 "mtc_diff.m"
                {
#line 65 "mtc_diff.m"
                  mercury__io__write_string_4_p_0(mtc_diff__StdErr_12, mtc_diff__Msg2_20);
                }
#line 66 "mtc_diff.m"
                {
#line 66 "mtc_diff.m"
                  mercury__io__nl_3_p_0(mtc_diff__StdErr_12);
                }
#line 64 "mtc_diff.m"
              }
#line 63 "mtc_diff.m"
            else
#line 62 "mtc_diff.m"
              {
#line 62 "mtc_diff.m"
              }
#line 69 "mtc_diff.m"
            mtc_diff__succeeded = ((MR_tag((MR_Word) mtc_diff__MaybeTraceCounts1_13)) == (MR_mktag((MR_Integer) 0)));
#line 69 "mtc_diff.m"
            if (mtc_diff__succeeded)
#line 69 "mtc_diff.m"
              {
#line 69 "mtc_diff.m"
                mtc_diff__Type1_21 = ((MR_Word) (MR_hl_field(MR_mktag(0), mtc_diff__MaybeTraceCounts1_13, (MR_Integer) 0)));
#line 69 "mtc_diff.m"
                mtc_diff__TraceCounts1_22 = ((MR_Word) (MR_hl_field(MR_mktag(0), mtc_diff__MaybeTraceCounts1_13, (MR_Integer) 1)));
#line 70 "mtc_diff.m"
                mtc_diff__succeeded = ((MR_tag((MR_Word) mtc_diff__MaybeTraceCounts2_17)) == (MR_mktag((MR_Integer) 0)));
#line 70 "mtc_diff.m"
                if (mtc_diff__succeeded)
#line 70 "mtc_diff.m"
                  {
#line 70 "mtc_diff.m"
                    mtc_diff__Type2_23 = ((MR_Word) (MR_hl_field(MR_mktag(0), mtc_diff__MaybeTraceCounts2_17, (MR_Integer) 0)));
#line 70 "mtc_diff.m"
                    mtc_diff__TraceCounts2_24 = ((MR_Word) (MR_hl_field(MR_mktag(0), mtc_diff__MaybeTraceCounts2_17, (MR_Integer) 1)));
#line 70 "mtc_diff.m"
                  }
#line 69 "mtc_diff.m"
              }
#line 84 "mtc_diff.m"
            if (mtc_diff__succeeded)
#line 72 "mtc_diff.m"
              {
#line 72 "mtc_diff.m"
                MR_Word mtc_diff__TraceCounts_25;
#line 72 "mtc_diff.m"
                MR_Word mtc_diff__WriteResult_26;
#line 72 "mtc_diff.m"
                MR_Word mtc_diff__V_48_48;

#line 72 "mtc_diff.m"
                {
#line 72 "mtc_diff.m"
                  mdbcomp__trace_counts__diff_trace_counts_3_p_0(mtc_diff__TraceCounts1_22, mtc_diff__TraceCounts2_24, &mtc_diff__TraceCounts_25);
                }
#line 73 "mtc_diff.m"
                {
#line 73 "mtc_diff.m"
                  mtc_diff__V_48_48 = (MR_Word) MR_mkword(MR_mktag(2), MR_new_object(MR_Word, ((MR_Integer) 2 * sizeof(MR_Word)), NULL, NULL));
#line 73 "mtc_diff.m"
                  MR_hl_field(MR_mktag(2), mtc_diff__V_48_48, 0) = ((MR_Box) (mtc_diff__Type1_21));
#line 73 "mtc_diff.m"
                  MR_hl_field(MR_mktag(2), mtc_diff__V_48_48, 1) = ((MR_Box) (mtc_diff__Type2_23));
#line 73 "mtc_diff.m"
                }
#line 73 "mtc_diff.m"
                {
#line 73 "mtc_diff.m"
                  mdbcomp__trace_counts__write_trace_counts_to_file_6_p_0(mtc_diff__V_48_48, mtc_diff__TraceCounts_25, mtc_diff__OutputFile_9, &mtc_diff__WriteResult_26);
                }
#line 77 "mtc_diff.m"
                if ((mtc_diff__WriteResult_26 == ((MR_Word) MR_mkword(MR_mktag(0), MR_mkbody((MR_Integer) 0)))))
#line 76 "mtc_diff.m"
                  {
#line 76 "mtc_diff.m"
                  }
#line 77 "mtc_diff.m"
                else
#line 78 "mtc_diff.m"
                  {
#line 78 "mtc_diff.m"
                    MR_Word mtc_diff__WriteErrorMsg_27 = ((MR_Word) (MR_hl_field(MR_mktag(1), mtc_diff__WriteResult_26, (MR_Integer) 0)));
#line 78 "mtc_diff.m"
                    MR_String mtc_diff__V_50_50;
#line 78 "mtc_diff.m"
                    MR_String mtc_diff__V_53_53;
#line 78 "mtc_diff.m"
                    MR_String mtc_diff__V_55_55;
#line 78 "mtc_diff.m"
                    MR_String mtc_diff__V_56_56;
#line 78 "mtc_diff.m"
                    MR_String mtc_diff__V_58_58;
#line 78 "mtc_diff.m"
                    MR_String mtc_diff__V_60_60;

#line 80 "mtc_diff.m"
                    {
#line 80 "mtc_diff.m"
                      mtc_diff__V_60_60 = mercury__string__string_1_f_0((MR_Word) &mercury__io__io__type_ctor_info_error_0, ((MR_Box) (mtc_diff__WriteErrorMsg_27)));
                    }
#line 80 "mtc_diff.m"
                    {
#line 80 "mtc_diff.m"
                      mtc_diff__V_58_58 = mercury__string__f_43_43_2_f_0((MR_String) ": ", mtc_diff__V_60_60);
                    }
#line 80 "mtc_diff.m"
                    {
#line 80 "mtc_diff.m"
                      mtc_diff__V_56_56 = mercury__string__f_43_43_2_f_0((MR_String) "\'", mtc_diff__V_58_58);
                    }
#line 80 "mtc_diff.m"
                    {
#line 80 "mtc_diff.m"
                      mtc_diff__V_55_55 = mercury__string__f_43_43_2_f_0(mtc_diff__OutputFile_9, mtc_diff__V_56_56);
                    }
#line 79 "mtc_diff.m"
                    {
#line 79 "mtc_diff.m"
                      mtc_diff__V_53_53 = mercury__string__f_43_43_2_f_0((MR_String) "file \140", mtc_diff__V_55_55);
                    }
#line 79 "mtc_diff.m"
                    {
#line 79 "mtc_diff.m"
                      mtc_diff__V_50_50 = mercury__string__f_43_43_2_f_0((MR_String) "Error writing to ", mtc_diff__V_53_53);
                    }
#line 79 "mtc_diff.m"
                    {
#line 79 "mtc_diff.m"
                      mercury__io__write_string_4_p_0(mtc_diff__StdErr_12, mtc_diff__V_50_50);
                    }
#line 82 "mtc_diff.m"
                    {
#line 82 "mtc_diff.m"
                      mercury__io__nl_3_p_0(mtc_diff__StdErr_12);
#line 82 "mtc_diff.m"
                      return;
                    }
#line 78 "mtc_diff.m"
                  }
#line 72 "mtc_diff.m"
              }
#line 84 "mtc_diff.m"
            else
#line 82 "mtc_diff.m"
              {
#line 82 "mtc_diff.m"
              }
#line 51 "mtc_diff.m"
          }
#line 88 "mtc_diff.m"
        else
#line 99 "mtc_diff.m"
          {
#line 100 "mtc_diff.m"
            {
#line 100 "mtc_diff.m"
              mercury__io__write_string_3_p_0((MR_String) "Usage: mtc_diff -o outputfile tracecountfile1 tracecountfile2\n");
#line 100 "mtc_diff.m"
              return;
            }
#line 99 "mtc_diff.m"
          }
#line 45 "mtc_diff.m"
      }
#line 39 "mtc_diff.m"
  }
#line 21 "mtc_diff.m"
}

void mercury__mtc_diff__init(void)
{
}

void mercury__mtc_diff__init_type_tables(void)
{
	static MR_bool initialised = MR_FALSE;
	if (initialised) return;
	initialised = MR_TRUE;

	MR_register_type_ctor_info(&mtc_diff__mtc_diff__type_ctor_info_option_0);
	MR_register_type_ctor_info(&mtc_diff__mtc_diff__type_ctor_info_option_table_0);
}

void mercury__mtc_diff__init_debugger(void)
{
	MR_fatal_error("debugger initialization in MLDS grade");
}

/* ensure everything is compiled with the same grade */
static const void *const MR_grade = &MR_GRADE_VAR;

/* :- end_module mtc_diff. */
