#include "opendylan/run-time.h"

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

/* Typedefs for referenced classes */

#define  define__KLsimple_integer_vectorGVKe(nrepeated) \
  typedef struct { \
    dylan_value wrapper; \
    dylan_value size_; \
    dylan_value integer_vector_element_[nrepeated+1]; \
  } _KLsimple_integer_vectorGVKe_##nrepeated;

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);

#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(4);
define__KLsimple_object_vectorGVKd(11);
define__KLsimple_object_vectorGVKd(1);
define__KLsimple_object_vectorGVKd(16);
define__KLsimple_object_vectorGVKd(6);
define__KLsimple_object_vectorGVKd(256);
define__KLsimple_object_vectorGVKd(10);
define__KLsimple_object_vectorGVKd(2);
define__KLsimple_object_vectorGVKd(0);

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

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 domain_library_;
  dylan_value domain_next_;
  dylan_value domain_method_;
} _KLmethod_domainGVKe;

typedef struct {
  dylan_value wrapper;
  dylan_value namespace_name_;
  dylan_value library_major_version_;
  dylan_value library_minor_version_;
  dylan_value library_build_count_;
  dylan_value used_libraries_;
  dylan_value all_used_libraries_;
  dylan_value runtime_module_;
  dylan_value library_defined_generics_;
  dylan_value library_number_static_dispatches_;
  dylan_value library_number_dynamic_dispatches_;
} _KLlibraryGVKe;

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

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 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_keys_;
  dylan_value signature_key_types_;
  dylan_value signature_values_;
} _KLkeyword_signatureAvaluesGVKi;

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

typedef struct {
  dylan_value wrapper;
} _KLmultidimensional_arrayGVKi;

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 symbol_name_;
} _KLsymbolGVKd;

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_;
  dylan_value incremental_gf_module_;
  dylan_value incremental_gf_domain_info_;
  dylan_value incremental_gf_method_libraries_;
  dylan_value incremental_gf_properties_;
} _KLincremental_generic_functionGVKe;

typedef struct {
  dylan_value wrapper;
  dylan_value condition_format_string_;
  dylan_value condition_format_arguments_;
} _KLmissing_keyword_errorGVKi;

typedef struct {
  dylan_value wrapper;
} _KLsequenceGVKd;

typedef struct {
  dylan_value wrapper;
} _KLintegerGVKd;

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

#define  define__KLbyte_stringGVKd(nrepeated) \
  typedef struct { \
    dylan_value wrapper; \
    dylan_value size_; \
    char string_element_[nrepeated+1]; \
  } _KLbyte_stringGVKd_##nrepeated;
define__KLbyte_stringGVKd(28);
define__KLbyte_stringGVKd(21);
define__KLbyte_stringGVKd(30);
define__KLbyte_stringGVKd(37);
define__KLbyte_stringGVKd(14);
define__KLbyte_stringGVKd(38);

#define  define__KLstandalone_domainGVKe(nrepeated) \
  typedef struct { \
    dylan_value wrapper; \
    dylan_value domain_library_; \
    dylan_value domain_next_; \
    dylan_value domain_number_required_; \
    dylan_value domain_type_[nrepeated+1]; \
  } _KLstandalone_domainGVKe_##nrepeated;
define__KLstandalone_domainGVKe(2);
define__KLstandalone_domainGVKe(1);

#define  define__KLsimple_element_type_vectorGVKe(nrepeated) \
  typedef struct { \
    dylan_value wrapper; \
    dylan_value element_type_; \
    dylan_value size_; \
    dylan_value element_type_vector_element_[nrepeated+1]; \
  } _KLsimple_element_type_vectorGVKe_##nrepeated;

typedef struct {
  dylan_value wrapper;
} _KLarrayGVKd;

typedef struct {
  dylan_value wrapper;
  dylan_value instanceQ_iep_;
  dylan_value limited_collection_class_;
  dylan_value limited_collection_element_type_;
  dylan_value limited_collection_concrete_class_;
  dylan_value limited_collection_size_;
  dylan_value limited_collection_dimensions_;
} _KLlimited_array_typeGVKe;

typedef struct {
  dylan_value wrapper;
  dylan_value instanceQ_iep_;
} _KLtypeGVKd;

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

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

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 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;

#define  define__KLsimple_closure_methodGVKi(nrepeated) \
  typedef struct { \
    dylan_value wrapper; \
    dylan_value xep_; \
    dylan_value function_signature_; \
    dylan_value mep_; \
    dylan_value environment_size_; \
    dylan_value environment_element_[nrepeated+1]; \
  } _KLsimple_closure_methodGVKi_##nrepeated;
define__KLsimple_closure_methodGVKi(0);

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

typedef struct {
  dylan_value wrapper;
} _KLobject_with_elementsGVKe;

typedef struct {
  dylan_value wrapper;
} _KLmutable_object_with_elementsGVKe;

typedef struct {
  dylan_value wrapper;
} _KLcollectionGVKd;

typedef struct {
  dylan_value wrapper;
} _KLmutable_collectionGVKd;

typedef struct {
  dylan_value wrapper;
} _KLmutable_sequenceGVKd;

typedef struct {
  dylan_value wrapper;
} _KLsimple_arrayGVKi;

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_;
  dylan_value size_slot_descriptor_;
} _KLrepeated_slot_descriptorGVKe;

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 xep_;
  dylan_value method_slot_descriptor_;
} _KLrepeated_setter_methodGVKi;

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

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

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

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


/* Typedefs for defined classes */

#define  define__KLsimple_object_arrayGVKi(nrepeated) \
  typedef struct { \
    dylan_value wrapper; \
    dylan_value dimensions_; \
    dylan_value size_; \
    dylan_value row_major_object_array_element_[nrepeated+1]; \
  } _KLsimple_object_arrayGVKi_##nrepeated;


/* Referenced object declarations */

