#include "run-time.h"

/* Typedefs for referenced classes */

#define  define__KLsimple_object_vectorGVKd(nrepeated) \
  typedef struct { \
    D wrapper; \
    D size_; \
    D vector_element_[nrepeated+1]; \
  } _KLsimple_object_vectorGVKd_##nrepeated;
define__KLsimple_object_vectorGVKd(3);
define__KLsimple_object_vectorGVKd(6);
define__KLsimple_object_vectorGVKd(256);
define__KLsimple_object_vectorGVKd(1);
define__KLsimple_object_vectorGVKd(0);
define__KLsimple_object_vectorGVKd(2);

typedef struct {
  D wrapper;
  D instanceQ_iep_;
  D debug_name_;
  D class_implementation_class_;
  D class_subtype_bit_;
  D class_module_;
} _KLclassGVKd;

#define  define__KLmm_wrapperGVKi(nrepeated) \
  typedef struct { \
    D wrapper; \
    D mm_wrapper_implementation_class_; \
    D mm_wrapper_subtype_mask_; \
    DWORD mm_wrapper_fixed_part_; \
    DWORD mm_wrapper_variable_part_; \
    D mm_wrapper_number_patterns_; \
    DWORD mm_wrapper_pattern_element_[nrepeated+1]; \
  } _KLmm_wrapperGVKi_##nrepeated;
define__KLmm_wrapperGVKi(1);
define__KLmm_wrapperGVKi(0);

typedef struct {
  D wrapper;
} _KLobjectGVKd;

typedef struct {
  D wrapper;
} _KLunboundGVKe;

typedef struct {
  D wrapper;
} _KLbooleanGVKd;

typedef struct {
  D wrapper;
  D xep_;
  D function_signature_;
  D mep_;
  D iep_;
  D keyword_specifiers_;
} _KLkeyword_methodGVKe;

typedef struct {
  D wrapper;
  D instanceQ_iep_;
  D debug_name_;
  D class_implementation_class_;
  D class_subtype_bit_;
  D class_module_;
} _KLfunction_classGVKi;

typedef struct {
  D wrapper;
  D signature_properties_;
  D signature_required_;
  D signature_keys_;
  D signature_key_types_;
} _KLkeyword_signatureGVKe;

typedef struct {
  D wrapper;
  D mangler_;
  D cg_variables_;
  D registers_;
  D variables_;
} _KLharp_back_endGYbase_harpVharp;

typedef struct {
  D wrapper;
  D class_properties_;
  D iclass_class_;
  D class_mm_wrapper_;
  D repeated_slot_descriptor_;
  D instance_slot_descriptors_;
  D iclass_dispatch_key_;
  D class_constructor_;
  D direct_superclasses_;
  D class_rcpl_vector_;
  D class_rcpl_position_;
  D class_rcpl_other_positions_;
  D class_known_joint_;
  D iclass_dependent_generics_;
  D iclass_subclass_dependent_generics_;
  D direct_subclasses_;
  D direct_methods_;
  D direct_slot_descriptors_;
  D slot_descriptors_;
  D direct_inherited_slot_descriptors_;
  D direct_initialization_argument_descriptors_;
  D class_slot_descriptors_;
  D defaulted_initialization_arguments_slot_;
  D class_slot_storage_;
} _KLimplementation_classGVKe;

typedef struct {
  D wrapper;
  D head_;
  D tail_;
} _KLempty_listGVKd;

typedef struct {
  D wrapper;
} _KLharp_outputterGYharp_outputterVharp;

typedef struct {
  D wrapper;
  D outputter_line_pos_;
  D outputter_stream_;
} _KLstream_wrapper_outputterGYharp_outputterVharp;

typedef struct {
  D wrapper;
  D outputter_line_pos_;
  D outputter_stream_;
} _KLharp_print_outputterGYharp_outputterVharp;

typedef struct {
  D wrapper;
} _KLstreamGYcommon_extensionsVcommon_dylan;

typedef struct {
  D wrapper;
  D xep_;
  D function_signature_;
  D Pgf_cache_;
  D debug_name_;
  D generic_function_methods_;
  D discriminator_;
  D incremental_gf_module_;
  D incremental_gf_domain_info_;
  D incremental_gf_method_libraries_;
  D incremental_gf_properties_;
} _KLincremental_generic_functionGVKe;

#define  define__KLbyte_stringGVKd(nrepeated) \
  typedef struct { \
    D wrapper; \
    D size_; \
    char string_element_[nrepeated+1]; \
  } _KLbyte_stringGVKd_##nrepeated;
