#include "run-time.h"

/* Typedefs for referenced classes */

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_;
} _KLsimple_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_values_;
} _KLsignatureAvaluesGVKi;

#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(9);
define__KLsimple_object_vectorGVKd(6);
define__KLsimple_object_vectorGVKd(256);
define__KLsimple_object_vectorGVKd(12);
define__KLsimple_object_vectorGVKd(1);
define__KLsimple_object_vectorGVKd(0);
define__KLsimple_object_vectorGVKd(2);
define__KLsimple_object_vectorGVKd(16);

typedef struct {
  D wrapper;
  D emitted_name_;
  D private_model_definition_;
  D private_model_creator_;
  D PinstanceQ_iep_;
  D CinstanceQ_function_;
} _KLBtypeGVdfmc_modeling;

typedef struct {
  D wrapper;
  D xep_;
  D function_signature_;
  D Pgf_cache_;
  D debug_name_;
  D generic_function_methods_;
  D discriminator_;
} _KLsealed_generic_functionGVKe;

typedef struct {
  D wrapper;
  D instanceQ_iep_;
  D union_type1_;
  D union_type2_;
} _KLunionGVKe;

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

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

#define  define__KLbyte_stringGVKd(nrepeated) \
  typedef struct { \
    D wrapper; \
    D size_; \
    char string_element_[nrepeated+1]; \
  } _KLbyte_stringGVKd_##nrepeated;
define__KLbyte_stringGVKd(12);
define__KLbyte_stringGVKd(10);
define__KLbyte_stringGVKd(11);
define__KLbyte_stringGVKd(16);
define__KLbyte_stringGVKd(17);
define__KLbyte_stringGVKd(24);
define__KLbyte_stringGVKd(6);
define__KLbyte_stringGVKd(7);
define__KLbyte_stringGVKd(14);
define__KLbyte_stringGVKd(4);
define__KLbyte_stringGVKd(9);
define__KLbyte_stringGVKd(32);
define__KLbyte_stringGVKd(63);
define__KLbyte_stringGVKd(23);

typedef struct {
  D wrapper;
  D signature_properties_;
  D signature_required_;
} _KLsignatureGVKe;

typedef struct {
  D wrapper;
  D signature_properties_;
  D signature_required_;
} _KLobject_signatureGVKe;

typedef struct {
  D wrapper;
  D properties_;
  D engine_node_callback_;
  D engine_node_entry_point_;
} _KLabsent_engine_nodeGVKg;

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

typedef struct {
  D wrapper;
  D xep_;
  D method_slot_descriptor_;
} _KLsetter_methodGVKi;

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 xep_;
  D method_slot_descriptor_;
} _KLgetter_methodGVKi;

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 emitted_name_;
} _KLemitted_objectGVdfmc_common;

typedef struct {
  D wrapper;
} _KLdood_mapped_objectGVdood;

typedef struct {
  D wrapper;
  D emitted_name_;
  D private_model_definition_;
  D private_model_creator_;
} _KLmodel_propertiesGVdfmc_common;

typedef struct {
  D wrapper;
  D emitted_name_;
  D private_model_definition_;
  D private_model_creator_;
} _KLBtopGVdfmc_modeling;

typedef struct {
  D wrapper;
  D emitted_name_;
  D private_model_definition_;
  D private_model_creator_;
} _KLBobjectGVdfmc_modeling;

typedef struct {
  D wrapper;
  D emitted_name_;
  D private_model_definition_;
  D private_model_creator_;
  D PinstanceQ_iep_;
  D CinstanceQ_function_;
} _KLBlimited_typeGVdfmc_modeling;

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

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 namespace_name_;
  D home_library_;
} _KLmoduleGVKe;


/* Typedefs for defined classes */

typedef struct {
  D wrapper;
  D emitted_name_;
  D private_model_definition_;
  D private_model_creator_;
  D PinstanceQ_iep_;
  D CinstanceQ_function_;
  D Csingleton_object_;
} _KLBsingletonGVdfmc_modeling;


/* Referenced object declarations */