dylan_value KmakeVKdMM14I (dylan_value, dylan_value, dylan_value, dylan_value);
extern _KLclassGVKd KLsimple_integer_vectorGVKe;
extern _KLclassGVKd KLclassGVKd;
extern _KLmm_wrapperGVKi_0 KLclassGVKdW;
extern _KLclassGVKd KLmm_wrapperGVKi;
extern _KLmm_wrapperGVKi_1 KLmm_wrapperGVKiW;
extern _KLmm_wrapperGVKi_0 KLsimple_integer_vectorGVKeW;
extern _KLsimple_object_vectorGVKd_0 KPempty_vectorVKi;
extern _KLclassGVKd KLsimple_object_vectorGVKd;
extern _KLmm_wrapperGVKi_0 KLsimple_object_vectorGVKdW;
extern _KLempty_listGVKd KPempty_listVKi;
extern _KLclassGVKd KLempty_listGVKd;
extern _KLmm_wrapperGVKi_0 KLempty_listGVKdW;
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 _KLclassGVKd KLmethod_domainGVKe;
extern _KLmm_wrapperGVKi_0 KLmethod_domainGVKeW;
extern _KLlibraryGVKe Kdylan_libraryYdylan_userVdylan;
extern _KLclassGVKd KLlibraryGVKe;
extern _KLmm_wrapperGVKi_0 KLlibraryGVKeW;
extern _KLmethod_domainGVKe KmakeVKdRD_dylanRD_19;
extern _KLclassGVKd KLpairGVKd;
extern _KLmm_wrapperGVKi_0 KLpairGVKdW;
extern _KLkeyword_methodGVKe KmakeVKdMM48;
extern _KLfunction_classGVKi KLkeyword_methodGVKe;
extern _KLclassGVKd KLfunction_classGVKi;
extern _KLmm_wrapperGVKi_0 KLfunction_classGVKiW;
extern _KLmm_wrapperGVKi_0 KLkeyword_methodGVKeW;
extern _KLclassGVKd KLkeyword_signatureAvaluesGVKi;
extern _KLmm_wrapperGVKi_0 KLkeyword_signatureAvaluesGVKiW;
extern _KLsimple_object_vectorGVKd_2 KDsignature_LarrayG_typesVKi;
extern _KLclassGVKd KLsingletonGVKd;
extern _KLmm_wrapperGVKi_0 KLsingletonGVKdW;
dylan_value Ksingleton_pointer_idQ_instanceQVKiI (dylan_value x_, dylan_value s_);
extern _KLclassGVKd KLmultidimensional_arrayGVKi;
extern _KLmm_wrapperGVKi_0 KLmultidimensional_arrayGVKiW;
extern _KLsealed_generic_functionGVKe Kunsupplied_objectVKi;
extern _KLclassGVKd KLsealed_generic_functionGVKe;
extern _KLmm_wrapperGVKi_0 KLsealed_generic_functionGVKeW;
extern _KLsymbolGVKd KJformat_string_;
extern _KLclassGVKd KLsymbolGVKd;
extern _KLmm_wrapperGVKi_0 KLsymbolGVKdW;
extern _KLincremental_generic_functionGVKe KmakeVKd;
extern _KLfunction_classGVKi KLincremental_generic_functionGVKe;
extern _KLmm_wrapperGVKi_0 KLincremental_generic_functionGVKeW;
extern _KLclassGVKd KLmissing_keyword_errorGVKi;
extern _KLmm_wrapperGVKi_0 KLmissing_keyword_errorGVKiW;
dylan_value KerrorVKdMM0I (dylan_value, dylan_value);
extern _KLincremental_generic_functionGVKe KasVKd;
extern _KLclassGVKd KLsequenceGVKd;
extern _KLmm_wrapperGVKi_0 KLsequenceGVKdW;
extern _KLincremental_generic_functionGVKe KsizeVKd;
extern _KLincremental_generic_functionGVKe KEVKd;
extern _KLincremental_generic_functionGVKe KreduceVKd;
extern _KLincremental_generic_functionGVKe KTVKd;
extern _KLclassGVKd KLintegerGVKd;
extern _KLmm_wrapperGVKi_0 KLintegerGVKdW;
extern _KLclassGVKd KLunionGVKe;
extern _KLmm_wrapperGVKi_0 KLunionGVKeW;
dylan_value Kunion_instanceQVKiI (dylan_value x_, dylan_value u_);
extern _KLclassGVKd KLbyte_stringGVKd;
extern _KLmm_wrapperGVKi_0 KLbyte_stringGVKdW;
extern _KLclassGVKd KLstandalone_domainGVKe;
extern _KLmm_wrapperGVKi_0 KLstandalone_domainGVKeW;
extern _KLstandalone_domainGVKe_1 KarefVKdRD_dylanRD_6;
extern _KLstandalone_domainGVKe_2 Karef_setterVKdRD_dylanRD_6;
extern _KLstandalone_domainGVKe_2 KdimensionVKdRD_dylanRD_6;
extern _KLsealed_generic_functionGVKe Kconcrete_limited_vector_classVKi;
extern _KLclassGVKd KLsimple_element_type_vectorGVKe;
extern _KLmm_wrapperGVKi_0 KLsimple_element_type_vectorGVKeW;
extern _KLsymbolGVKd KJclass_;
extern _KLclassGVKd KLarrayGVKd;
extern _KLmm_wrapperGVKi_0 KLarrayGVKdW;
extern _KLsymbolGVKd KJelement_type_;
extern _KLsymbolGVKd KJsize_;
extern _KLsymbolGVKd KJdimensions_;
extern _KLclassGVKd KLlimited_array_typeGVKe;
extern _KLmm_wrapperGVKi_0 KLlimited_array_typeGVKeW;
extern _KLclassGVKd KLtypeGVKd;
extern _KLmm_wrapperGVKi_0 KLtypeGVKdW;
extern _KLfunction_classGVKi KLsimple_methodGVKe;
extern _KLmm_wrapperGVKi_0 KLsimple_methodGVKeW;
extern _KLclassGVKd KLsignatureAvaluesGVKi;
extern _KLmm_wrapperGVKi_0 KLsignatureAvaluesGVKiW;
extern _KLsimple_object_vectorGVKd_2 KDsignature_LtypeG_typesVKi;
extern _KLstandalone_domainGVKe_1 KrankVKdRD_dylanRD_6;
extern _KLstandalone_domainGVKe_1 Krow_major_indexVKdRD_dylanRD_6;
extern _KLclassGVKd KLimplementation_classGVKe;
extern _KLmm_wrapperGVKi_0 KLimplementation_classGVKeW;
extern _KLclassGVKd KLinstance_slot_descriptorGVKe;
extern _KLmm_wrapperGVKi_0 KLinstance_slot_descriptorGVKeW;
extern _KLincremental_generic_functionGVKe KdimensionsVKd;
extern _KLfunction_classGVKi KLsimple_closure_methodGVKi;
extern _KLmm_wrapperGVKi_0 KLsimple_closure_methodGVKiW;
extern _KLclassGVKd KLsignatureGVKe;
extern _KLmm_wrapperGVKi_0 KLsignatureGVKeW;
extern _KLclassGVKd KLobject_with_elementsGVKe;
extern _KLmm_wrapperGVKi_0 KLobject_with_elementsGVKeW;
extern _KLclassGVKd KLmutable_object_with_elementsGVKe;
extern _KLmm_wrapperGVKi_0 KLmutable_object_with_elementsGVKeW;
extern _KLclassGVKd KLcollectionGVKd;
extern _KLmm_wrapperGVKi_0 KLcollectionGVKdW;
extern _KLclassGVKd KLmutable_collectionGVKd;
extern _KLmm_wrapperGVKi_0 KLmutable_collectionGVKdW;
extern _KLclassGVKd KLmutable_sequenceGVKd;
extern _KLmm_wrapperGVKi_0 KLmutable_sequenceGVKdW;
extern _KLclassGVKd KLsimple_arrayGVKi;
extern _KLmm_wrapperGVKi_0 KLsimple_arrayGVKiW;
dylan_value Kallocate_instanceVKeI (dylan_value class_, dylan_value init_args_);
extern _KLsimple_object_vectorGVKd_2 KDsignature_LclassG_typesVKi;
extern _KLsimple_object_vectorGVKd_256 KDsignature_LobjectG_typesVKi;
extern _KLclassGVKd KLrepeated_slot_descriptorGVKe;
extern _KLmm_wrapperGVKi_0 KLrepeated_slot_descriptorGVKeW;
extern _KLsymbolGVKd KJfill_;
extern _KLobject_signatureGVKe KDsignature_LobjectG_object_rest_value_3VKi;
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 KLrepeated_setter_methodGVKi;
extern _KLmm_wrapperGVKi_0 KLrepeated_setter_methodGVKiW;
extern _KLobject_signatureGVKe KDsignature_LobjectG_object_rest_value_2VKi;
extern _KLclassGVKd KLrepeated_getter_methodGVKi;
extern _KLmm_wrapperGVKi_0 KLrepeated_getter_methodGVKiW;
dylan_value Kclass_instanceQ_initialVKiI (dylan_value obj_, dylan_value cls_);
extern _KLmoduleGVKe Kinternal_moduleYdylan_userVdylan;
extern _KLclassGVKd KLmoduleGVKe;
extern _KLmm_wrapperGVKi_0 KLmoduleGVKeW;
dylan_value Kclass_constructor_atomicallyVKiI (dylan_value class_);
extern _KLstandalone_domainGVKe_1 KdimensionsVKdRD_dylanRD_6;
extern _KLclassGVKd KLgetter_methodGVKi;
extern _KLmm_wrapperGVKi_0 KLgetter_methodGVKiW;
extern _KLstandalone_domainGVKe_1 KinitializeVKdRD_dylanRD_10;
dylan_value Kcheck_start_compute_endVKeMM0I (dylan_value, dylan_value, dylan_value);
extern _KLsymbolGVKd KJstart_;
extern _KLsymbolGVKd KJend_;
extern _KLmethod_domainGVKe Kelement_no_bounds_check_setterVKeRD_dylanRD_12;
extern _KLmethod_domainGVKe Kelement_setterVKdRD_dylanRD_15;
dylan_value Kelement_range_errorVKeI (dylan_value, dylan_value);
extern _KLmethod_domainGVKe Kelement_no_bounds_checkVKeRD_dylanRD_10;
extern _KLsymbolGVKd KJdefault_;
extern _KLclassGVKd KLkeyword_signatureGVKe;
extern _KLmm_wrapperGVKi_0 KLkeyword_signatureGVKeW;
extern _KLmethod_domainGVKe KelementVKdRD_dylanRD_17;
extern _KLmethod_domainGVKe Kelement_typeVKeRD_dylanRD_11;
extern _KLstandalone_domainGVKe_1 KsizeVKdRD_dylanRD_19;
extern _KLstandalone_domainGVKe_1 KemptyQVKdRD_dylanRD_12;
extern _KLsimple_object_vectorGVKd_16 KDsignature_LbooleanG_typesVKi;
extern _KLsimple_methodGVKe Kconcrete_limited_array_classVKiMM1;
extern _KLsimple_methodGVKe Kconcrete_limited_array_classVKiMM2;
extern _KLsimple_methodGVKe Kconcrete_limited_array_classVKiMM3;
extern _KLsimple_methodGVKe Kconcrete_limited_array_classVKiMM4;
extern _KLsimple_methodGVKe Kconcrete_limited_array_classVKiMM5;
extern _KLsimple_methodGVKe Kconcrete_limited_array_classVKiMM6;
extern _KLobject_signatureGVKe KDsignature_LobjectG_object_rest_value_1VKi;