define__KLbyte_stringGVKd(10);
define__KLbyte_stringGVKd(22);
define__KLbyte_stringGVKd(21);
define__KLbyte_stringGVKd(30);
define__KLbyte_stringGVKd(11);
define__KLbyte_stringGVKd(34);
define__KLbyte_stringGVKd(6);
define__KLbyte_stringGVKd(23);

typedef struct {
  D wrapper;
  D symbol_name_;
} _KLsymbolGVKd;

typedef struct {
  D wrapper;
  D signature_properties_;
  D signature_required_;
  D signature_keys_;
  D signature_key_types_;
  D signature_values_;
} _KLkeyword_signatureAvaluesGVKi;

typedef struct {
  D wrapper;
  D slot_descriptor_properties_;
  D init_data_slot_;
  D slot_owner_;
  D init_keyword_;
  D slot_getter_;
  D slot_setter_;
  D slot_type_;
} _KLinstance_slot_descriptorGVKe;

typedef struct {
  D wrapper;
  D namespace_name_;
  D home_library_;
} _KLmoduleGVKe;

typedef struct {
  D wrapper;
  D internal_outputters_;
} _KLharp_multiple_outputterGYharp_outputterVharp;

typedef struct {
  D wrapper;
  D xep_;
  D function_signature_;
  D mep_;
} _KLsimple_methodGVKe;

typedef struct {
  D wrapper;
  D signature_properties_;
  D signature_required_;
  D signature_values_;
} _KLsignatureAvaluesGVKi;

typedef struct {
  D wrapper;
  D instanceQ_iep_;
  D singleton_object_;
} _KLsingletonGVKd;

typedef struct {
  D wrapper;
  D outputter_line_pos_;
  D outputter_stream_;
} _KLharp_mnemonic_unstreamed_assembler_outputterGYharp_outputterVharp;

typedef struct {
  D wrapper;
  D outputter_line_pos_;
  D outputter_stream_;
} _KLharp_binary_unstreamed_assembler_outputterGYharp_outputterVharp;


/* Typedefs for defined classes */

typedef struct {
  D wrapper;
  D outputter_line_pos_;
  D outputter_stream_;
} _KLharp_interactive_print_outputterGYharp_outputterVharp;


/* Referenced object declarations */