D Kinstall_Bclass_mappingVdfmc_modelingMM0I (D, D);
D Kdo_define_evaluator_overrideVdfmc_definitionsMM0I (D, D);
D Kdo_define_core_unadorned_definitionVdfmc_definitionsMM0I (D, D);
extern _KLclassGVKd KLclassGVKd;
extern _KLmm_wrapperGVKi_0 KLclassGVKdW;
extern _KLclassGVKd KLmm_wrapperGVKi;
extern _KLmm_wrapperGVKi_1 KLmm_wrapperGVKiW;
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 KLsimple_methodGVKe;
extern _KLclassGVKd KLfunction_classGVKi;
extern _KLmm_wrapperGVKi_0 KLfunction_classGVKiW;
extern _KLmm_wrapperGVKi_0 KLsimple_methodGVKeW;
extern _KLclassGVKd KLsignatureAvaluesGVKi;
extern _KLmm_wrapperGVKi_0 KLsignatureAvaluesGVKiW;
extern _KLclassGVKd KLsimple_object_vectorGVKd;
extern _KLmm_wrapperGVKi_0 KLsimple_object_vectorGVKdW;
extern _KLclassGVKd KLBtypeGVdfmc_modeling;
extern _KLmm_wrapperGVKi_0 KLBtypeGVdfmc_modelingW;
extern _KLsealed_generic_functionGVKe KCinstanceQVdfmc_modeling;
extern _KLclassGVKd KLsealed_generic_functionGVKe;
extern _KLmm_wrapperGVKi_0 KLsealed_generic_functionGVKeW;
extern _KLsimple_object_vectorGVKd_16 KDsignature_LbooleanG_typesVKi;
D KEEVKdI (D, D);
extern _KLunionGVKe KLmodel_valueGVdfmc_modeling;
extern _KLclassGVKd KLunionGVKe;
extern _KLmm_wrapperGVKi_0 KLunionGVKeW;
extern _KLsymbolGVKd KJobject_;
extern _KLclassGVKd KLsymbolGVKd;
extern _KLmm_wrapperGVKi_0 KLsymbolGVKdW;
D Kimmutable_modelVdfmc_commonMM2I (D);
extern _KLempty_listGVKd KPempty_listVKi;
extern _KLclassGVKd KLempty_listGVKd;
extern _KLmm_wrapperGVKi_0 KLempty_listGVKdW;
D KerrorVKdMM1I (D, D);
extern _KLsimple_object_vectorGVKd_0 KPempty_vectorVKi;
extern _KLclassGVKd KLbyte_stringGVKd;
extern _KLmm_wrapperGVKi_0 KLbyte_stringGVKdW;
extern _KLclassGVKd KLsignatureGVKe;
extern _KLmm_wrapperGVKi_0 KLsignatureGVKeW;
D Kmake_name_fragmentVdfmc_macro_expanderI (D);
extern _KLsymbolGVKd KJclass_;
D KlistVKdI (D);
D Kmake_parens_fragmentVdfmc_macro_expanderI (D);
extern _KLsymbolGVKd KJconstant_;
D Kmake_comma_fragmentVdfmc_macro_expanderI ();
D Kmake_literal_fragmentVdfmc_macro_expanderMM3I (D);
extern _KLsymbolGVKd KJrequired_init_keyword_;
extern _KLsymbolGVKd KJend_;
D Kmake_templateVdfmc_macro_expanderI (D);
extern _KLobject_signatureGVKe KDsignature_LobjectG_object_rest_value_2VKi;
extern _KLclassGVKd KLobject_signatureGVKe;
extern _KLmm_wrapperGVKi_0 KLobject_signatureGVKeW;
extern _KLabsent_engine_nodeGVKg RSINGULAR_Labsent_engine_nodeG;
extern _KLclassGVKd KLabsent_engine_nodeGVKg;
extern _KLmm_wrapperGVKi_0 KLabsent_engine_nodeGVKgW;
extern _KLclassGVKd KLpairGVKd;
extern _KLmm_wrapperGVKi_0 KLpairGVKdW;
extern _KLclassGVKd KLsetter_methodGVKi;
extern _KLmm_wrapperGVKi_0 KLsetter_methodGVKiW;
extern _KLclassGVKd KLinstance_slot_descriptorGVKe;
extern _KLmm_wrapperGVKi_0 KLinstance_slot_descriptorGVKeW;
extern _KLobject_signatureGVKe KDsignature_LobjectG_object_rest_value_1VKi;
extern _KLclassGVKd KLgetter_methodGVKi;
extern _KLmm_wrapperGVKi_0 KLgetter_methodGVKiW;
extern _KLclassGVKd KLimplementation_classGVKe;
extern _KLmm_wrapperGVKi_0 KLimplementation_classGVKeW;
extern _KLclassGVKd KLemitted_objectGVdfmc_common;
extern _KLmm_wrapperGVKi_0 KLemitted_objectGVdfmc_commonW;
extern _KLclassGVKd KLdood_mapped_objectGVdood;
extern _KLmm_wrapperGVKi_0 KLdood_mapped_objectGVdoodW;
extern _KLclassGVKd KLmodel_propertiesGVdfmc_common;
extern _KLmm_wrapperGVKi_0 KLmodel_propertiesGVdfmc_commonW;
extern _KLclassGVKd KLBtopGVdfmc_modeling;
extern _KLmm_wrapperGVKi_0 KLBtopGVdfmc_modelingW;
extern _KLclassGVKd KLBobjectGVdfmc_modeling;
extern _KLmm_wrapperGVKi_0 KLBobjectGVdfmc_modelingW;
extern _KLclassGVKd KLBlimited_typeGVdfmc_modeling;
extern _KLmm_wrapperGVKi_0 KLBlimited_typeGVdfmc_modelingW;
extern _KLfunction_classGVKi KLkeyword_methodGVKe;
extern _KLmm_wrapperGVKi_0 KLkeyword_methodGVKeW;
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 Kemitted_nameVdfmc_commonHLemitted_objectG;
extern _KLinstance_slot_descriptorGVKe Kprivate_model_definitionVdfmc_commonHLmodel_propertiesG;
extern _KLinstance_slot_descriptorGVKe Kprivate_model_creatorVdfmc_commonHLmodel_propertiesG;
extern _KLinstance_slot_descriptorGVKe KPinstanceQ_iepVdfmc_modelingHLBtypeG;
extern _KLinstance_slot_descriptorGVKe KCinstanceQ_functionVdfmc_modelingHLBtypeG;
D Kclass_instanceQ_initialVKiI (D, D);
extern _KLmoduleGVKe Kdfmc_modeling_moduleYdylan_userVdfmc_modeling;
extern _KLclassGVKd KLmoduleGVKe;
extern _KLmm_wrapperGVKi_0 KLmoduleGVKeW;
extern D Tcurrent_dependentTVdfmc_common;