/* Defined object declarations */

extern _KLsimple_methodGVKe KemptyQVKdMM7;
dylan_value KemptyQVKdMM7I (dylan_value array_);
extern _KLstandalone_domainGVKe_1 KemptyQVKdRD_dylanRD_13;
extern _KLmethod_domainGVKe KemptyQVKdRD_dylanRD_14;
extern _KLgetter_methodGVKi KsizeVKdMM21;
extern _KLstandalone_domainGVKe_1 KsizeVKdRD_dylanRD_20;
extern _KLsimple_methodGVKe Kelement_typeVKeMM11;
dylan_value Kelement_typeVKeMM11I (dylan_value t_);
extern _KLmethod_domainGVKe Kelement_typeVKeRD_dylanRD_12;
extern _KLkeyword_methodGVKe KelementVKdMM15;
dylan_value KelementVKdMM15I (dylan_value array_, dylan_value index_, dylan_value Urest_, dylan_value default_);
extern _KLmethod_domainGVKe KelementVKdRD_dylanRD_18;
extern _KLkeyword_methodGVKe Kelement_no_bounds_checkVKeMM13;
dylan_value Kelement_no_bounds_checkVKeMM13I (dylan_value array_, dylan_value index_, dylan_value Urest_, dylan_value default_);
extern _KLmethod_domainGVKe Kelement_no_bounds_checkVKeRD_dylanRD_11;
extern _KLsimple_methodGVKe Kelement_setterVKdMM15;
dylan_value Kelement_setterVKdMM15I (dylan_value, dylan_value, dylan_value);
extern _KLmethod_domainGVKe Kelement_setterVKdRD_dylanRD_16;
extern _KLsimple_methodGVKe Kelement_no_bounds_check_setterVKeMM15;
dylan_value Kelement_no_bounds_check_setterVKeMM15I (dylan_value new_value_, dylan_value array_, dylan_value index_);
extern _KLmethod_domainGVKe Kelement_no_bounds_check_setterVKeRD_dylanRD_13;
extern _KLkeyword_methodGVKe KfillXVKdMM4;
dylan_value KfillXVKdMM4I (dylan_value, dylan_value, dylan_value, dylan_value, dylan_value);
extern _KLstandalone_domainGVKe_1 KinitializeVKdRD_dylanRD_11;
extern _KLgetter_methodGVKi KdimensionsVKdMM1;
extern _KLstandalone_domainGVKe_1 KdimensionsVKdRD_dylanRD_7;
extern _KLmethod_domainGVKe KmakeVKdRD_dylanRD_21;
extern _KLkeyword_methodGVKe KmakeVKdMM24;
dylan_value KmakeVKdMM24I (dylan_value, dylan_value, dylan_value, dylan_value);
extern _KLclassGVKd KLsimple_object_arrayGVKi;
extern _KLmm_wrapperGVKi_0 KLsimple_object_arrayGVKiW;
extern _KLstandalone_domainGVKe_1 Krow_major_indexVKdRD_dylanRD_7;
extern _KLstandalone_domainGVKe_1 KrankVKdRD_dylanRD_7;
extern _KLsimple_methodGVKe Klimited_arrayVKeMM0;
dylan_value Klimited_arrayVKeMM0I (dylan_value, dylan_value);
extern _KLstandalone_domainGVKe_2 KdimensionVKdRD_dylanRD_7;
extern _KLstandalone_domainGVKe_2 Karef_setterVKdRD_dylanRD_7;
extern _KLstandalone_domainGVKe_1 KarefVKdRD_dylanRD_7;
dylan_value Kcompute_array_dimensions_and_sizeVKiI (dylan_value);
extern _KLkeyword_methodGVKe KmakeVKdMM23;
dylan_value KmakeVKdMM23I (dylan_value class_, dylan_value all_keys_);
extern _KLmethod_domainGVKe KmakeVKdRD_dylanRD_20;
static _KLpairGVKd K43;
static _KLkeyword_signatureAvaluesGVKi K44;
static _KLsimple_object_vectorGVKd_1 K45;
static _KLsingletonGVKd K46;
static _KLbyte_stringGVKd_38 K47;
static _KLunionGVKe K48;
static _KLsingletonGVKd K49;
static _KLsymbolGVKd KJconcrete_class_;
static _KLbyte_stringGVKd_14 K51;
static _KLsignatureAvaluesGVKi K52;
static _KLsimple_object_vectorGVKd_2 K53;
static _KLunionGVKe K54;
static _KLimplementation_classGVKe K55;
extern _KLrepeated_slot_descriptorGVKe Krow_major_object_array_elementVKiHLsimple_object_arrayG;
static _KLsimple_object_vectorGVKd_2 K57;
extern _KLkeyword_methodGVKe KLsimple_object_arrayGZ32ZconstructorVKiMM0;
dylan_value KLsimple_object_arrayGZ32ZconstructorVKiMM0I (dylan_value, dylan_value, dylan_value, dylan_value);
static _KLsimple_object_vectorGVKd_1 K60;
static _KLsimple_object_vectorGVKd_11 K61;
static _KLsimple_object_vectorGVKd_2 K62;
extern _KLinstance_slot_descriptorGVKe KdimensionsVKdHLsimple_object_arrayG;
static _KLsimple_closure_methodGVKi_0 K66;
static dylan_value K66I ();
static _KLsignatureGVKe K67;
static dylan_value K69I ();
static _KLkeyword_signatureAvaluesGVKi K70;
static _KLsimple_object_vectorGVKd_4 K71;
static _KLsimple_object_vectorGVKd_2 K72;
static _KLsimple_object_vectorGVKd_1 K73;
extern _KLinstance_slot_descriptorGVKe KsizeVKdHLsimple_object_arrayG;
extern _KLsealed_generic_functionGVKe Krow_major_object_array_elementVKi;
extern _KLsealed_generic_functionGVKe Krow_major_object_array_element_setterVKi;
extern _KLrepeated_setter_methodGVKi Krow_major_object_array_element_setterVKiMM0;
static _KLpairGVKd K78;
static _KLbyte_stringGVKd_37 K79;
extern _KLrepeated_getter_methodGVKi Krow_major_object_array_elementVKiMM0;
static _KLpairGVKd K81;
static _KLbyte_stringGVKd_30 K82;
static _KLbyte_stringGVKd_21 K83;
static _KLkeyword_signatureAvaluesGVKi K84;
static _KLsimple_object_vectorGVKd_4 K85;
static _KLsimple_object_vectorGVKd_1 K86;
static _KLsimple_object_vectorGVKd_2 K87;
static _KLsingletonGVKd K88;
static _KLkeyword_signatureAvaluesGVKi K89;
static _KLsimple_object_vectorGVKd_4 K90;
static _KLsimple_object_vectorGVKd_2 K91;
static _KLsimple_object_vectorGVKd_2 K92;
static _KLsimple_object_vectorGVKd_2 K93;
static _KLsignatureGVKe K94;
static _KLsimple_object_vectorGVKd_3 K95;
static _KLkeyword_signatureGVKe K96;
static _KLsimple_object_vectorGVKd_2 K97;
static _KLsimple_object_vectorGVKd_2 K98;
static _KLsimple_object_vectorGVKd_1 K99;
static _KLsimple_object_vectorGVKd_2 K100;
static _KLsignatureAvaluesGVKi K101;
static _KLsignatureAvaluesGVKi K102;
extern _KLsimple_methodGVKe Kcompute_array_dimensions_and_sizeVKi;
static _KLsignatureAvaluesGVKi K104;
static _KLsimple_object_vectorGVKd_2 K105;
extern _KLsealed_generic_functionGVKe Kconcrete_limited_array_classVKi;
extern _KLsimple_methodGVKe Kconcrete_limited_array_classVKiMM0;
dylan_value Kconcrete_limited_array_classVKiMM0I (dylan_value);
static _KLpairGVKd K109;
static _KLpairGVKd K110;
static _KLpairGVKd K111;
static _KLpairGVKd K112;
static _KLpairGVKd K113;
static _KLpairGVKd K114;
static _KLpairGVKd K115;
static _KLbyte_stringGVKd_28 K116;
static _KLsignatureAvaluesGVKi K117;
static _KLsimple_object_vectorGVKd_1 K118;
static _KLsingletonGVKd K119;

