#include "opendylan/run-time.h"

/* Generated by Open Dylan 2014.1 for x86_64-linux */

/* Typedefs for referenced classes */

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

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

typedef struct {
  dylan_value wrapper;
} _KLobjectGVKd;

typedef struct {
  dylan_value wrapper;
} _KLunboundGVKe;

typedef struct {
  dylan_value wrapper;
} _KLbooleanGVKd;

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

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

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

#define  define__KLsimple_object_vectorGVKd(nrepeated) \
  typedef struct { \
    dylan_value wrapper; \
    dylan_value size_; \
    dylan_value 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 {
  dylan_value wrapper;
  dylan_value emitted_name_;
  dylan_value private_model_definition_;
  dylan_value private_model_creator_;
  dylan_value PinstanceQ_iep_;
  dylan_value CinstanceQ_function_;
} _KLBtypeGVdfmc_modeling;

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

typedef struct {
  dylan_value wrapper;
  dylan_value emitted_name_;
  dylan_value private_model_definition_;
  dylan_value private_model_creator_;
  dylan_value PinstanceQ_iep_;
  dylan_value CinstanceQ_function_;
  dylan_value Cunion_type1_;
  dylan_value Cunion_type2_;
} _KLBunionGVdfmc_modeling;

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

typedef struct {
  dylan_value wrapper;
  dylan_value emitted_name_;
  dylan_value private_model_definition_;
  dylan_value private_model_creator_;
  dylan_value PinstanceQ_iep_;
  dylan_value CinstanceQ_function_;
  dylan_value Climited_collection_class_;
  dylan_value Climited_collection_element_type_;
  dylan_value Climited_collection_concrete_class_;
  dylan_value Climited_collection_size_;
  dylan_value Climited_collection_dimensions_;
} _KLBlimited_collection_typeGVdfmc_modeling;

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

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

#define  define__KLbyte_stringGVKd(nrepeated) \
  typedef struct { \
    dylan_value wrapper; \
    dylan_value 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 {
  dylan_value wrapper;
  dylan_value signature_properties_;
  dylan_value signature_required_;
} _KLsignatureGVKe;

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

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

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

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

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

typedef struct {
  dylan_value wrapper;
  dylan_value xep_;
  dylan_value method_slot_descriptor_;
} _KLgetter_methodGVKi;

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

typedef struct {
  dylan_value wrapper;
  dylan_value emitted_name_;
} _KLemitted_objectGVdfmc_common;

typedef struct {
  dylan_value wrapper;
} _KLdood_mapped_objectGVdood;

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

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

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

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

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

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

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


/* Typedefs for defined classes */

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


/* Referenced object declarations */

dylan_value Kinstall_Bclass_mappingVdfmc_modelingMM0I (dylan_value, dylan_value);
dylan_value Kdo_define_evaluator_overrideVdfmc_definitionsMM0I (dylan_value, dylan_value);
dylan_value Kdo_define_core_unadorned_definitionVdfmc_definitionsMM0I (dylan_value, dylan_value);
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 KCknown_disjointQVdfmc_modeling;
extern _KLclassGVKd KLsealed_generic_functionGVKe;
extern _KLmm_wrapperGVKi_0 KLsealed_generic_functionGVKeW;
extern _KLsimple_object_vectorGVKd_16 KDsignature_LbooleanG_typesVKi;
extern _KLclassGVKd KLBunionGVdfmc_modeling;
extern _KLmm_wrapperGVKi_0 KLBunionGVdfmc_modelingW;
extern _KLsealed_generic_functionGVKe KCinstanceQVdfmc_modeling;
dylan_value KEEVKdI (dylan_value, dylan_value);
extern _KLunionGVKe KLmodel_valueGVdfmc_modeling;
extern _KLclassGVKd KLunionGVKe;
extern _KLmm_wrapperGVKi_0 KLunionGVKeW;
extern _KLclassGVKd KLBlimited_collection_typeGVdfmc_modeling;
extern _KLmm_wrapperGVKi_0 KLBlimited_collection_typeGVdfmc_modelingW;
extern _KLsymbolGVKd KJobject_;
extern _KLclassGVKd KLsymbolGVKd;
extern _KLmm_wrapperGVKi_0 KLsymbolGVKdW;
dylan_value Kimmutable_modelVdfmc_commonMM2I (dylan_value);
extern _KLempty_listGVKd KPempty_listVKi;
extern _KLclassGVKd KLempty_listGVKd;
extern _KLmm_wrapperGVKi_0 KLempty_listGVKdW;
dylan_value KerrorVKdMM1I (dylan_value, dylan_value);
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;
dylan_value Kmake_name_fragmentVdfmc_macro_expanderI (dylan_value);
extern _KLsymbolGVKd KJclass_;
dylan_value KlistVKdI (dylan_value);
dylan_value Kmake_parens_fragmentVdfmc_macro_expanderI (dylan_value);
extern _KLsymbolGVKd KJconstant_;
dylan_value Kmake_comma_fragmentVdfmc_macro_expanderI ();
dylan_value Kmake_literal_fragmentVdfmc_macro_expanderMM3I (dylan_value);
extern _KLsymbolGVKd KJrequired_init_keyword_;
extern _KLsymbolGVKd KJend_;
dylan_value Kmake_templateVdfmc_macro_expanderI (dylan_value);
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;
dylan_value Kclass_instanceQ_initialVKiI (dylan_value, dylan_value);
extern _KLmoduleGVKe Kdfmc_modeling_moduleYdylan_userVdfmc_modeling;
extern _KLclassGVKd KLmoduleGVKe;
extern _KLmm_wrapperGVKi_0 KLmoduleGVKeW;
extern dylan_value 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;
dylan_value Ksource_constructor_for_singletonVdfmc_modelingI ();
static _KLsymbolGVKd KJsingleton_;
extern _KLsimple_methodGVKe KCsingletonVdfmc_modelingMM0;
dylan_value KCsingletonVdfmc_modelingMM0I (dylan_value);
extern _KLsimple_methodGVKe KCsubtypeQVdfmc_modelingMM17;
dylan_value KCsubtypeQVdfmc_modelingMM17I (dylan_value, dylan_value);
extern _KLsimple_methodGVKe KCsubtypeQVdfmc_modelingMM16;
dylan_value KCsubtypeQVdfmc_modelingMM16I (dylan_value, dylan_value);
extern _KLsimple_methodGVKe KCsubtypeQVdfmc_modelingMM15;
dylan_value KCsubtypeQVdfmc_modelingMM15I (dylan_value, dylan_value);
extern _KLsimple_methodGVKe KCsubtypeQVdfmc_modelingMM14;
dylan_value KCsubtypeQVdfmc_modelingMM14I (dylan_value, dylan_value);
extern _KLsimple_methodGVKe KCinstanceQVdfmc_modelingMM2;
dylan_value KCinstanceQVdfmc_modelingMM2I (dylan_value, dylan_value);
extern _KLsimple_methodGVKe KCknown_disjointQVdfmc_modelingMM4;
dylan_value KCknown_disjointQVdfmc_modelingMM4I (dylan_value, dylan_value);
extern _KLsimple_methodGVKe KCknown_disjointQVdfmc_modelingMM5;
dylan_value KCknown_disjointQVdfmc_modelingMM5I (dylan_value, dylan_value);
extern _KLsimple_methodGVKe KCknown_disjointQVdfmc_modelingMM6;
dylan_value KCknown_disjointQVdfmc_modelingMM6I (dylan_value, dylan_value);
extern _KLsimple_methodGVKe KCknown_disjointQVdfmc_modelingMM7;
dylan_value KCknown_disjointQVdfmc_modelingMM7I (dylan_value, dylan_value);
extern _KLsimple_methodGVKe KCknown_disjointQVdfmc_modelingMM8;
dylan_value KCknown_disjointQVdfmc_modelingMM8I (dylan_value, dylan_value);
extern _KLsimple_methodGVKe KCbase_typeVdfmc_modelingMM1;
dylan_value KCbase_typeVdfmc_modelingMM1I (dylan_value);
static _KLsignatureAvaluesGVKi K39;
static _KLsimple_object_vectorGVKd_1 K40;
static _KLsimple_object_vectorGVKd_1 K41;
static _KLsignatureAvaluesGVKi K42;
static _KLsimple_object_vectorGVKd_2 K43;
static _KLsignatureAvaluesGVKi K44;
static _KLsimple_object_vectorGVKd_2 K45;
static _KLsignatureAvaluesGVKi K46;
static _KLsimple_object_vectorGVKd_2 K47;
static _KLsignatureAvaluesGVKi K48;
static _KLsimple_object_vectorGVKd_2 K49;
static _KLsignatureAvaluesGVKi K50;
static _KLsimple_object_vectorGVKd_2 K51;
static _KLsignatureAvaluesGVKi K52;
static _KLsimple_object_vectorGVKd_2 K53;
static _KLsignatureAvaluesGVKi K54;
static _KLsimple_object_vectorGVKd_2 K55;
dylan_value KLBsingletonGZ32ZconstructorVdfmc_modelingMM0I (dylan_value, dylan_value, dylan_value, dylan_value, dylan_value);
static _KLbyte_stringGVKd_23 K57;
static _KLbyte_stringGVKd_63 K58;
static _KLsymbolGVKd KJuninitialized_instanceQ_function_;
static _KLbyte_stringGVKd_32 K60;
static _KLsignatureGVKe K61;
static _KLsimple_object_vectorGVKd_1 K62;
static _KLbyte_stringGVKd_9 K63;
static _KLsymbolGVKd KJdefine_;
static _KLsymbolGVKd KJprimary_;
static _KLsymbolGVKd KJLlimited_typeG_;
static _KLsymbolGVKd KJslot_;
static _KLbyte_stringGVKd_4 K68;
static _KLbyte_stringGVKd_14 K69;
static _KLbyte_stringGVKd_7 K70;
static _KLbyte_stringGVKd_6 K71;
static _KLsignatureGVKe K72;
extern _KLsetter_methodGVKi KCsingleton_object_setterVdfmc_modelingMM0;
static _KLpairGVKd K74;
static _KLbyte_stringGVKd_24 K75;
extern _KLinstance_slot_descriptorGVKe KCsingleton_objectVdfmc_modelingHLBsingletonG;
static _KLbyte_stringGVKd_23 K77;
extern _KLgetter_methodGVKi KCsingleton_objectVdfmc_modelingMM0;
static _KLpairGVKd K79;
static _KLbyte_stringGVKd_17 K80;
static _KLbyte_stringGVKd_16 K81;
static _KLbyte_stringGVKd_11 K82;
static _KLimplementation_classGVKe K83;
static _KLsimple_object_vectorGVKd_6 K84;
extern _KLkeyword_methodGVKe KLBsingletonGZ32ZconstructorVdfmc_modelingMM0;
static _KLsimple_object_vectorGVKd_1 K86;
static _KLsimple_object_vectorGVKd_9 K87;
static _KLsimple_object_vectorGVKd_1 K88;
static _KLkeyword_signatureAvaluesGVKi K89;
static _KLsimple_object_vectorGVKd_6 K90;
static _KLsymbolGVKd KJemitted_name_;
static _KLsymbolGVKd KJdefinition_;
static _KLbyte_stringGVKd_10 K93;
static _KLbyte_stringGVKd_12 K94;
static _KLsimple_object_vectorGVKd_3 K95;
static _KLbyte_stringGVKd_12 K96;

/* Indirection variables */

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

/* Variables */

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

/* Objects */

_KLclassGVKd KLBsingletonGVdfmc_modeling = {
  &KLclassGVKdW /* wrapper */,
  &Kclass_instanceQ_initialVKiI,
  &K96,
  &K83,
  (dylan_value) 1,
  &Kdfmc_modeling_moduleYdylan_userVdfmc_modeling
};

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

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

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

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

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

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

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

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

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

_KLsimple_methodGVKe KCsubtypeQVdfmc_modelingMM17 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K54,
  &KCsubtypeQVdfmc_modelingMM17I
};

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

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

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

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

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

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

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

_KLsimple_methodGVKe KCknown_disjointQVdfmc_modelingMM7 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K44,
  &KCknown_disjointQVdfmc_modelingMM7I
};