extern _KLclassGVKd KLsimple_object_vectorGVKd;
extern _KLclassGVKd KLclassGVKd;
extern _KLmm_wrapperGVKi_0 KLclassGVKdW;
extern _KLclassGVKd KLmm_wrapperGVKi;
extern _KLmm_wrapperGVKi_1 KLmm_wrapperGVKiW;
extern _KLmm_wrapperGVKi_0 KLsimple_object_vectorGVKdW;
D KlistVKdI (D);
extern _KLclassGVKd KLobjectGVKd;
extern _KLmm_wrapperGVKi_0 KLobjectGVKdW;
extern _KLunboundGVKe KPunboundVKi;
extern _KLclassGVKd KLunboundGVKe;
extern _KLmm_wrapperGVKi_0 KLunboundGVKeW;
extern _KLbooleanGVKd KPtrueVKi;
extern _KLclassGVKd KLbooleanGVKd;
extern _KLmm_wrapperGVKi_0 KLbooleanGVKdW;
extern _KLbooleanGVKd KPfalseVKi;
extern _KLfunction_classGVKi KLkeyword_methodGVKe;
extern _KLclassGVKd KLfunction_classGVKi;
extern _KLmm_wrapperGVKi_0 KLfunction_classGVKiW;
extern _KLmm_wrapperGVKi_0 KLkeyword_methodGVKeW;
extern _KLsimple_object_vectorGVKd_0 KPempty_vectorVKi;
extern _KLclassGVKd KLkeyword_signatureGVKe;
extern _KLmm_wrapperGVKi_0 KLkeyword_signatureGVKeW;
extern _KLclassGVKd KLharp_back_endGYbase_harpVharp;
extern _KLmm_wrapperGVKi_0 KLharp_back_endGYbase_harpVharpW;
extern _KLclassGVKd KLimplementation_classGVKe;
extern _KLmm_wrapperGVKi_0 KLimplementation_classGVKeW;
extern _KLempty_listGVKd KPempty_listVKi;
extern _KLclassGVKd KLempty_listGVKd;
extern _KLmm_wrapperGVKi_0 KLempty_listGVKdW;
extern _KLclassGVKd KLharp_outputterGYharp_outputterVharp;
extern _KLmm_wrapperGVKi_0 KLharp_outputterGYharp_outputterVharpW;
extern _KLclassGVKd KLstream_wrapper_outputterGYharp_outputterVharp;
extern _KLmm_wrapperGVKi_0 KLstream_wrapper_outputterGYharp_outputterVharpW;
extern _KLclassGVKd KLharp_print_outputterGYharp_outputterVharp;
extern _KLmm_wrapperGVKi_0 KLharp_print_outputterGYharp_outputterVharpW;
D KerrorVKdMM1I (D, D);
extern _KLclassGVKd KLstreamGYcommon_extensionsVcommon_dylan;
extern _KLmm_wrapperGVKi_0 KLstreamGYcommon_extensionsVcommon_dylanW;
extern _KLincremental_generic_functionGVKe KinitializeVKd;
extern _KLfunction_classGVKi KLincremental_generic_functionGVKe;
extern _KLmm_wrapperGVKi_0 KLincremental_generic_functionGVKeW;
extern _KLclassGVKd KLbyte_stringGVKd;
extern _KLmm_wrapperGVKi_0 KLbyte_stringGVKdW;
extern _KLclassGVKd KLsymbolGVKd;
extern _KLmm_wrapperGVKi_0 KLsymbolGVKdW;
extern _KLclassGVKd KLkeyword_signatureAvaluesGVKi;
extern _KLmm_wrapperGVKi_0 KLkeyword_signatureAvaluesGVKiW;
extern _KLsimple_object_vectorGVKd_2 KDsignature_LclassG_typesVKi;
extern _KLsimple_object_vectorGVKd_256 KDsignature_LobjectG_typesVKi;
extern _KLinstance_slot_descriptorGVKe Koutputter_line_posYharp_outputterVharpHLstream_wrapper_outputterG;
extern _KLclassGVKd KLinstance_slot_descriptorGVKe;
extern _KLmm_wrapperGVKi_0 KLinstance_slot_descriptorGVKeW;
extern _KLinstance_slot_descriptorGVKe Koutputter_streamYharp_outputterVharpHLstream_wrapper_outputterG;
D Kclass_instanceQ_initialVKiI (D, D);
extern _KLmoduleGVKe Kharp_outputter_moduleYdylan_userVharp;
extern _KLclassGVKd KLmoduleGVKe;
extern _KLmm_wrapperGVKi_0 KLmoduleGVKeW;
extern _KLincremental_generic_functionGVKe Kmake_harp_outputter_by_typeYharp_outputterVharp;
extern _KLclassGVKd KLharp_multiple_outputterGYharp_outputterVharp;
extern _KLmm_wrapperGVKi_0 KLharp_multiple_outputterGYharp_outputterVharpW;
extern _KLfunction_classGVKi KLsimple_methodGVKe;
extern _KLmm_wrapperGVKi_0 KLsimple_methodGVKeW;
extern _KLclassGVKd KLsignatureAvaluesGVKi;
extern _KLmm_wrapperGVKi_0 KLsignatureAvaluesGVKiW;
extern _KLclassGVKd KLsingletonGVKd;
extern _KLmm_wrapperGVKi_0 KLsingletonGVKdW;
D Ksingleton_pointer_idQ_instanceQVKiI (D, D);
extern _KLincremental_generic_functionGVKe KmakeVKd;
extern _KLclassGVKd KLharp_mnemonic_unstreamed_assembler_outputterGYharp_outputterVharp;
extern _KLmm_wrapperGVKi_0 KLharp_mnemonic_unstreamed_assembler_outputterGYharp_outputterVharpW;
extern _KLclassGVKd KLharp_binary_unstreamed_assembler_outputterGYharp_outputterVharp;
extern _KLmm_wrapperGVKi_0 KLharp_binary_unstreamed_assembler_outputterGYharp_outputterVharpW;
extern D Tstandard_outputTYstandard_ioVio;

/* Defined object declarations */