/* Indirection variables */

static dylan_value IKJconcrete_class_ = &KJconcrete_class_;

/* Variables */

dylan_value concrete_limited_array_classVKi = &Kconcrete_limited_array_classVKi;
dylan_value LdimensionsGVKi = &KLsimple_integer_vectorGVKe;
dylan_value Dempty_dimensionsVKi = &KPunboundVKi;
dylan_value compute_array_dimensions_and_sizeVKi = &Kcompute_array_dimensions_and_sizeVKi;
dylan_value Lsimple_object_arrayGVKi = &KLsimple_object_arrayGVKi;

/* Objects */

_KLsimple_methodGVKe KemptyQVKdMM7 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K102,
  &KemptyQVKdMM7I
};

_KLstandalone_domainGVKe_1 KemptyQVKdRD_dylanRD_13 = {
  &KLstandalone_domainGVKeW /* wrapper */,
  &Kdylan_libraryYdylan_userVdylan,
  &KemptyQVKdRD_dylanRD_12,
  (dylan_value) 5,
  &KLsimple_object_arrayGVKi
};

_KLmethod_domainGVKe KemptyQVKdRD_dylanRD_14 = {
  &KLmethod_domainGVKeW /* wrapper */,
  &Kdylan_libraryYdylan_userVdylan,
  &KemptyQVKdRD_dylanRD_13,
  &KemptyQVKdMM7
};

_KLgetter_methodGVKi KsizeVKdMM21 = {
  &KLgetter_methodGVKiW /* wrapper */,
  &slotacc_single_q_instance_getter_xep,
  &KsizeVKdHLsimple_object_arrayG
};

_KLstandalone_domainGVKe_1 KsizeVKdRD_dylanRD_20 = {
  &KLstandalone_domainGVKeW /* wrapper */,
  &Kdylan_libraryYdylan_userVdylan,
  &KsizeVKdRD_dylanRD_19,
  (dylan_value) 5,
  &KLsimple_object_arrayGVKi
};

_KLsimple_methodGVKe Kelement_typeVKeMM11 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K101,
  &Kelement_typeVKeMM11I
};

_KLmethod_domainGVKe Kelement_typeVKeRD_dylanRD_12 = {
  &KLmethod_domainGVKeW /* wrapper */,
  &Kdylan_libraryYdylan_userVdylan,
  &Kelement_typeVKeRD_dylanRD_11,
  &Kelement_typeVKeMM11
};

_KLkeyword_methodGVKe KelementVKdMM15 = {
  &KLkeyword_methodGVKeW /* wrapper */,
  &rest_key_xep_4,
  &K96,
  &key_mep_4,
  &KelementVKdMM15I,
  &K100
};

_KLmethod_domainGVKe KelementVKdRD_dylanRD_18 = {
  &KLmethod_domainGVKeW /* wrapper */,
  &Kdylan_libraryYdylan_userVdylan,
  &KelementVKdRD_dylanRD_17,
  &KelementVKdMM15
};

_KLkeyword_methodGVKe Kelement_no_bounds_checkVKeMM13 = {
  &KLkeyword_methodGVKeW /* wrapper */,
  &rest_key_xep_4,
  &K96,
  &key_mep_4,
  &Kelement_no_bounds_checkVKeMM13I,
  &K97
};

_KLmethod_domainGVKe Kelement_no_bounds_checkVKeRD_dylanRD_11 = {
  &KLmethod_domainGVKeW /* wrapper */,
  &Kdylan_libraryYdylan_userVdylan,
  &Kelement_no_bounds_checkVKeRD_dylanRD_10,
  &Kelement_no_bounds_checkVKeMM13
};

_KLsimple_methodGVKe Kelement_setterVKdMM15 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_3,
  &K94,
  &Kelement_setterVKdMM15I
};

_KLmethod_domainGVKe Kelement_setterVKdRD_dylanRD_16 = {
  &KLmethod_domainGVKeW /* wrapper */,
  &Kdylan_libraryYdylan_userVdylan,
  &Kelement_setterVKdRD_dylanRD_15,
  &Kelement_setterVKdMM15
};

_KLsimple_methodGVKe Kelement_no_bounds_check_setterVKeMM15 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_3,
  &K94,
  &Kelement_no_bounds_check_setterVKeMM15I
};

_KLmethod_domainGVKe Kelement_no_bounds_check_setterVKeRD_dylanRD_13 = {
  &KLmethod_domainGVKeW /* wrapper */,
  &Kdylan_libraryYdylan_userVdylan,
  &Kelement_no_bounds_check_setterVKeRD_dylanRD_12,
  &Kelement_no_bounds_check_setterVKeMM15
};

_KLkeyword_methodGVKe KfillXVKdMM4 = {
  &KLkeyword_methodGVKeW /* wrapper */,
  &rest_key_xep_5,
  &K89,
  &key_mep_5,
  &KfillXVKdMM4I,
  &K90
};

_KLstandalone_domainGVKe_1 KinitializeVKdRD_dylanRD_11 = {
  &KLstandalone_domainGVKeW /* wrapper */,
  &Kdylan_libraryYdylan_userVdylan,
  &KinitializeVKdRD_dylanRD_10,
  (dylan_value) 5,
  &KLsimple_object_arrayGVKi
};

_KLgetter_methodGVKi KdimensionsVKdMM1 = {
  &KLgetter_methodGVKiW /* wrapper */,
  &slotacc_single_q_instance_getter_xep,
  &KdimensionsVKdHLsimple_object_arrayG
};

_KLstandalone_domainGVKe_1 KdimensionsVKdRD_dylanRD_7 = {
  &KLstandalone_domainGVKeW /* wrapper */,
  &Kdylan_libraryYdylan_userVdylan,
  &KdimensionsVKdRD_dylanRD_6,
  (dylan_value) 5,
  &KLsimple_object_arrayGVKi
};