_KLsimple_methodGVKe KCknown_disjointQVdfmc_modelingMM8 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K42,
  &KCknown_disjointQVdfmc_modelingMM8I
};

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

static _KLsignatureAvaluesGVKi K39 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (dylan_value) 33555461,
  &K40,
  &K41
};

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

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

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

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

static _KLsignatureAvaluesGVKi K44 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (dylan_value) 33555465,
  &K45,
  &KDsignature_LbooleanG_typesVKi
};

static _KLsimple_object_vectorGVKd_2 K45 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 9,
  &KLBsingletonGVdfmc_modeling,
  &KLBunionGVdfmc_modeling
};

static _KLsignatureAvaluesGVKi K46 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (dylan_value) 33555465,
  &K47,
  &KDsignature_LbooleanG_typesVKi
};

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

static _KLsignatureAvaluesGVKi K48 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (dylan_value) 33555465,
  &K49,
  &KDsignature_LbooleanG_typesVKi
};

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

static _KLsignatureAvaluesGVKi K50 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (dylan_value) 33555465,
  &K51,
  &KDsignature_LbooleanG_typesVKi
};

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

static _KLsignatureAvaluesGVKi K52 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (dylan_value) 33555465,
  &K53,
  &KDsignature_LbooleanG_typesVKi
};

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