/* Defined object declarations */

extern _KLclassGVKd KLBsingletonGVdfmc_modeling;
extern _KLmm_wrapperGVKi_0 KLBsingletonGVdfmc_modelingW;
static _KLsymbolGVKd KJLsingletonG_;
static _KLsymbolGVKd KJsingleton_object_;
extern _KLsealed_generic_functionGVKe KCsingleton_objectVdfmc_modeling;
static _KLsymbolGVKd KJsingleton_object_setter_;
extern _KLsealed_generic_functionGVKe KCsingleton_object_setterVdfmc_modeling;
extern _KLsimple_methodGVKe Ksource_constructor_for_singletonVdfmc_modeling;
D Ksource_constructor_for_singletonVdfmc_modelingI ();
static _KLsymbolGVKd KJsingleton_;
extern _KLsimple_methodGVKe KCsingletonVdfmc_modelingMM0;
D KCsingletonVdfmc_modelingMM0I (D);
extern _KLsimple_methodGVKe KCsubtypeQVdfmc_modelingMM16;
D KCsubtypeQVdfmc_modelingMM16I (D, D);
extern _KLsimple_methodGVKe KCsubtypeQVdfmc_modelingMM15;
D KCsubtypeQVdfmc_modelingMM15I (D, D);
extern _KLsimple_methodGVKe KCsubtypeQVdfmc_modelingMM14;
D KCsubtypeQVdfmc_modelingMM14I (D, D);
extern _KLsimple_methodGVKe KCinstanceQVdfmc_modelingMM2;
D KCinstanceQVdfmc_modelingMM2I (D, D);
extern _KLsimple_methodGVKe KCknown_disjointQVdfmc_modelingMM4;
D KCknown_disjointQVdfmc_modelingMM4I (D, D);
extern _KLsimple_methodGVKe KCknown_disjointQVdfmc_modelingMM5;
D KCknown_disjointQVdfmc_modelingMM5I (D, D);
extern _KLsimple_methodGVKe KCknown_disjointQVdfmc_modelingMM6;
D KCknown_disjointQVdfmc_modelingMM6I (D, D);
extern _KLsimple_methodGVKe KCbase_typeVdfmc_modelingMM1;
D KCbase_typeVdfmc_modelingMM1I (D);
static _KLsignatureAvaluesGVKi K33;
static _KLsimple_object_vectorGVKd_1 K34;
static _KLsimple_object_vectorGVKd_1 K35;
static _KLsignatureAvaluesGVKi K36;
static _KLsimple_object_vectorGVKd_2 K37;
static _KLsignatureAvaluesGVKi K38;
static _KLsimple_object_vectorGVKd_2 K39;
static _KLsignatureAvaluesGVKi K40;
static _KLsimple_object_vectorGVKd_2 K41;
static _KLsignatureAvaluesGVKi K42;
static _KLsimple_object_vectorGVKd_2 K43;
D KLBsingletonGZ32ZconstructorVdfmc_modelingMM0I (D, D, D, D, D);
static _KLbyte_stringGVKd_23 K45;
static _KLbyte_stringGVKd_63 K46;
static _KLsymbolGVKd KJuninitialized_instanceQ_function_;
static _KLbyte_stringGVKd_32 K48;
static _KLsignatureGVKe K49;
static _KLsimple_object_vectorGVKd_1 K50;
static _KLbyte_stringGVKd_9 K51;
static _KLsymbolGVKd KJdefine_;
static _KLsymbolGVKd KJprimary_;
static _KLsymbolGVKd KJLlimited_typeG_;
static _KLsymbolGVKd KJslot_;
static _KLbyte_stringGVKd_4 K56;
static _KLbyte_stringGVKd_14 K57;
static _KLbyte_stringGVKd_7 K58;
static _KLbyte_stringGVKd_6 K59;
static _KLsignatureGVKe K60;
extern _KLsetter_methodGVKi KCsingleton_object_setterVdfmc_modelingMM0;
static _KLpairGVKd K62;
static _KLbyte_stringGVKd_24 K63;
extern _KLinstance_slot_descriptorGVKe KCsingleton_objectVdfmc_modelingHLBsingletonG;
static _KLbyte_stringGVKd_23 K65;
extern _KLgetter_methodGVKi KCsingleton_objectVdfmc_modelingMM0;
static _KLpairGVKd K67;
static _KLbyte_stringGVKd_17 K68;
static _KLbyte_stringGVKd_16 K69;
static _KLbyte_stringGVKd_11 K70;
static _KLimplementation_classGVKe K71;
static _KLsimple_object_vectorGVKd_6 K72;
extern _KLkeyword_methodGVKe KLBsingletonGZ32ZconstructorVdfmc_modelingMM0;
static _KLsimple_object_vectorGVKd_1 K74;
static _KLsimple_object_vectorGVKd_9 K75;
static _KLsimple_object_vectorGVKd_1 K76;
static _KLkeyword_signatureAvaluesGVKi K77;
static _KLsimple_object_vectorGVKd_6 K78;
static _KLsymbolGVKd KJemitted_name_;
static _KLsymbolGVKd KJdefinition_;
static _KLbyte_stringGVKd_10 K81;
static _KLbyte_stringGVKd_12 K82;
static _KLsimple_object_vectorGVKd_3 K83;
static _KLbyte_stringGVKd_12 K84;