_KLmethod_domainGVKe KmakeVKdRD_dylanRD_21 = {
  &KLmethod_domainGVKeW /* wrapper */,
  &Kdylan_libraryYdylan_userVdylan,
  &KmakeVKdRD_dylanRD_20,
  &KmakeVKdMM23
};

_KLkeyword_methodGVKe KmakeVKdMM24 = {
  &KLkeyword_methodGVKeW /* wrapper */,
  &rest_key_xep_4,
  &K84,
  &key_mep_4,
  &KmakeVKdMM24I,
  &K85
};

_KLclassGVKd KLsimple_object_arrayGVKi = {
  &KLclassGVKdW /* wrapper */,
  &Kclass_instanceQ_initialVKiI,
  &K83,
  &K55,
  (dylan_value) 1,
  &Kinternal_moduleYdylan_userVdylan
};

_KLmm_wrapperGVKi_0 KLsimple_object_arrayGVKiW = {
  &KLmm_wrapperGVKiW /* wrapper */,
  &K55,
  (dylan_value) 4609,
  5,
  33554434,
  (dylan_value) 1
};

_KLstandalone_domainGVKe_1 Krow_major_indexVKdRD_dylanRD_7 = {
  &KLstandalone_domainGVKeW /* wrapper */,
  &Kdylan_libraryYdylan_userVdylan,
  &Krow_major_indexVKdRD_dylanRD_6,
  (dylan_value) 5,
  &KLsimple_object_arrayGVKi
};

_KLstandalone_domainGVKe_1 KrankVKdRD_dylanRD_7 = {
  &KLstandalone_domainGVKeW /* wrapper */,
  &Kdylan_libraryYdylan_userVdylan,
  &KrankVKdRD_dylanRD_6,
  (dylan_value) 5,
  &KLsimple_object_arrayGVKi
};

_KLsimple_methodGVKe Klimited_arrayVKeMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K52,
  &Klimited_arrayVKeMM0I
};

_KLstandalone_domainGVKe_2 KdimensionVKdRD_dylanRD_7 = {
  &KLstandalone_domainGVKeW /* wrapper */,
  &Kdylan_libraryYdylan_userVdylan,
  &KdimensionVKdRD_dylanRD_6,
  (dylan_value) 9,
  &KLsimple_object_arrayGVKi,
  &KLintegerGVKd
};

_KLstandalone_domainGVKe_2 Karef_setterVKdRD_dylanRD_7 = {
  &KLstandalone_domainGVKeW /* wrapper */,
  &Kdylan_libraryYdylan_userVdylan,
  &Karef_setterVKdRD_dylanRD_6,
  (dylan_value) 9,
  &KLobjectGVKd,
  &KLsimple_object_arrayGVKi
};

_KLstandalone_domainGVKe_1 KarefVKdRD_dylanRD_7 = {
  &KLstandalone_domainGVKeW /* wrapper */,
  &Kdylan_libraryYdylan_userVdylan,
  &KarefVKdRD_dylanRD_6,
  (dylan_value) 5,
  &KLsimple_object_arrayGVKi
};

_KLkeyword_methodGVKe KmakeVKdMM23 = {
  &KLkeyword_methodGVKeW /* wrapper */,
  &rest_key_xep_2,
  &K44,
  &key_mep_2,
  &KmakeVKdMM23I,
  &KPempty_vectorVKi
};

_KLmethod_domainGVKe KmakeVKdRD_dylanRD_20 = {
  &KLmethod_domainGVKeW /* wrapper */,
  &Kdylan_libraryYdylan_userVdylan,
  &KmakeVKdRD_dylanRD_19,
  &KmakeVKdMM24
};

static _KLpairGVKd K43 = {
  &KLpairGVKdW /* wrapper */,
  &KmakeVKdMM48,
  &KPempty_listVKi
};

static _KLkeyword_signatureAvaluesGVKi K44 = {
  &KLkeyword_signatureAvaluesGVKiW /* wrapper */,
  (dylan_value) 34866181,
  &K45,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KDsignature_LarrayG_typesVKi
};

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

static _KLsingletonGVKd K46 = {
  &KLsingletonGVKdW /* wrapper */,
  &Ksingleton_pointer_idQ_instanceQVKiI,
  &KLmultidimensional_arrayGVKi
};

static _KLbyte_stringGVKd_38 K47 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 153,
  "No dimensions in call to make(<array>)"
};

static _KLunionGVKe K48 = {
  &KLunionGVKeW /* wrapper */,
  &Kunion_instanceQVKiI,
  &K49,
  &KLintegerGVKd
};

static _KLsingletonGVKd K49 = {
  &KLsingletonGVKdW /* wrapper */,
  &Ksingleton_pointer_idQ_instanceQVKiI,
  &KPfalseVKi
};

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

static _KLbyte_stringGVKd_14 K51 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 57,
  "concrete-class"
};

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

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

static _KLunionGVKe K54 = {
  &KLunionGVKeW /* wrapper */,
  &Kunion_instanceQVKiI,
  &K49,
  &KLsequenceGVKd
};

static _KLimplementation_classGVKe K55 = {
  &KLimplementation_classGVKeW /* wrapper */,
  (dylan_value) 527958025,
  &KLsimple_object_arrayGVKi,
  &KLsimple_object_arrayGVKiW,
  &Krow_major_object_array_elementVKiHLsimple_object_arrayG,
  &K57,
  (dylan_value) 6753,
  &KLsimple_object_arrayGZ32ZconstructorVKiMM0,
  &K60,
  &K61,
  (dylan_value) 41,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_listVKi,
  &KPempty_listVKi,
  &KPempty_listVKi,
  &KPempty_vectorVKi,
  &K62,
  &K62,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi
};

_KLrepeated_slot_descriptorGVKe Krow_major_object_array_elementVKiHLsimple_object_arrayG = {
  &KLrepeated_slot_descriptorGVKeW /* wrapper */,
  (dylan_value) 157,
  &KPfalseVKi,
  &KLsimple_object_arrayGVKi,
  &KJfill_,
  &Krow_major_object_array_elementVKi,
  &Krow_major_object_array_element_setterVKi,
  &KLobjectGVKd,
  &KsizeVKdHLsimple_object_arrayG
};

static _KLsimple_object_vectorGVKd_2 K57 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 9,
  &KdimensionsVKdHLsimple_object_arrayG,
  &KsizeVKdHLsimple_object_arrayG
};

_KLkeyword_methodGVKe KLsimple_object_arrayGZ32ZconstructorVKiMM0 = {
  &KLkeyword_methodGVKeW /* wrapper */,
  &rest_key_xep_4,
  &K70,
  &key_mep_2,
  &KLsimple_object_arrayGZ32ZconstructorVKiMM0I,
  &K71
};

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

static _KLsimple_object_vectorGVKd_11 K61 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 45,
  &KLobjectGVKd,
  &KLobject_with_elementsGVKe,
  &KLmutable_object_with_elementsGVKe,
  &KLcollectionGVKd,
  &KLsequenceGVKd,
  &KLmutable_collectionGVKd,
  &KLmutable_sequenceGVKd,
  &KLarrayGVKd,
  &KLmultidimensional_arrayGVKi,
  &KLsimple_arrayGVKi,
  &KLsimple_object_arrayGVKi
};

static _KLsimple_object_vectorGVKd_2 K62 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 9,
  &KdimensionsVKdHLsimple_object_arrayG,
  &Krow_major_object_array_elementVKiHLsimple_object_arrayG
};

_KLinstance_slot_descriptorGVKe KdimensionsVKdHLsimple_object_arrayG = {
  &KLinstance_slot_descriptorGVKeW /* wrapper */,
  (dylan_value) 149,
  &K66,
  &KLsimple_object_arrayGVKi,
  &KJdimensions_,
  &KdimensionsVKd,
  &KPfalseVKi,
  &KLsimple_integer_vectorGVKe
};