static _KLsymbolGVKd KJinteractive_print_harp_;
static _KLsymbolGVKd KJinteractive_assembler_;
extern _KLsimple_methodGVKe Kmake_harp_outputter_by_typeYharp_outputterVharpMM4;
D Kmake_harp_outputter_by_typeYharp_outputterVharpMM4I (D, D, D);
extern _KLsimple_methodGVKe Kmake_harp_outputter_by_typeYharp_outputterVharpMM5;
D Kmake_harp_outputter_by_typeYharp_outputterVharpMM5I (D, D, D);
extern _KLsimple_methodGVKe Kmake_harp_outputter_by_typeYharp_outputterVharpMM6;
D Kmake_harp_outputter_by_typeYharp_outputterVharpMM6I (D, D, D);
extern _KLsimple_methodGVKe Kmake_harp_outputter_by_typeYharp_outputterVharpMM7;
D Kmake_harp_outputter_by_typeYharp_outputterVharpMM7I (D, D, D);
extern _KLkeyword_methodGVKe Kclose_harp_outputterYharp_outputterVharpMM4;
D Kclose_harp_outputterYharp_outputterVharpMM4I (D, D, D);
static _KLkeyword_signatureGVKe K13;
static _KLsimple_object_vectorGVKd_2 K14;
extern _KLclassGVKd KLharp_interactive_print_outputterGYharp_outputterVharp;
extern _KLmm_wrapperGVKi_0 KLharp_interactive_print_outputterGYharp_outputterVharpW;
static _KLimplementation_classGVKe K17;
static _KLsimple_object_vectorGVKd_2 K18;
extern _KLkeyword_methodGVKe KLharp_interactive_print_outputterGZ32ZconstructorYharp_outputterVharpMM0;
D KLharp_interactive_print_outputterGZ32ZconstructorYharp_outputterVharpMM0I (D, D, D);
static _KLsimple_object_vectorGVKd_1 K21;
static _KLsimple_object_vectorGVKd_6 K22;
static _KLsymbolGVKd KJstream_;
static _KLbyte_stringGVKd_23 K24;
static _KLbyte_stringGVKd_6 K25;
static _KLkeyword_signatureAvaluesGVKi K26;
static _KLsimple_object_vectorGVKd_2 K27;
static _KLsimple_object_vectorGVKd_1 K28;
static _KLsimple_object_vectorGVKd_1 K29;
static _KLbyte_stringGVKd_34 K30;
static _KLsignatureAvaluesGVKi K31;
static _KLsimple_object_vectorGVKd_3 K32;
static _KLsimple_object_vectorGVKd_1 K33;
static _KLsingletonGVKd K34;
static _KLsymbolGVKd KJinteractive_;
static _KLbyte_stringGVKd_11 K36;
D Kmake_mnemonic_interactive_assembler_outputterYharp_outputterVharpMM0I ();
static _KLsignatureAvaluesGVKi K38;
static _KLsimple_object_vectorGVKd_3 K39;
static _KLsimple_object_vectorGVKd_1 K40;
static _KLsingletonGVKd K41;
static _KLsymbolGVKd KJinteractive_mnemonic_assembler_;
static _KLbyte_stringGVKd_30 K43;
D Kmake_binary_interactive_assembler_outputterYharp_outputterVharpMM0I ();
static _KLsignatureAvaluesGVKi K45;
static _KLsimple_object_vectorGVKd_3 K46;
static _KLsimple_object_vectorGVKd_1 K47;
static _KLsingletonGVKd K48;
D Kmake_interactive_print_outputterYharp_outputterVharpMM0I ();
static _KLsignatureAvaluesGVKi K50;
static _KLsimple_object_vectorGVKd_3 K51;
static _KLsingletonGVKd K52;
static _KLbyte_stringGVKd_21 K53;
static _KLbyte_stringGVKd_22 K54;
extern _KLsimple_methodGVKe Kmake_interactive_print_outputterYharp_outputterVharpMM0;
static _KLsignatureAvaluesGVKi K56;
extern _KLsimple_methodGVKe Kmake_binary_interactive_assembler_outputterYharp_outputterVharpMM0;
static _KLsignatureAvaluesGVKi K58;
extern _KLsimple_methodGVKe Kmake_mnemonic_interactive_assembler_outputterYharp_outputterVharpMM0;
static _KLsignatureAvaluesGVKi K60;
extern _KLsimple_methodGVKe Kmake_interactive_outputterYharp_outputterVharpMM0;
D Kmake_interactive_outputterYharp_outputterVharpMM0I ();
static _KLsymbolGVKd KJoutputters_;
static _KLbyte_stringGVKd_10 K64;
static _KLsignatureAvaluesGVKi K65;

/* Indirection variables */

static D IKJinteractive_print_harp_ = &KJinteractive_print_harp_;
static D IKJinteractive_assembler_ = &KJinteractive_assembler_;
static D IKJstream_ = &KJstream_;
static D IKJinteractive_ = &KJinteractive_;
static D IKJinteractive_mnemonic_assembler_ = &KJinteractive_mnemonic_assembler_;
static D IKJoutputters_ = &KJoutputters_;

/* Variables */

D make_interactive_outputterYharp_outputterVharp = &Kmake_interactive_outputterYharp_outputterVharpMM0;
D make_mnemonic_interactive_assembler_outputterYharp_outputterVharp = &Kmake_mnemonic_interactive_assembler_outputterYharp_outputterVharpMM0;
D make_binary_interactive_assembler_outputterYharp_outputterVharp = &Kmake_binary_interactive_assembler_outputterYharp_outputterVharpMM0;
D make_interactive_print_outputterYharp_outputterVharp = &Kmake_interactive_print_outputterYharp_outputterVharpMM0;
D Lharp_interactive_print_outputterGYharp_outputterVharp = &KLharp_interactive_print_outputterGYharp_outputterVharp;
D Dint_mux_typesDYharp_outputterVharp = &KPunboundVKi;