/* Indirection variables */

static D IKJLsingletonG_ = &KJLsingletonG_;
static D IKJsingleton_object_ = &KJsingleton_object_;
static D IKJsingleton_object_setter_ = &KJsingleton_object_setter_;
static D IKJsingleton_ = &KJsingleton_;
static D IKJuninitialized_instanceQ_function_ = &KJuninitialized_instanceQ_function_;
static D IKJdefine_ = &KJdefine_;
static D IKJprimary_ = &KJprimary_;
static D IKJLlimited_typeG_ = &KJLlimited_typeG_;
static D IKJslot_ = &KJslot_;
static D IKJemitted_name_ = &KJemitted_name_;
static D IKJdefinition_ = &KJdefinition_;

/* Variables */

D CsingletonVdfmc_modeling = &KCsingletonVdfmc_modelingMM0;
D Csingleton_objectVdfmc_modeling = &KCsingleton_objectVdfmc_modeling;
D LBsingletonGVdfmc_modeling = &KLBsingletonGVdfmc_modeling;

/* Objects */

_KLclassGVKd KLBsingletonGVdfmc_modeling = {
  &KLclassGVKdW /* wrapper */,
  &Kclass_instanceQ_initialVKiI,
  &K84,
  &K71,
  (D) 1,
  &Kdfmc_modeling_moduleYdylan_userVdfmc_modeling
};

_KLmm_wrapperGVKi_0 KLBsingletonGVdfmc_modelingW = {
  &KLmm_wrapperGVKiW /* wrapper */,
  &K71,
  (D) 1,
  25,
  33554439,
  (D) 1
};

static _KLsymbolGVKd KJLsingletonG_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K70
};

static _KLsymbolGVKd KJsingleton_object_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K69
};

_KLsealed_generic_functionGVKe KCsingleton_objectVdfmc_modeling = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &KPfalseVKi,
  &K68,
  &K67,
  &RSINGULAR_Labsent_engine_nodeG
};

static _KLsymbolGVKd KJsingleton_object_setter_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K65
};

_KLsealed_generic_functionGVKe KCsingleton_object_setterVdfmc_modeling = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &KDsignature_LobjectG_object_rest_value_2VKi,
  &KPfalseVKi,
  &K63,
  &K62,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsimple_methodGVKe Ksource_constructor_for_singletonVdfmc_modeling = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_0,
  &K60,
  &Ksource_constructor_for_singletonVdfmc_modelingI
};

static _KLsymbolGVKd KJsingleton_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K51
};

_KLsimple_methodGVKe KCsingletonVdfmc_modelingMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K49,
  &KCsingletonVdfmc_modelingMM0I
};

_KLsimple_methodGVKe KCsubtypeQVdfmc_modelingMM16 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K36,
  &KCsubtypeQVdfmc_modelingMM16I
};

_KLsimple_methodGVKe KCsubtypeQVdfmc_modelingMM15 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K38,
  &KCsubtypeQVdfmc_modelingMM15I
};

_KLsimple_methodGVKe KCsubtypeQVdfmc_modelingMM14 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K40,
  &KCsubtypeQVdfmc_modelingMM14I
};