static _KLsimple_closure_methodGVKi_0 K66 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_0,
  &K67,
  &K66I,
  (dylan_value) 1
};

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

static _KLkeyword_signatureAvaluesGVKi K70 = {
  &KLkeyword_signatureAvaluesGVKiW /* wrapper */,
  (dylan_value) 35390469,
  &KDsignature_LclassG_typesVKi,
  &K72,
  &KDsignature_LobjectG_typesVKi,
  &K73
};

static _KLsimple_object_vectorGVKd_4 K71 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 17,
  &KJdimensions_,
  &KPunboundVKi,
  &KJsize_,
  (dylan_value) 1
};

static _KLsimple_object_vectorGVKd_2 K72 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 9,
  &KJdimensions_,
  &KJsize_
};

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

_KLinstance_slot_descriptorGVKe KsizeVKdHLsimple_object_arrayG = {
  &KLinstance_slot_descriptorGVKeW /* wrapper */,
  (dylan_value) 157,
  (dylan_value) 1,
  &KLsimple_object_arrayGVKi,
  &KJsize_,
  &KsizeVKd,
  &KPfalseVKi,
  &KLintegerGVKd
};

_KLsealed_generic_functionGVKe Krow_major_object_array_elementVKi = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &KDsignature_LobjectG_object_rest_value_2VKi,
  &KPfalseVKi,
  &K82,
  &K81,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsealed_generic_functionGVKe Krow_major_object_array_element_setterVKi = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_3,
  &KDsignature_LobjectG_object_rest_value_3VKi,
  &KPfalseVKi,
  &K79,
  &K78,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLrepeated_setter_methodGVKi Krow_major_object_array_element_setterVKiMM0 = {
  &KLrepeated_setter_methodGVKiW /* wrapper */,
  &slotacc_repeated_instance_setter_xep,
  &Krow_major_object_array_elementVKiHLsimple_object_arrayG
};

static _KLpairGVKd K78 = {
  &KLpairGVKdW /* wrapper */,
  &Krow_major_object_array_element_setterVKiMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_37 K79 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 149,
  "row-major-object-array-element-setter"
};

_KLrepeated_getter_methodGVKi Krow_major_object_array_elementVKiMM0 = {
  &KLrepeated_getter_methodGVKiW /* wrapper */,
  &slotacc_repeated_instance_getter_xep,
  &Krow_major_object_array_elementVKiHLsimple_object_arrayG
};

static _KLpairGVKd K81 = {
  &KLpairGVKdW /* wrapper */,
  &Krow_major_object_array_elementVKiMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_30 K82 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 121,
  "row-major-object-array-element"
};

static _KLbyte_stringGVKd_21 K83 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 85,
  "<simple-object-array>"
};

static _KLkeyword_signatureAvaluesGVKi K84 = {
  &KLkeyword_signatureAvaluesGVKiW /* wrapper */,
  (dylan_value) 38011909,
  &K86,
  &K87,
  &KDsignature_LobjectG_typesVKi,
  &K73
};

static _KLsimple_object_vectorGVKd_4 K85 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 17,
  &KJdimensions_,
  &Kunsupplied_objectVKi,
  &KJfill_,
  &KPfalseVKi
};

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

static _KLsimple_object_vectorGVKd_2 K87 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 9,
  &KJdimensions_,
  &KJfill_
};

static _KLsingletonGVKd K88 = {
  &KLsingletonGVKdW /* wrapper */,
  &Ksingleton_pointer_idQ_instanceQVKiI,
  &KLsimple_object_arrayGVKi
};

static _KLkeyword_signatureAvaluesGVKi K89 = {
  &KLkeyword_signatureAvaluesGVKiW /* wrapper */,
  (dylan_value) 33817609,
  &K91,
  &K92,
  &K93,
  &K73
};

static _KLsimple_object_vectorGVKd_4 K90 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 17,
  &KJstart_,
  (dylan_value) 1,
  &KJend_,
  &Kunsupplied_objectVKi
};

static _KLsimple_object_vectorGVKd_2 K91 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 9,
  &KLsimple_object_arrayGVKi,
  &KLobjectGVKd
};

static _KLsimple_object_vectorGVKd_2 K92 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 9,
  &KJstart_,
  &KJend_
};

static _KLsimple_object_vectorGVKd_2 K93 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 9,
  &KLintegerGVKd,
  &KLobjectGVKd
};

static _KLsignatureGVKe K94 = {
  &KLsignatureGVKeW /* wrapper */,
  (dylan_value) 41944077,
  &K95
};

static _KLsimple_object_vectorGVKd_3 K95 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 13,
  &KLobjectGVKd,
  &KLsimple_object_arrayGVKi,
  &KLintegerGVKd
};

static _KLkeyword_signatureGVKe K96 = {
  &KLkeyword_signatureGVKeW /* wrapper */,
  (dylan_value) 42206217,
  &K98,
  &K99,
  &KDsignature_LobjectG_typesVKi
};

static _KLsimple_object_vectorGVKd_2 K97 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 9,
  &KJdefault_,
  &KPfalseVKi
};

static _KLsimple_object_vectorGVKd_2 K98 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 9,
  &KLsimple_object_arrayGVKi,
  &KLintegerGVKd
};

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

static _KLsimple_object_vectorGVKd_2 K100 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 9,
  &KJdefault_,
  &Kunsupplied_objectVKi
};

static _KLsignatureAvaluesGVKi K101 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (dylan_value) 33555461,
  &K73,
  &KDsignature_LtypeG_typesVKi
};

static _KLsignatureAvaluesGVKi K102 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (dylan_value) 33555461,
  &K60,
  &KDsignature_LbooleanG_typesVKi
};

_KLsimple_methodGVKe Kcompute_array_dimensions_and_sizeVKi = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K104,
  &Kcompute_array_dimensions_and_sizeVKiI
};

static _KLsignatureAvaluesGVKi K104 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (dylan_value) 33556485,
  &KDsignature_LobjectG_typesVKi,
  &K105
};

static _KLsimple_object_vectorGVKd_2 K105 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 9,
  &KLsequenceGVKd,
  &KLintegerGVKd
};

_KLsealed_generic_functionGVKe Kconcrete_limited_array_classVKi = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &KPfalseVKi,
  &K116,
  &K109,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsimple_methodGVKe Kconcrete_limited_array_classVKiMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K117,
  &Kconcrete_limited_array_classVKiMM0I
};

static _KLpairGVKd K109 = {
  &KLpairGVKdW /* wrapper */,
  &Kconcrete_limited_array_classVKiMM0,
  &K110
};

static _KLpairGVKd K110 = {
  &KLpairGVKdW /* wrapper */,
  &Kconcrete_limited_array_classVKiMM1,
  &K111
};

static _KLpairGVKd K111 = {
  &KLpairGVKdW /* wrapper */,
  &Kconcrete_limited_array_classVKiMM2,
  &K112
};

static _KLpairGVKd K112 = {
  &KLpairGVKdW /* wrapper */,
  &Kconcrete_limited_array_classVKiMM3,
  &K113
};

static _KLpairGVKd K113 = {
  &KLpairGVKdW /* wrapper */,
  &Kconcrete_limited_array_classVKiMM4,
  &K114
};

static _KLpairGVKd K114 = {
  &KLpairGVKdW /* wrapper */,
  &Kconcrete_limited_array_classVKiMM5,
  &K115
};

static _KLpairGVKd K115 = {
  &KLpairGVKdW /* wrapper */,
  &Kconcrete_limited_array_classVKiMM6,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_28 K116 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 113,
  "concrete-limited-array-class"
};

static _KLsignatureAvaluesGVKi K117 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (dylan_value) 33555461,
  &K118,
  &KDsignature_LclassG_typesVKi
};

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

static _KLsingletonGVKd K119 = {
  &KLsingletonGVKdW /* wrapper */,
  &Ksingleton_pointer_idQ_instanceQVKiI,
  &KLobjectGVKd
};

/* Code */