/* Objects */

static _KLsymbolGVKd KJinteractive_print_harp_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K54
};

static _KLsymbolGVKd KJinteractive_assembler_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K53
};

_KLsimple_methodGVKe Kmake_harp_outputter_by_typeYharp_outputterVharpMM4 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_3,
  &K50,
  &Kmake_harp_outputter_by_typeYharp_outputterVharpMM4I
};

_KLsimple_methodGVKe Kmake_harp_outputter_by_typeYharp_outputterVharpMM5 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_3,
  &K45,
  &Kmake_harp_outputter_by_typeYharp_outputterVharpMM5I
};

_KLsimple_methodGVKe Kmake_harp_outputter_by_typeYharp_outputterVharpMM6 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_3,
  &K38,
  &Kmake_harp_outputter_by_typeYharp_outputterVharpMM6I
};

_KLsimple_methodGVKe Kmake_harp_outputter_by_typeYharp_outputterVharpMM7 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_3,
  &K31,
  &Kmake_harp_outputter_by_typeYharp_outputterVharpMM7I
};

_KLkeyword_methodGVKe Kclose_harp_outputterYharp_outputterVharpMM4 = {
  &KLkeyword_methodGVKeW /* wrapper */,
  &rest_key_xep_3,
  &K13,
  &key_mep_3,
  &Kclose_harp_outputterYharp_outputterVharpMM4I,
  &KPempty_vectorVKi
};

static _KLkeyword_signatureGVKe K13 = {
  &KLkeyword_signatureGVKeW /* wrapper */,
  (D) 42729481,
  &K14,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi
};

static _KLsimple_object_vectorGVKd_2 K14 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KLharp_back_endGYbase_harpVharp,
  &KLharp_interactive_print_outputterGYharp_outputterVharp
};

_KLclassGVKd KLharp_interactive_print_outputterGYharp_outputterVharp = {
  &KLclassGVKdW /* wrapper */,
  &Kclass_instanceQ_initialVKiI,
  &K30,
  &K17,
  (D) 1,
  &Kharp_outputter_moduleYdylan_userVharp
};

_KLmm_wrapperGVKi_0 KLharp_interactive_print_outputterGYharp_outputterVharpW = {
  &KLmm_wrapperGVKiW /* wrapper */,
  &K17,
  (D) 1,
  9,
  33554439,
  (D) 1
};

static _KLimplementation_classGVKe K17 = {
  &KLimplementation_classGVKeW /* wrapper */,
  (D) 477102089,
  &KLharp_interactive_print_outputterGYharp_outputterVharp,
  &KLharp_interactive_print_outputterGYharp_outputterVharpW,
  &KPfalseVKi,
  &K18,
  (D) -3,
  &KLharp_interactive_print_outputterGZ32ZconstructorYharp_outputterVharpMM0,
  &K21,
  &K22,
  (D) 17,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_listVKi,
  &KPempty_listVKi,
  &KPempty_listVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &K18,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi
};

static _KLsimple_object_vectorGVKd_2 K18 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &Koutputter_line_posYharp_outputterVharpHLstream_wrapper_outputterG,
  &Koutputter_streamYharp_outputterVharpHLstream_wrapper_outputterG
};

_KLkeyword_methodGVKe KLharp_interactive_print_outputterGZ32ZconstructorYharp_outputterVharpMM0 = {
  &KLkeyword_methodGVKeW /* wrapper */,
  &rest_key_xep_3,
  &K26,
  &key_mep_2,
  &KLharp_interactive_print_outputterGZ32ZconstructorYharp_outputterVharpMM0I,
  &K27
};

static _KLsimple_object_vectorGVKd_1 K21 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KLharp_print_outputterGYharp_outputterVharp
};

static _KLsimple_object_vectorGVKd_6 K22 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 25,
  &KLobjectGVKd,
  &KLharp_outputterGYharp_outputterVharp,
  &KLstream_wrapper_outputterGYharp_outputterVharp,
  &KLharp_print_outputterGYharp_outputterVharp,
  &KLharp_interactive_print_outputterGYharp_outputterVharp,
  &KPfalseVKi
};

static _KLsymbolGVKd KJstream_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K25
};

static _KLbyte_stringGVKd_23 K24 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 93,
  "Missing init keyword %="
};

static _KLbyte_stringGVKd_6 K25 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 25,
  "stream"
};

static _KLkeyword_signatureAvaluesGVKi K26 = {
  &KLkeyword_signatureAvaluesGVKiW /* wrapper */,
  (D) 35390469,
  &KDsignature_LclassG_typesVKi,
  &K28,
  &KDsignature_LobjectG_typesVKi,
  &K29
};