static _KLsignatureAvaluesGVKi K54 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (dylan_value) 33555465,
  &K55,
  &KDsignature_LbooleanG_typesVKi
};

static _KLsimple_object_vectorGVKd_2 K55 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 9,
  &KLBlimited_collection_typeGVdfmc_modeling,
  &KLBsingletonGVdfmc_modeling
};

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

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

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

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

static _KLsignatureGVKe K61 = {
  &KLsignatureGVKeW /* wrapper */,
  (dylan_value) 44040197,
  &K62
};

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

static _KLimplementation_classGVKe K83 = {
  &KLimplementation_classGVKeW /* wrapper */,
  (dylan_value) 527958041,
  &KLBsingletonGVdfmc_modeling,
  &KLBsingletonGVdfmc_modelingW,
  &KPfalseVKi,
  &K84,
  (dylan_value) -3,
  &KLBsingletonGZ32ZconstructorVdfmc_modelingMM0,
  &K86,
  &K87,
  (dylan_value) 33,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_listVKi,
  &KPempty_listVKi,
  &KPempty_listVKi,
  &KPempty_vectorVKi,
  &K88,
  &K84,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi
};

static _KLsimple_object_vectorGVKd_6 K84 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 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,
  &K89,
  &key_mep_2,
  &KLBsingletonGZ32ZconstructorVdfmc_modelingMM0I,
  &K90
};

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