dylan_value KemptyQVKdMM7I (dylan_value array_) {
  dylan_value T2;
  dylan_value T3_0;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:14
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:15
  CONGRUENT_CALL_PROLOG(&KsizeVKd, 1);
  T2 = CONGRUENT_CALL1(array_);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:15
  CONGRUENT_CALL_PROLOG(&KEVKd, 2);
  T3_0 = CONGRUENT_CALL2(T2, (dylan_value) 1);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:14
  MV_SET_COUNT(1);
  return(T3_0);
}

dylan_value Kelement_typeVKeMM11I (dylan_value t_) {
  dylan_value T2_0;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  T2_0 = &KLobjectGVKd;
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  MV_SET_COUNT(1);
  return(T2_0);
}

dylan_value KelementVKdMM15I (dylan_value array_, dylan_value index_, dylan_value Urest_, dylan_value default_) {
  dylan_value T5_0;
  dylan_value T6_0;
  dylan_value T7_0;
  dylan_value T8_0;
  dylan_value T9;
  DWORD T10;
  DWORD T11;
  dylan_value T12;
  dylan_value T13;
  dylan_value T14_0;
  dylan_value T15;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  T9 = SLOT_VALUE_INITD(array_, 1);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  T10 = primitive_cast_integer_as_raw(index_);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  T11 = primitive_cast_integer_as_raw(T9);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  T12 = primitive_machine_word_unsigned_less_thanQ(T10,T11);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  if (T12 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
    T13 = REPEATED_DYLAN_VALUE_SLOT_VALUE_TAGGED(array_, 2, T10);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
    T14_0 = T13;
    T8_0 = T14_0;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
    T15 = primitive_idQ(default_,&Kunsupplied_objectVKi);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
    if (T15 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
      T5_0 = Kelement_range_errorVKeI(array_, index_);
      T7_0 = T5_0;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
      T6_0 = default_;
      T7_0 = T6_0;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
    T8_0 = T7_0;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  MV_SET_COUNT(1);
  return(T8_0);
}

dylan_value Kelement_no_bounds_checkVKeMM13I (dylan_value array_, dylan_value index_, dylan_value Urest_, dylan_value default_) {
  dylan_value T5;
  dylan_value T6_0;
  DWORD T7;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  T7 = primitive_cast_integer_as_raw(index_);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  T5 = REPEATED_DYLAN_VALUE_SLOT_VALUE_TAGGED(array_, 2, T7);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  T6_0 = T5;
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  MV_SET_COUNT(1);
  return(T6_0);
}

dylan_value Kelement_setterVKdMM15I (dylan_value new_value_, dylan_value array_, dylan_value index_) {
  dylan_value T4;
  dylan_value T5_0;
  dylan_value T6_0;
  dylan_value T7_0;
  DWORD T8;
  dylan_value T9;
  dylan_value T10;
  DWORD T11;
  dylan_value T12;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  T8 = primitive_cast_integer_as_raw(index_);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  T9 = primitive_machine_word_less_thanQ(T8,1);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  if (T9 != &KPfalseVKi) {
    T4 = &KPfalseVKi;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
    T10 = SLOT_VALUE_INITD(array_, 1);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
    T11 = primitive_cast_integer_as_raw(T10);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
    T12 = primitive_machine_word_less_thanQ(T8,T11);
    T4 = T12;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  if (T4 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
    REPEATED_DYLAN_VALUE_SLOT_VALUE_TAGGED_SETTER(new_value_, array_, 2, T8);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
    T5_0 = new_value_;
    T7_0 = T5_0;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
    T6_0 = Kelement_range_errorVKeI(array_, index_);
    T7_0 = T6_0;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  MV_SET_COUNT(1);
  return(T7_0);
}

dylan_value Kelement_no_bounds_check_setterVKeMM15I (dylan_value new_value_, dylan_value array_, dylan_value index_) {
  dylan_value T4_0;
  DWORD T5;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  T5 = primitive_cast_integer_as_raw(index_);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  REPEATED_DYLAN_VALUE_SLOT_VALUE_TAGGED_SETTER(new_value_, array_, 2, T5);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  T4_0 = new_value_;
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  MV_SET_COUNT(1);
  return(T4_0);
}

dylan_value KfillXVKdMM4I (dylan_value target_, dylan_value value_, dylan_value Urest_, dylan_value start_, dylan_value last_) {
  dylan_value startF6;
  dylan_value T7;
  DWORD index_T, index_;
  dylan_value T9_0;
  DWORD T10;
  dylan_value T11;
  DWORD T12;
  dylan_value T13;
  DWORD T14;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  primitive_type_check(start_, &KLintegerGVKd);
  startF6 = start_;
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  T7 = Kcheck_start_compute_endVKeMM0I(target_, startF6, last_);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  T10 = primitive_cast_integer_as_raw(T7);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  T12 = primitive_cast_integer_as_raw(startF6);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  index_T = T12;
L0: ;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
    index_ = index_T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
    T13 = primitive_cast_raw_as_integer(index_);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
    T11 = primitive_machine_word_less_thanQ(index_,T10);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
    if (T11 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
      Kelement_setterVKdMM15I(value_, target_, T13);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
      T14 = primitive_machine_word_add_signal_overflow(index_,4);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
      index_T = T14;
      goto L0;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
    // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  T9_0 = target_;
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  MV_SET_COUNT(1);
  return(T9_0);
}

dylan_value KmakeVKdMM24I (dylan_value class_, dylan_value Urest_, dylan_value dimensions_, dylan_value fill_) {
  dylan_value T5_0;
  dylan_value T5_1;
  dylan_value dimensionsF6;
  dylan_value size_;
  dylan_value T8_0;
  dylan_value T9_0;
  _KLsimple_object_vectorGVKd_6 T10 = {&KLsimple_object_vectorGVKdW, (dylan_value) 25};
  dylan_value T11;
  dylan_value T12_0;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  T5_0 = Kcompute_array_dimensions_and_sizeVKiI(dimensions_);
  T5_1 = MV_GET_ELT(1);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  dimensionsF6 = T5_0;
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  size_ = T5_1;
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  T10.vector_element_[0] = &KJdimensions_;
  T10.vector_element_[1] = dimensionsF6;
  T10.vector_element_[2] = &KJsize_;
  T10.vector_element_[3] = size_;
  T10.vector_element_[4] = &KJfill_;
  T10.vector_element_[5] = fill_;
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  T11 = Kclass_constructor_atomicallyVKiI(class_);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  T12_0 = APPLY2(T11, class_, &T10);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  T9_0 = T12_0;
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  T8_0 = T9_0;
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  MV_SET_COUNT(1);
  return(T8_0);
}

dylan_value Klimited_arrayVKeMM0I (dylan_value of_, dylan_value dimensions_) {
  dylan_value concrete_class_;
  dylan_value T4;
  dylan_value T5_0;
  dylan_value T6_0;
  dylan_value T7_0;
  dylan_value T8;
  dylan_value T9;
  dylan_value T10;
  dylan_value T11_0;
  dylan_value T12;
  dylan_value T13_0;
  dylan_value T14;
  dylan_value T15;
  dylan_value T16;
  _KLsimple_object_vectorGVKd_10 T17 = {&KLsimple_object_vectorGVKdW, (dylan_value) 41};
  dylan_value T18_0;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:155
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:158
  CONGRUENT_CALL_PROLOG(&Kconcrete_limited_vector_classVKi, 1);
  concrete_class_ = CONGRUENT_CALL1(of_);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:161
  if (dimensions_ != &KPfalseVKi) {
    T4 = dimensions_;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:161
    T8 = primitive_idQ(concrete_class_,&KLsimple_element_type_vectorGVKe);
    T4 = T8;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:161
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:161
  if (T4 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:162
    if (dimensions_ != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:162
      T12 = dimensions_;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:162
      CONGRUENT_CALL_PROLOG(&KsizeVKd, 1);
      T9 = CONGRUENT_CALL1(T12);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:162
      CONGRUENT_CALL_PROLOG(&KEVKd, 2);
      T10 = CONGRUENT_CALL2(T9, (dylan_value) 1);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:162
      if (T10 != &KPfalseVKi) {
        T15 = (dylan_value) 1;
      } else {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:162
        CONGRUENT_CALL_PROLOG(&KreduceVKd, 3);
        T11_0 = CONGRUENT_CALL3(&KTVKd, (dylan_value) 5, T12);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:162
        T13_0 = T11_0;
        // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:162
        T14 = T13_0;
        T15 = T14;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:162
      T16 = T15;
    } else {
      T16 = &KPfalseVKi;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:162
    // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:163
    T17.vector_element_[0] = &KJclass_;
    T17.vector_element_[1] = &KLarrayGVKd;
    T17.vector_element_[2] = &KJelement_type_;
    T17.vector_element_[3] = of_;
    T17.vector_element_[4] = IKJconcrete_class_;
    T17.vector_element_[5] = concrete_class_;
    T17.vector_element_[6] = &KJsize_;
    T17.vector_element_[7] = T16;
    T17.vector_element_[8] = &KJdimensions_;
    T17.vector_element_[9] = dimensions_;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:163
    CONGRUENT_CALL_PROLOG(&KmakeVKd, 2);
    T5_0 = CONGRUENT_CALL2(&KLlimited_array_typeGVKe, &T17);
    T7_0 = T5_0;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:170
    T6_0 = concrete_class_;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:170
    T18_0 = T6_0;
    T7_0 = T18_0;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:161
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:155
  MV_SET_COUNT(1);
  return(T7_0);
}

dylan_value Kcompute_array_dimensions_and_sizeVKiI (dylan_value dimensions_) {
  dylan_value canonical_dimensions_;
  dylan_value T3;
  dylan_value T4_0;
  dylan_value T4_1;
  dylan_value T5;
  dylan_value T6;
  dylan_value T7;
  dylan_value T8_0;
  dylan_value T9;
  dylan_value T10_0;
  dylan_value T11;
  dylan_value T12;
  dylan_value T13;
  dylan_value T14_0;
  dylan_value T14_1;
  _KLsimple_object_vectorGVKd_2 T15 = {&KLsimple_object_vectorGVKdW, (dylan_value) 9};
  dylan_value T16_0;
  dylan_value T16_1;
  dylan_value T17_0;
  dylan_value T17_1;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:99
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:102
  T5 = primitive_idQ(dimensions_,&Kunsupplied_objectVKi);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:102
  if (T5 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:106
    T15.vector_element_[0] = &KJformat_string_;
    T15.vector_element_[1] = &K47;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:106
    CONGRUENT_CALL_PROLOG(&KmakeVKd, 2);
    T3 = CONGRUENT_CALL2(&KLmissing_keyword_errorGVKi, &T15);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:106
    T16_0 = KerrorVKdMM0I(T3, &KPempty_vectorVKi);
    T16_1 = MV_GET_ELT(1);
    T4_0 = T16_0;
    T4_1 = T16_1;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:103
    CONGRUENT_CALL_PROLOG(&KasVKd, 2);
    canonical_dimensions_ = CONGRUENT_CALL2(&KLsimple_integer_vectorGVKe, dimensions_);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:104
    if (canonical_dimensions_ != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:104
      T9 = canonical_dimensions_;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:104
      CONGRUENT_CALL_PROLOG(&KsizeVKd, 1);
      T6 = CONGRUENT_CALL1(T9);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:104
      CONGRUENT_CALL_PROLOG(&KEVKd, 2);
      T7 = CONGRUENT_CALL2(T6, (dylan_value) 1);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:104
      if (T7 != &KPfalseVKi) {
        T12 = (dylan_value) 1;
      } else {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:104
        CONGRUENT_CALL_PROLOG(&KreduceVKd, 3);
        T8_0 = CONGRUENT_CALL3(&KTVKd, (dylan_value) 5, T9);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:104
        T10_0 = T8_0;
        // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:104
        T11 = T10_0;
        T12 = T11;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:104
      T13 = T12;
    } else {
      T13 = &KPfalseVKi;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:104
    // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:104
    T14_0 = canonical_dimensions_;
    T14_1 = T13;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:104
    T17_0 = T14_0;
    T17_1 = T14_1;
    T4_0 = T17_0;
    T4_1 = T17_1;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:102
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:99
  MV_SET_ELT(1, T4_1);
  MV_SET_COUNT(2);
  return(T4_0);
}

dylan_value KmakeVKdMM23I (dylan_value class_, dylan_value all_keys_) {
  dylan_value T3_0;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:8
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:11
  T3_0 = MEP_APPLY2(&KmakeVKdMM24, &K43, &KLsimple_object_arrayGVKi, all_keys_);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:8
  MV_SET_COUNT(1);
  return(T3_0);
}

dylan_value KLsimple_object_arrayGZ32ZconstructorVKiMM0I (dylan_value class_, dylan_value init_args_, dylan_value Uunique_dimensions_, dylan_value Uunique_size_) {
  dylan_value T5;
  dylan_value T6;
  dylan_value Uunique_dimensionsF7;
  dylan_value T8;
  dylan_value object_;
  dylan_value Uunique_dimensionsF10;
  dylan_value Uunique_sizeF11;
  dylan_value T12_0;
  dylan_value T13;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  T13 = primitive_idQ(Uunique_dimensions_,&KPunboundVKi);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  if (T13 != &KPfalseVKi) {
    T5 = K69I();
    // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
    T6 = T5;
    Uunique_dimensionsF7 = T6;
  } else {
    Uunique_dimensionsF7 = Uunique_dimensions_;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  T8 = Kallocate_instanceVKeI(&KLsimple_object_arrayGVKi, init_args_);
  object_ = T8;
  Uunique_dimensionsF10 = Uunique_dimensionsF7;
  SLOT_VALUE_SETTER(Uunique_dimensionsF10, object_, 0);
  Uunique_sizeF11 = Uunique_size_;
  SLOT_VALUE_SETTER(Uunique_sizeF11, object_, 1);
  T12_0 = object_;
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  MV_SET_COUNT(1);
  return(T12_0);
}

static dylan_value K66I () {
  dylan_value init_value_;
  dylan_value T1_0;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  init_value_ = Dempty_dimensionsVKi;
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  T1_0 = init_value_;
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  MV_SET_COUNT(1);
  return(T1_0);
}

static dylan_value K69I () {
  dylan_value init_value_;
  dylan_value T1_0;

  init_value_ = Dempty_dimensionsVKi;
  T1_0 = init_value_;
  MV_SET_COUNT(1);
  return(T1_0);
}

dylan_value Kconcrete_limited_array_classVKiMM0I (dylan_value of_) {
  dylan_value T2_0;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  T2_0 = &KLsimple_object_arrayGVKi;
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:153
  MV_SET_COUNT(1);
  return(T2_0);
}


/* SYSTEM INIT CODE */

void _Init_dylan__X_multidimensional_array_for_system () {
  extern dylan_value KPresolve_symbolVKiI(dylan_value);
  {
    dylan_value T0;

    T0 = KPresolve_symbolVKiI(&KJconcrete_class_);
    if (T0 != &KJconcrete_class_) {
      IKJconcrete_class_ = T0;
    }
  }
  return;
}

/* USER INIT CODE */

void _Init_dylan__X_multidimensional_array_for_user () {
{
  dylan_value T0;
  dylan_value T1;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:19
  T1 = KmakeVKdMM14I(&KLsimple_integer_vectorGVKe, &KPempty_vectorVKi, (dylan_value) 1, (dylan_value) 1);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:19
  Dempty_dimensionsVKi = T1;
  // /home/bruce/Development/dylan/opendylan/sources/dylan/multidimensional-array.dylan:19
  T0 = &KPfalseVKi;
  goto I0;
}
I0:

  return;
}


/* eof */