static _KLsimple_object_vectorGVKd_2 K27 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KJstream_,
  &KPunboundVKi
};

static _KLsimple_object_vectorGVKd_1 K28 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KJstream_
};

static _KLsimple_object_vectorGVKd_1 K29 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KLharp_interactive_print_outputterGYharp_outputterVharp
};

static _KLbyte_stringGVKd_34 K30 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 137,
  "<harp-interactive-print-outputter>"
};

static _KLsignatureAvaluesGVKi K31 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555469,
  &K32,
  &K33
};

static _KLsimple_object_vectorGVKd_3 K32 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 13,
  &KLharp_back_endGYbase_harpVharp,
  &KLobjectGVKd,
  &K34
};

static _KLsimple_object_vectorGVKd_1 K33 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KLharp_multiple_outputterGYharp_outputterVharp
};

static _KLsingletonGVKd K34 = {
  &KLsingletonGVKdW /* wrapper */,
  &Ksingleton_pointer_idQ_instanceQVKiI,
  &KJinteractive_
};

static _KLsymbolGVKd KJinteractive_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K36
};

static _KLbyte_stringGVKd_11 K36 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 45,
  "interactive"
};

static _KLsignatureAvaluesGVKi K38 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555469,
  &K39,
  &K40
};

static _KLsimple_object_vectorGVKd_3 K39 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 13,
  &KLharp_back_endGYbase_harpVharp,
  &KLobjectGVKd,
  &K41
};

static _KLsimple_object_vectorGVKd_1 K40 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KLharp_mnemonic_unstreamed_assembler_outputterGYharp_outputterVharp
};

static _KLsingletonGVKd K41 = {
  &KLsingletonGVKdW /* wrapper */,
  &Ksingleton_pointer_idQ_instanceQVKiI,
  &KJinteractive_mnemonic_assembler_
};

static _KLsymbolGVKd KJinteractive_mnemonic_assembler_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K43
};

static _KLbyte_stringGVKd_30 K43 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 121,
  "interactive-mnemonic-assembler"
};

static _KLsignatureAvaluesGVKi K45 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555469,
  &K46,
  &K47
};

static _KLsimple_object_vectorGVKd_3 K46 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 13,
  &KLharp_back_endGYbase_harpVharp,
  &KLobjectGVKd,
  &K48
};

static _KLsimple_object_vectorGVKd_1 K47 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 5,
  &KLharp_binary_unstreamed_assembler_outputterGYharp_outputterVharp
};

static _KLsingletonGVKd K48 = {
  &KLsingletonGVKdW /* wrapper */,
  &Ksingleton_pointer_idQ_instanceQVKiI,
  &KJinteractive_assembler_
};

static _KLsignatureAvaluesGVKi K50 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555469,
  &K51,
  &K29
};

static _KLsimple_object_vectorGVKd_3 K51 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 13,
  &KLharp_back_endGYbase_harpVharp,
  &KLobjectGVKd,
  &K52
};

static _KLsingletonGVKd K52 = {
  &KLsingletonGVKdW /* wrapper */,
  &Ksingleton_pointer_idQ_instanceQVKiI,
  &KJinteractive_print_harp_
};

static _KLbyte_stringGVKd_21 K53 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 85,
  "interactive-assembler"
};

static _KLbyte_stringGVKd_22 K54 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 89,
  "interactive-print-harp"
};

_KLsimple_methodGVKe Kmake_interactive_print_outputterYharp_outputterVharpMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_0,
  &K56,
  &Kmake_interactive_print_outputterYharp_outputterVharpMM0I
};

static _KLsignatureAvaluesGVKi K56 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555457,
  &KPempty_vectorVKi,
  &K29
};

_KLsimple_methodGVKe Kmake_binary_interactive_assembler_outputterYharp_outputterVharpMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_0,
  &K58,
  &Kmake_binary_interactive_assembler_outputterYharp_outputterVharpMM0I
};

static _KLsignatureAvaluesGVKi K58 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555457,
  &KPempty_vectorVKi,
  &K47
};

_KLsimple_methodGVKe Kmake_mnemonic_interactive_assembler_outputterYharp_outputterVharpMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_0,
  &K60,
  &Kmake_mnemonic_interactive_assembler_outputterYharp_outputterVharpMM0I
};

static _KLsignatureAvaluesGVKi K60 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555457,
  &KPempty_vectorVKi,
  &K40
};

_KLsimple_methodGVKe Kmake_interactive_outputterYharp_outputterVharpMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_0,
  &K65,
  &Kmake_interactive_outputterYharp_outputterVharpMM0I
};

static _KLsymbolGVKd KJoutputters_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K64
};