_KLsimple_methodGVKe KCinstanceQVdfmc_modelingMM2 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K42,
  &KCinstanceQVdfmc_modelingMM2I
};

_KLsimple_methodGVKe KCknown_disjointQVdfmc_modelingMM4 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K40,
  &KCknown_disjointQVdfmc_modelingMM4I
};

_KLsimple_methodGVKe KCknown_disjointQVdfmc_modelingMM5 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K38,
  &KCknown_disjointQVdfmc_modelingMM5I
};

_KLsimple_methodGVKe KCknown_disjointQVdfmc_modelingMM6 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K36,
  &KCknown_disjointQVdfmc_modelingMM6I
};

_KLsimple_methodGVKe KCbase_typeVdfmc_modelingMM1 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K33,
  &KCbase_typeVdfmc_modelingMM1I
};

static _KLsignatureAvaluesGVKi K33 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555461,
  &K34,
  &K35
};

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

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

static _KLsignatureAvaluesGVKi K36 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555465,
  &K37,
  &KDsignature_LbooleanG_typesVKi
};

static _KLsimple_object_vectorGVKd_2 K37 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KLBtypeGVdfmc_modeling,
  &KLBsingletonGVdfmc_modeling
};

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

static _KLsimple_object_vectorGVKd_2 K39 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KLBsingletonGVdfmc_modeling,
  &KLBtypeGVdfmc_modeling
};

static _KLsignatureAvaluesGVKi K40 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555465,
  &K41,
  &KDsignature_LbooleanG_typesVKi
};

static _KLsimple_object_vectorGVKd_2 K41 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KLBsingletonGVdfmc_modeling,
  &KLBsingletonGVdfmc_modeling
};

static _KLsignatureAvaluesGVKi K42 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555465,
  &K43,
  &KDsignature_LbooleanG_typesVKi
};

static _KLsimple_object_vectorGVKd_2 K43 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KLmodel_valueGVdfmc_modeling,
  &KLBsingletonGVdfmc_modeling
};

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

static _KLbyte_stringGVKd_63 K46 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 253,
  "Attempt to create a model outside of proper compilation-context"
};

static _KLsymbolGVKd KJuninitialized_instanceQ_function_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K48
};

static _KLbyte_stringGVKd_32 K48 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 129,
  "uninitialized-instance?-function"
};

static _KLsignatureGVKe K49 = {
  &KLsignatureGVKeW /* wrapper */,
  (D) 44040197,
  &K50
};

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

static _KLbyte_stringGVKd_9 K51 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 37,
  "singleton"
};

static _KLsymbolGVKd KJdefine_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K59
};

static _KLsymbolGVKd KJprimary_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K58
};

static _KLsymbolGVKd KJLlimited_typeG_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K57
};

static _KLsymbolGVKd KJslot_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K56
};

static _KLbyte_stringGVKd_4 K56 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 17,
  "slot"
};

static _KLbyte_stringGVKd_14 K57 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 57,
  "<limited-type>"
};

static _KLbyte_stringGVKd_7 K58 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 29,
  "primary"
};

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

static _KLsignatureGVKe K60 = {
  &KLsignatureGVKeW /* wrapper */,
  (D) 44040193,
  &KPempty_vectorVKi
};

_KLsetter_methodGVKi KCsingleton_object_setterVdfmc_modelingMM0 = {
  &KLsetter_methodGVKiW /* wrapper */,
  &slotacc_single_q_instance_setter_xep,
  &KCsingleton_objectVdfmc_modelingHLBsingletonG
};

static _KLpairGVKd K62 = {
  &KLpairGVKdW /* wrapper */,
  &KCsingleton_object_setterVdfmc_modelingMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_24 K63 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 97,
  "^singleton-object-setter"
};

_KLinstance_slot_descriptorGVKe KCsingleton_objectVdfmc_modelingHLBsingletonG = {
  &KLinstance_slot_descriptorGVKeW /* wrapper */,
  (D) 193,
  &KPfalseVKi,
  &KLBsingletonGVdfmc_modeling,
  &KJobject_,
  &KCsingleton_objectVdfmc_modeling,
  &KCsingleton_object_setterVdfmc_modeling,
  &KLobjectGVKd
};

static _KLbyte_stringGVKd_23 K65 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 93,
  "singleton-object-setter"
};

_KLgetter_methodGVKi KCsingleton_objectVdfmc_modelingMM0 = {
  &KLgetter_methodGVKiW /* wrapper */,
  &slotacc_single_q_instance_getter_xep,
  &KCsingleton_objectVdfmc_modelingHLBsingletonG
};

static _KLpairGVKd K67 = {
  &KLpairGVKdW /* wrapper */,
  &KCsingleton_objectVdfmc_modelingMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_17 K68 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 69,
  "^singleton-object"
};

static _KLbyte_stringGVKd_16 K69 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 65,
  "singleton-object"
};