static _KLsimple_object_vectorGVKd_9 K87 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 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 K88 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 5,
  &KCsingleton_objectVdfmc_modelingHLBsingletonG
};

static _KLkeyword_signatureAvaluesGVKi K89 = {
  &KLkeyword_signatureAvaluesGVKiW /* wrapper */,
  (dylan_value) 35390469,
  &KDsignature_LclassG_typesVKi,
  &K95,
  &KDsignature_LobjectG_typesVKi,
  &K40
};

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

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

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

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

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

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

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

/* Code */

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

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  T0 = Kmake_name_fragmentVdfmc_macro_expanderI(IKJdefine_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  T1 = Kmake_name_fragmentVdfmc_macro_expanderI(IKJprimary_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  T2 = Kmake_name_fragmentVdfmc_macro_expanderI(&KJclass_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  T3 = Kmake_name_fragmentVdfmc_macro_expanderI(IKJLsingletonG_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  T4 = Kmake_name_fragmentVdfmc_macro_expanderI(IKJLlimited_typeG_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  T13.vector_element_[0] = T4;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  T5 = KlistVKdI(&T13);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  T6 = Kmake_parens_fragmentVdfmc_macro_expanderI(T5);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  T7 = Kmake_name_fragmentVdfmc_macro_expanderI(&KJconstant_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  T8 = Kmake_name_fragmentVdfmc_macro_expanderI(IKJslot_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  T9 = Kmake_name_fragmentVdfmc_macro_expanderI(IKJsingleton_object_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  T10 = Kmake_comma_fragmentVdfmc_macro_expanderI();
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  T14 = Kmake_literal_fragmentVdfmc_macro_expanderMM3I(&KJrequired_init_keyword_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  T15 = Kmake_literal_fragmentVdfmc_macro_expanderMM3I(&KJobject_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  T11 = Kmake_name_fragmentVdfmc_macro_expanderI(&KJend_);
  // /home/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;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  T12 = Kmake_templateVdfmc_macro_expanderI(&T16);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  return(T12);
}

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

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

dylan_value KCsubtypeQVdfmc_modelingMM17I (dylan_value t1_, dylan_value t2_) {
  dylan_value T3_0;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:58
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:60
  T3_0 = &KPfalseVKi;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:58
  MV_SET_COUNT(1);
  return(T3_0);
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

dylan_value KCknown_disjointQVdfmc_modelingMM7I (dylan_value t1_, dylan_value t2_) {
  dylan_value T3;
  dylan_value T4_0;
  dylan_value T5_0;
  dylan_value T6_0;
  dylan_value T7;
  dylan_value T8;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:86
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:88
  T7 = SLOT_VALUE_INITD(t2_, 5);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:88
  CONGRUENT_CALL_PROLOG(&KCknown_disjointQVdfmc_modeling, 2);
  T3 = CONGRUENT_CALL2(t1_, T7);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:88
  if (T3 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:88
    T8 = SLOT_VALUE_INITD(t2_, 6);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:88
    CONGRUENT_CALL_PROLOG(&KCknown_disjointQVdfmc_modeling, 2);
    T4_0 = CONGRUENT_CALL2(t1_, T8);
    T6_0 = T4_0;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:88
    T5_0 = &KPfalseVKi;
    T6_0 = T5_0;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:88
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:86
  MV_SET_COUNT(1);
  return(T6_0);
}

dylan_value KCknown_disjointQVdfmc_modelingMM8I (dylan_value t1_, dylan_value t2_) {
  dylan_value T3;
  dylan_value T4_0;
  dylan_value T5_0;
  dylan_value T6_0;
  dylan_value T7;
  dylan_value T8;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:91
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:93
  T7 = SLOT_VALUE_INITD(t1_, 5);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:93
  CONGRUENT_CALL_PROLOG(&KCknown_disjointQVdfmc_modeling, 2);
  T3 = CONGRUENT_CALL2(T7, t2_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:93
  if (T3 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:93
    T8 = SLOT_VALUE_INITD(t1_, 6);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:93
    CONGRUENT_CALL_PROLOG(&KCknown_disjointQVdfmc_modeling, 2);
    T4_0 = CONGRUENT_CALL2(T8, t2_);
    T6_0 = T4_0;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:93
    T5_0 = &KPfalseVKi;
    T6_0 = T5_0;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:93
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:91
  MV_SET_COUNT(1);
  return(T6_0);
}

dylan_value KCbase_typeVdfmc_modelingMM1I (dylan_value type_) {
  dylan_value T2_0;

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

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

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  T10 = primitive_idQ(Uunique_Csingleton_object_,&KPunboundVKi);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
  if (T10 != &KPfalseVKi) {
    T11.vector_element_[0] = &KJobject_;
    T12 = KerrorVKdMM1I(&K57, &T11);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/modeling/singletons.dylan:11
    T6 = T12;
    Uunique_Csingleton_objectF7 = T6;
  } else {
    Uunique_Csingleton_objectF7 = Uunique_Csingleton_object_;
  }
  // /home/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(&K58, &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;
  // /home/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 dylan_value KPresolve_symbolVKiI(dylan_value);
  {
    dylan_value T0;

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

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

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

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

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

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

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

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

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

    T0 = KPresolve_symbolVKiI(&KJemitted_name_);
    if (T0 != &KJemitted_name_) {
      primitive_repeated_slot_value_setter(T0, &K95, 1, 0);
      primitive_repeated_slot_value_setter(T0, &K90, 1, 0);
    }
  }
  {
    dylan_value T0;

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

/* USER INIT CODE */

void _Init_dfmc_modeling__X_singletons_for_user () {
{
  dylan_value T0;

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

{
  dylan_value T0;

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

{
  dylan_value T0;

  // /home/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:

{
  dylan_value T0;

  // /home/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:

{
  dylan_value T0;

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

  return;
}


/* eof */