static _KLbyte_stringGVKd_10 K64 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 41,
  "outputters"
};

static _KLsignatureAvaluesGVKi K65 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555457,
  &KPempty_vectorVKi,
  &K33
};

/* Code */

D Kmake_harp_outputter_by_typeYharp_outputterVharpMM4I (D backend_, D filename_, D type_) {
  D T4_0;

  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:35
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:38
  T4_0 = Kmake_interactive_print_outputterYharp_outputterVharpMM0I();
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:35
  MV_SET_COUNT(1);
  return(T4_0);
}

D Kmake_harp_outputter_by_typeYharp_outputterVharpMM5I (D backend_, D filename_, D type_) {
  D T4_0;

  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:62
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:65
  T4_0 = Kmake_binary_interactive_assembler_outputterYharp_outputterVharpMM0I();
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:62
  MV_SET_COUNT(1);
  return(T4_0);
}

D Kmake_harp_outputter_by_typeYharp_outputterVharpMM6I (D backend_, D filename_, D type_) {
  D T4_0;

  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:68
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:71
  T4_0 = Kmake_mnemonic_interactive_assembler_outputterYharp_outputterVharpMM0I();
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:68
  MV_SET_COUNT(1);
  return(T4_0);
}

D Kmake_harp_outputter_by_typeYharp_outputterVharpMM7I (D backend_, D filename_, D type_) {
  D T4_0;
  D T5_0;

  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:89
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:92
  CONGRUENT_CALL_PROLOG(&Kmake_harp_outputter_by_typeYharp_outputterVharp, 3);
  T4_0 = CONGRUENT_CALL3(backend_, filename_, Dint_mux_typesDYharp_outputterVharp);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:89
  T5_0 = T4_0;
  {
    MV_CHECK_TYPE_PROLOGUE(T4_0);
    primitive_type_check(T5_0, &KLharp_multiple_outputterGYharp_outputterVharp);
    MV_CHECK_TYPE_EPILOGUE();
  }
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:89
  MV_SET_COUNT(1);
  return(T5_0);
}

D Kclose_harp_outputterYharp_outputterVharpMM4I (D backend_, D outputter_, D Urest_) {
  D T4;

  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:41
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:41
  T4 = &KPfalseVKi;
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:41
  MV_SET_COUNT(0);
  return(T4);
}