static _KLbyte_stringGVKd_11 K70 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 45,
  "<singleton>"
};

static _KLimplementation_classGVKe K71 = {
  &KLimplementation_classGVKeW /* wrapper */,
  (D) 527958041,
  &KLBsingletonGVdfmc_modeling,
  &KLBsingletonGVdfmc_modelingW,
  &KPfalseVKi,
  &K72,
  (D) -3,
  &KLBsingletonGZ32ZconstructorVdfmc_modelingMM0,
  &K74,
  &K75,
  (D) 33,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_listVKi,
  &KPempty_listVKi,
  &KPempty_listVKi,
  &KPempty_vectorVKi,
  &K76,
  &K72,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi
};

static _KLsimple_object_vectorGVKd_6 K72 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 25,
  &Kemitted_nameVdfmc_commonHLemitted_objectG,
  &Kprivate_model_definitionVdfmc_commonHLmodel_propertiesG,
  &Kprivate_model_creatorVdfmc_commonHLmodel_propertiesG,
  &KPinstanceQ_iepVdfmc_modelingHLBtypeG,
  &KCinstanceQ_functionVdfmc_modelingHLBtypeG,
  &KCsingleton_objectVdfmc_modelingHLBsingletonG
};

_KLkeyword_methodGVKe KLBsingletonGZ32ZconstructorVdfmc_modelingMM0 = {
  &KLkeyword_methodGVKeW /* wrapper */,
  &rest_key_xep_5,
  &K77,
  &key_mep_2,
  &KLBsingletonGZ32ZconstructorVdfmc_modelingMM0I,
  &K78
};

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

static _KLsimple_object_vectorGVKd_9 K75 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 37,
  &KLobjectGVKd,
  &KLemitted_objectGVdfmc_common,
  &KLdood_mapped_objectGVdood,
  &KLmodel_propertiesGVdfmc_common,
  &KLBtopGVdfmc_modeling,
  &KLBobjectGVdfmc_modeling,
  &KLBtypeGVdfmc_modeling,
  &KLBlimited_typeGVdfmc_modeling,
  &KLBsingletonGVdfmc_modeling
};

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

static _KLkeyword_signatureAvaluesGVKi K77 = {
  &KLkeyword_signatureAvaluesGVKiW /* wrapper */,
  (D) 35390469,
  &KDsignature_LclassG_typesVKi,
  &K83,
  &KDsignature_LobjectG_typesVKi,
  &K34
};

static _KLsimple_object_vectorGVKd_6 K78 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 25,
  &KJemitted_name_,
  &KPfalseVKi,
  &KJdefinition_,
  &KPfalseVKi,
  &KJobject_,
  &KPunboundVKi
};

static _KLsymbolGVKd KJemitted_name_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K82
};

static _KLsymbolGVKd KJdefinition_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K81
};

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

static _KLbyte_stringGVKd_12 K82 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 49,
  "emitted-name"
};

static _KLsimple_object_vectorGVKd_3 K83 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 13,
  &KJemitted_name_,
  &KJdefinition_,
  &KJobject_
};

static _KLbyte_stringGVKd_12 K84 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 49,
  "<&singleton>"
};

/* Code */

D Ksource_constructor_for_singletonVdfmc_modelingI () {
  D T0;
  D T1;
  D T2;
  D T3;
  D T4;
  D T5;
  D T6;
  D T7;
  D T8;
  D T9;
  D T10;
  D T11;
  D T12;
  _KLsimple_object_vectorGVKd_1 T13 = {&KLsimple_object_vectorGVKdW, (D) 5};
  D T14;
  D T15;
  _KLsimple_object_vectorGVKd_12 T16 = {&KLsimple_object_vectorGVKdW, (D) 49};

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  T0 = Kmake_name_fragmentVdfmc_macro_expanderI(IKJdefine_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  T1 = Kmake_name_fragmentVdfmc_macro_expanderI(IKJprimary_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  T2 = Kmake_name_fragmentVdfmc_macro_expanderI(&KJclass_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  T3 = Kmake_name_fragmentVdfmc_macro_expanderI(IKJLsingletonG_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  T4 = Kmake_name_fragmentVdfmc_macro_expanderI(IKJLlimited_typeG_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  T13.vector_element_[0] = T4;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  T5 = KlistVKdI(&T13);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  T6 = Kmake_parens_fragmentVdfmc_macro_expanderI(T5);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  T7 = Kmake_name_fragmentVdfmc_macro_expanderI(&KJconstant_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  T8 = Kmake_name_fragmentVdfmc_macro_expanderI(IKJslot_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  T9 = Kmake_name_fragmentVdfmc_macro_expanderI(IKJsingleton_object_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  T10 = Kmake_comma_fragmentVdfmc_macro_expanderI();
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  T14 = Kmake_literal_fragmentVdfmc_macro_expanderMM3I(&KJrequired_init_keyword_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  T15 = Kmake_literal_fragmentVdfmc_macro_expanderMM3I(&KJobject_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  T11 = Kmake_name_fragmentVdfmc_macro_expanderI(&KJend_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  T16.vector_element_[0] = T0;
  T16.vector_element_[1] = T1;
  T16.vector_element_[2] = T2;
  T16.vector_element_[3] = T3;
  T16.vector_element_[4] = T6;
  T16.vector_element_[5] = T7;
  T16.vector_element_[6] = T8;
  T16.vector_element_[7] = T9;
  T16.vector_element_[8] = T10;
  T16.vector_element_[9] = T14;
  T16.vector_element_[10] = T15;
  T16.vector_element_[11] = T11;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  T12 = Kmake_templateVdfmc_macro_expanderI(&T16);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  return(T12);
}

D KCsingletonVdfmc_modelingMM0I (D object_) {
  D T2;
  D T3_0;
  _KLsimple_object_vectorGVKd_2 T4 = {&KLsimple_object_vectorGVKdW, (D) 9};
  D T5;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:16
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:17
  T4.vector_element_[0] = &KJobject_;
  T4.vector_element_[1] = object_;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:17
  T3_0 = KLBsingletonGZ32ZconstructorVdfmc_modelingMM0I(&KLBsingletonGVdfmc_modeling, &T4, &KPfalseVKi, &KPfalseVKi, object_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:17
  T2 = T3_0;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:17
  T5 = Kimmutable_modelVdfmc_commonMM2I(T2);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:16
  return(T5);
}

D KCsubtypeQVdfmc_modelingMM16I (D t1_, D t2_) {
  D T3_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:51
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:53
  T3_0 = &KPfalseVKi;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:51
  MV_SET_COUNT(1);
  return(T3_0);
}

D KCsubtypeQVdfmc_modelingMM15I (D t1_, D t2_) {
  D T3_0;
  D T4;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:46
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:48
  T4 = SLOT_VALUE_INITD(t1_, 5);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:48
  T3_0 = CALL2(&KCinstanceQVdfmc_modeling, T4, t2_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:46
  MV_SET_COUNT(1);
  return(T3_0);
}

D KCsubtypeQVdfmc_modelingMM14I (D t1_, D t2_) {
  D T3_0;
  D T4;
  D T5;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:41
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:43
  T4 = SLOT_VALUE_INITD(t1_, 5);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:43
  T5 = SLOT_VALUE_INITD(t2_, 5);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:43
  T3_0 = KEEVKdI(T4, T5);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:41
  MV_SET_COUNT(1);
  return(T3_0);
}

D KCinstanceQVdfmc_modelingMM2I (D test_object_, D type_) {
  D T3_0;
  D T4;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:31
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:36
  T4 = SLOT_VALUE_INITD(type_, 5);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:36
  T3_0 = KEEVKdI(test_object_, T4);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:31
  MV_SET_COUNT(1);
  return(T3_0);
}

D KCknown_disjointQVdfmc_modelingMM4I (D t1_, D t2_) {
  D T3;
  D T4;
  D T5;
  D T6;
  D T7_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:58
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:61
  T3 = SLOT_VALUE_INITD(t1_, 5);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:61
  T4 = SLOT_VALUE_INITD(t2_, 5);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:61
  T5 = KEEVKdI(T3, T4);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:61
  T6 = primitive_not(T5);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:61
  T7_0 = T6;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:58
  MV_SET_COUNT(1);
  return(T7_0);
}

D KCknown_disjointQVdfmc_modelingMM5I (D t1_, D t2_) {
  D T3;
  D T4;
  D T5;
  D T6_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:67
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:69
  T4 = SLOT_VALUE_INITD(t1_, 5);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:69
  T3 = CALL2(&KCinstanceQVdfmc_modeling, T4, t2_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:69
  T5 = primitive_not(T3);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:69
  T6_0 = T5;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:67
  MV_SET_COUNT(1);
  return(T6_0);
}

D KCknown_disjointQVdfmc_modelingMM6I (D t1_, D t2_) {
  D T3;
  D T4;
  D T5;
  D T6_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:72
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:74
  T4 = SLOT_VALUE_INITD(t2_, 5);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:74
  T3 = CALL2(&KCinstanceQVdfmc_modeling, T4, t1_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:74
  T5 = primitive_not(T3);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:74
  T6_0 = T5;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:72
  MV_SET_COUNT(1);
  return(T6_0);
}

D KCbase_typeVdfmc_modelingMM1I (D type_) {
  D T2_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:25
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:26
  T2_0 = type_;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:25
  MV_SET_COUNT(1);
  return(T2_0);
}

D KLBsingletonGZ32ZconstructorVdfmc_modelingMM0I (D class_, D init_args_, D Uunique_emitted_name_, D Uunique_private_model_definition_, D Uunique_Csingleton_object_) {
  D T6;
  D Uunique_Csingleton_objectF7;
  D T8;
  D T9_0;
  D T10;
  _KLsimple_object_vectorGVKd_1 T11 = {&KLsimple_object_vectorGVKdW, (D) 5};
  D T12;
  D Utmp_;
  D T14;
  D T15;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  T10 = primitive_idQ(Uunique_Csingleton_object_,&KPunboundVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  if (T10 != &KPfalseVKi) {
    T11.vector_element_[0] = &KJobject_;
    T12 = KerrorVKdMM1I(&K45, &T11);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
    T6 = T12;
    Uunique_Csingleton_objectF7 = T6;
  } else {
    Uunique_Csingleton_objectF7 = Uunique_Csingleton_object_;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  T8 = primitive_object_allocate_filled(7,&KLBsingletonGVdfmc_modelingW,6,&KPunboundVKi,0,0,&KPunboundVKi);
  SLOT_VALUE_SETTER(Uunique_emitted_name_, T8, 0);
  SLOT_VALUE_SETTER(Uunique_private_model_definition_, T8, 1);
  Utmp_ = primitive_read_thread_variable(Tcurrent_dependentTVdfmc_common);
  if (Utmp_ != &KPfalseVKi) {
    T15 = Utmp_;
  } else {
    T14 = KerrorVKdMM1I(&K46, &KPempty_vectorVKi);
    T15 = T14;
  }
  SLOT_VALUE_SETTER(T15, T8, 2);
  SLOT_VALUE_SETTER(&KPfalseVKi, T8, 3);
  SLOT_VALUE_SETTER(IKJuninitialized_instanceQ_function_, T8, 4);
  SLOT_VALUE_SETTER(Uunique_Csingleton_objectF7, T8, 5);
  T9_0 = T8;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  MV_SET_COUNT(1);
  return(T9_0);
}


/* SYSTEM INIT CODE */

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

    T0 = KPresolve_symbolVKiI(&KJLsingletonG_);
    if (T0 != &KJLsingletonG_) {
      IKJLsingletonG_ = T0;
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJsingleton_object_);
    if (T0 != &KJsingleton_object_) {
      IKJsingleton_object_ = T0;
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJsingleton_object_setter_);
    if (T0 != &KJsingleton_object_setter_) {
      IKJsingleton_object_setter_ = T0;
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJsingleton_);
    if (T0 != &KJsingleton_) {
      IKJsingleton_ = T0;
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJuninitialized_instanceQ_function_);
    if (T0 != &KJuninitialized_instanceQ_function_) {
      IKJuninitialized_instanceQ_function_ = T0;
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJdefine_);
    if (T0 != &KJdefine_) {
      IKJdefine_ = T0;
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJprimary_);
    if (T0 != &KJprimary_) {
      IKJprimary_ = T0;
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJLlimited_typeG_);
    if (T0 != &KJLlimited_typeG_) {
      IKJLlimited_typeG_ = T0;
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJslot_);
    if (T0 != &KJslot_) {
      IKJslot_ = T0;
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJemitted_name_);
    if (T0 != &KJemitted_name_) {
      primitive_repeated_slot_value_setter(T0, &K83, 1, 0);
      primitive_repeated_slot_value_setter(T0, &K78, 1, 0);
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJdefinition_);
    if (T0 != &KJdefinition_) {
      primitive_repeated_slot_value_setter(T0, &K83, 1, 1);
      primitive_repeated_slot_value_setter(T0, &K78, 1, 2);
    }
  }
  return;
}

/* USER INIT CODE */

void _Init_dfmc_modeling__X_singletons_for_user () {
{
  D T0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  T0 = Kinstall_Bclass_mappingVdfmc_modelingMM0I(&KLBsingletonGVdfmc_modeling, IKJLsingletonG_);
  goto I0;
}
I0:

{
  D T0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  T0 = Kdo_define_evaluator_overrideVdfmc_definitionsMM0I(IKJsingleton_object_, &KCsingleton_objectVdfmc_modeling);
  goto I4;
}
I4:

{
  D T0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  T0 = Kdo_define_evaluator_overrideVdfmc_definitionsMM0I(IKJsingleton_object_setter_, &KCsingleton_object_setterVdfmc_modeling);
  goto I7;
}
I7:

{
  D T0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  T0 = Kdo_define_core_unadorned_definitionVdfmc_definitionsMM0I(IKJLsingletonG_, &Ksource_constructor_for_singletonVdfmc_modeling);
  goto I10;
}
I10:

{
  D T0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:16
  T0 = Kdo_define_evaluator_overrideVdfmc_definitionsMM0I(IKJsingleton_, &KCsingletonVdfmc_modelingMM0);
  goto I13;
}
I13:

  return;
}


/* eof */