D KLharp_interactive_print_outputterGZ32ZconstructorYharp_outputterVharpMM0I (D class_, D init_args_, D Uunique_outputter_stream_) {
  D T4;
  D Uunique_outputter_streamF5;
  D T6;
  D Uunique_outputter_streamF7;
  D T8_0;
  D T9;
  _KLsimple_object_vectorGVKd_1 T10 = {&KLsimple_object_vectorGVKdW, (D) 5};
  D T11;

  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:27
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:27
  T9 = primitive_idQ(Uunique_outputter_stream_,&KPunboundVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:27
  if (T9 != &KPfalseVKi) {
    T10.vector_element_[0] = IKJstream_;
    T11 = KerrorVKdMM1I(&K24, &T10);
    // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:27
    T4 = T11;
    Uunique_outputter_streamF5 = T4;
  } else {
    Uunique_outputter_streamF5 = Uunique_outputter_stream_;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:27
  T6 = primitive_object_allocate_filled(3,&KLharp_interactive_print_outputterGYharp_outputterVharpW,2,&KPunboundVKi,0,0,&KPunboundVKi);
  SLOT_VALUE_SETTER((D) 1, T6, 0);
  primitive_type_check(Uunique_outputter_streamF5, &KLstreamGYcommon_extensionsVcommon_dylan);
  Uunique_outputter_streamF7 = Uunique_outputter_streamF5;
  SLOT_VALUE_SETTER(Uunique_outputter_streamF7, T6, 1);
  APPLY2(&KinitializeVKd, T6, init_args_);
  T8_0 = T6;
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:27
  MV_SET_COUNT(1);
  return(T8_0);
}

D Kmake_mnemonic_interactive_assembler_outputterYharp_outputterVharpMM0I () {
  D T1;
  D T2_0;
  _KLsimple_object_vectorGVKd_2 T3 = {&KLsimple_object_vectorGVKdW, (D) 9};

  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:57
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:59
  T1 = Tstandard_outputTYstandard_ioVio;
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:59
  T3.vector_element_[0] = IKJstream_;
  T3.vector_element_[1] = T1;
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:59
  CONGRUENT_CALL_PROLOG(&KmakeVKd, 2);
  T2_0 = CONGRUENT_CALL2(&KLharp_mnemonic_unstreamed_assembler_outputterGYharp_outputterVharp, &T3);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:57
  MV_SET_COUNT(1);
  return(T2_0);
}

D Kmake_binary_interactive_assembler_outputterYharp_outputterVharpMM0I () {
  D T1;
  D T2_0;
  _KLsimple_object_vectorGVKd_2 T3 = {&KLsimple_object_vectorGVKdW, (D) 9};

  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:52
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:54
  T1 = Tstandard_outputTYstandard_ioVio;
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:54
  T3.vector_element_[0] = IKJstream_;
  T3.vector_element_[1] = T1;
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:54
  CONGRUENT_CALL_PROLOG(&KmakeVKd, 2);
  T2_0 = CONGRUENT_CALL2(&KLharp_binary_unstreamed_assembler_outputterGYharp_outputterVharp, &T3);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:52
  MV_SET_COUNT(1);
  return(T2_0);
}

D Kmake_interactive_print_outputterYharp_outputterVharpMM0I () {
  D T1;
  D T2_0;
  _KLsimple_object_vectorGVKd_2 T3 = {&KLsimple_object_vectorGVKdW, (D) 9};

  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:30
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:32
  T1 = Tstandard_outputTYstandard_ioVio;
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:32
  T3.vector_element_[0] = IKJstream_;
  T3.vector_element_[1] = T1;
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:32
  CONGRUENT_CALL_PROLOG(&KmakeVKd, 2);
  T2_0 = CONGRUENT_CALL2(&KLharp_interactive_print_outputterGYharp_outputterVharp, &T3);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:30
  MV_SET_COUNT(1);
  return(T2_0);
}

D Kmake_interactive_outputterYharp_outputterVharpMM0I () {
  D T1;
  D T2;
  D T3_0;
  _KLsimple_object_vectorGVKd_2 T4 = {&KLsimple_object_vectorGVKdW, (D) 9};
  D T5;
  _KLsimple_object_vectorGVKd_2 T6 = {&KLsimple_object_vectorGVKdW, (D) 9};

  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:82
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:85
  T1 = Kmake_binary_interactive_assembler_outputterYharp_outputterVharpMM0I();
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:86
  T2 = Kmake_interactive_print_outputterYharp_outputterVharpMM0I();
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:85
  T4.vector_element_[0] = T1;
  T4.vector_element_[1] = T2;
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:85
  T5 = primitive_copy_vector(&T4);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:84
  T6.vector_element_[0] = IKJoutputters_;
  T6.vector_element_[1] = T5;
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:84
  CONGRUENT_CALL_PROLOG(&KmakeVKd, 2);
  T3_0 = CONGRUENT_CALL2(&KLharp_multiple_outputterGYharp_outputterVharp, &T6);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:82
  MV_SET_COUNT(1);
  return(T3_0);
}


/* SYSTEM INIT CODE */

void _Init_harp__X_interactive_outputter_for_system () {
  extern D KPresolve_symbolVKiI(D);
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJinteractive_print_harp_);
    if (T0 != &KJinteractive_print_harp_) {
      primitive_slot_value_setter(T0, &K52, 1);
      IKJinteractive_print_harp_ = T0;
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJinteractive_assembler_);
    if (T0 != &KJinteractive_assembler_) {
      primitive_slot_value_setter(T0, &K48, 1);
      IKJinteractive_assembler_ = T0;
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJstream_);
    if (T0 != &KJstream_) {
      IKJstream_ = T0;
      primitive_repeated_slot_value_setter(T0, &K28, 1, 0);
      primitive_repeated_slot_value_setter(T0, &K27, 1, 0);
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJinteractive_);
    if (T0 != &KJinteractive_) {
      primitive_slot_value_setter(T0, &K34, 1);
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJinteractive_mnemonic_assembler_);
    if (T0 != &KJinteractive_mnemonic_assembler_) {
      primitive_slot_value_setter(T0, &K41, 1);
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJoutputters_);
    if (T0 != &KJoutputters_) {
      IKJoutputters_ = T0;
    }
  }
  return;
}

/* USER INIT CODE */

void _Init_harp__X_interactive_outputter_for_user () {
{
  D T0;
  D T1;
  _KLsimple_object_vectorGVKd_2 T2 = {&KLsimple_object_vectorGVKdW, (D) 9};

  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:80
  T2.vector_element_[0] = IKJinteractive_print_harp_;
  T2.vector_element_[1] = IKJinteractive_assembler_;
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:80
  T0 = KlistVKdI(&T2);
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:80
  Dint_mux_typesDYharp_outputterVharp = T0;
  // /Users/bruce/Development/dylan/opendylan/sources/harp/core-harp/interactive-outputter.dylan:80
  T1 = &KPfalseVKi;
  goto I0;
}
I0:

  return;
}


/* eof */
