#include "run-time.h"

/* Typedefs for referenced classes */

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

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

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

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

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

typedef struct {
  D wrapper;
} _KLbooleanGVKd;

typedef struct {
  D wrapper;
} _KLobjectGVKd;

typedef struct {
  D wrapper;
} _KLunboundGVKe;

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

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

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

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

typedef struct {
  D wrapper;
  D walker_walked_;
  D walker_classes_;
} _KLwalkerGVwalker;

typedef struct {
  D wrapper;
} _KLintegerGVKd;

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

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

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

typedef struct {
  D wrapper;
  D condition_format_string_;
  D condition_format_arguments_;
  D type_error_value_;
  D type_error_expected_type_;
} _KLtype_errorGVKd;

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

#define  define__KLbyte_stringGVKd(nrepeated) \
  typedef struct { \
    D wrapper; \
    D size_; \
    char string_element_[nrepeated+1]; \
  } _KLbyte_stringGVKd_##nrepeated;
define__KLbyte_stringGVKd(29);
define__KLbyte_stringGVKd(30);
define__KLbyte_stringGVKd(27);
define__KLbyte_stringGVKd(34);
define__KLbyte_stringGVKd(37);
define__KLbyte_stringGVKd(39);
define__KLbyte_stringGVKd(17);
define__KLbyte_stringGVKd(23);
define__KLbyte_stringGVKd(6);
define__KLbyte_stringGVKd(7);
define__KLbyte_stringGVKd(15);
define__KLbyte_stringGVKd(20);
define__KLbyte_stringGVKd(5);
define__KLbyte_stringGVKd(22);
define__KLbyte_stringGVKd(14);
define__KLbyte_stringGVKd(24);
define__KLbyte_stringGVKd(26);
define__KLbyte_stringGVKd(21);

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

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

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

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

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

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

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

typedef struct {
  D wrapper;
  D xep_;
} _KLfunctionGVKd;

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

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

typedef struct {
  D wrapper;
  D instanceQ_iep_;
  D limited_collection_class_;
  D limited_collection_element_type_;
  D limited_collection_concrete_class_;
  D limited_collection_size_;
  D limited_collection_dimensions_;
} _KLlimited_vector_typeGVKe;

typedef struct {
  D wrapper;
} _KLsimple_vectorGVKd;

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

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

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

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

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

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


/* Typedefs for defined classes */

typedef struct {
  D wrapper;
  D walker_default_slot_descriptor_;
  D walker_default_thunk_;
} _KLwalker_defaulted_descriptorGVwalker;

typedef struct {
  D wrapper;
  D walker_class_repeated_slotQ_;
  D walker_class_deep_slot_descriptors_;
  D walker_class_shallow_slot_descriptors_;
  D walker_class_defaulted_slot_descriptors_;
  D walker_class_kind_;
} _KLwalker_classGVwalker;


/* Referenced object declarations */

D KPadd_classVKeI (D);
D KPadd_a_methodVKnI (D, D, D, D, D, D);
extern _KLincremental_generic_functionGVKe KinitializeVKd;
extern _KLfunction_classGVKi KLincremental_generic_functionGVKe;
extern _KLclassGVKd KLfunction_classGVKi;
extern _KLclassGVKd KLclassGVKd;
extern _KLmm_wrapperGVKi_0 KLclassGVKdW;
extern _KLclassGVKd KLmm_wrapperGVKi;
extern _KLmm_wrapperGVKi_1 KLmm_wrapperGVKiW;
extern _KLmm_wrapperGVKi_0 KLfunction_classGVKiW;
extern _KLmm_wrapperGVKi_0 KLincremental_generic_functionGVKeW;
extern _KLlibraryGVKe Kwalker_libraryYdylan_userVwalker;
extern _KLclassGVKd KLlibraryGVKe;
extern _KLmm_wrapperGVKi_0 KLlibraryGVKeW;
extern _KLbooleanGVKd KPfalseVKi;
extern _KLclassGVKd KLbooleanGVKd;
extern _KLmm_wrapperGVKi_0 KLbooleanGVKdW;
extern _KLclassGVKd KLobjectGVKd;
extern _KLmm_wrapperGVKi_0 KLobjectGVKdW;
extern _KLunboundGVKe KPunboundVKi;
extern _KLclassGVKd KLunboundGVKe;
extern _KLmm_wrapperGVKi_0 KLunboundGVKeW;
extern _KLbooleanGVKd KPtrueVKi;
extern _KLfunction_classGVKi KLsimple_methodGVKe;
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 KLsimple_integer_vectorGVKe;
extern _KLmm_wrapperGVKi_0 KLsimple_integer_vectorGVKeW;
extern _KLclassGVKd KLwalkerGVwalker;
extern _KLmm_wrapperGVKi_0 KLwalkerGVwalkerW;
D Kslot_offset_iVKeI (D, D);
extern _KLclassGVKd KLintegerGVKd;
extern _KLmm_wrapperGVKi_0 KLintegerGVKdW;
extern _KLsimple_object_vectorGVKd_16 KDsignature_LintegerG_typesVKi;
extern _KLclassGVKd KLslot_descriptorGVKe;
extern _KLmm_wrapperGVKi_0 KLslot_descriptorGVKeW;
D KgethashVKiI (D, D, D, D);
D Kwalker_repeated_slotQVwalkerMM1I (D class_);
extern _KLempty_listGVKd KPempty_listVKi;
extern _KLclassGVKd KLempty_listGVKd;
extern _KLmm_wrapperGVKi_0 KLempty_listGVKdW;
extern _KLincremental_generic_functionGVKe KmakeVKd;
extern _KLsymbolGVKd KJvalue_;
extern _KLclassGVKd KLsymbolGVKd;
extern _KLmm_wrapperGVKi_0 KLsymbolGVKdW;
extern _KLsymbolGVKd KJtype_;
extern _KLclassGVKd KLtype_errorGVKd;
extern _KLmm_wrapperGVKi_0 KLtype_errorGVKdW;
extern _KLsealed_generic_functionGVKe KerrorVKd;
extern _KLclassGVKd KLsealed_generic_functionGVKe;
extern _KLmm_wrapperGVKi_0 KLsealed_generic_functionGVKeW;
extern _KLsimple_object_vectorGVKd_0 KPempty_vectorVKi;
D KputhashVKiI (D, D, D);
extern _KLclassGVKd KLbyte_stringGVKd;
extern _KLmm_wrapperGVKi_0 KLbyte_stringGVKdW;
D Kwalker_slot_descriptorsVwalkerMM0I (D);
D KchooseVKdMM0I (D test_, D sequence_);
D Kmap_asVKdMM0I (D, D, D, D);
extern _KLincremental_generic_functionGVKe KchooseVKd;
extern _KLclassGVKd KLlistGVKd;
extern _KLmm_wrapperGVKi_0 KLlistGVKdW;
extern _KLclassGVKd KLpairGVKd;
extern _KLmm_wrapperGVKi_0 KLpairGVKdW;
extern _KLobject_signatureGVKe KDsignature_LobjectG_object_rest_value_1VKi;
extern _KLclassGVKd KLobject_signatureGVKe;
extern _KLmm_wrapperGVKi_0 KLobject_signatureGVKeW;
extern _KLfunction_classGVKi KLsimple_closure_methodGVKi;
extern _KLmm_wrapperGVKi_0 KLsimple_closure_methodGVKiW;
extern _KLclassGVKd KLsignatureGVKe;
extern _KLmm_wrapperGVKi_0 KLsignatureGVKeW;
extern _KLabsent_engine_nodeGVKg RSINGULAR_Labsent_engine_nodeG;
extern _KLclassGVKd KLabsent_engine_nodeGVKg;
extern _KLmm_wrapperGVKi_0 KLabsent_engine_nodeGVKgW;
extern _KLmoduleGVKe Kwalker_moduleYdylan_userVwalker;
extern _KLclassGVKd KLmoduleGVKe;
extern _KLmm_wrapperGVKi_0 KLmoduleGVKeW;
extern _KLsimple_object_vectorGVKd_2 KDsignature_LsequenceG_typesVKi;
extern _KLsimple_object_vectorGVKd_16 KDsignature_LlistG_typesVKi;
extern _KLsealed_generic_functionGVKe Kslot_getterVKe;
D KreverseXVKdMM2I (D);
D KmemberQVKdMM3I (D, D, D, D);
extern _KLsimple_methodGVKe KEEVKd;
extern _KLsimple_object_vectorGVKd_16 KDsignature_LpairG_typesVKi;
D Kconcatenate_2VKeMM1I (D, D);
extern _KLincremental_generic_functionGVKe Kcollector_protocolYcollectorsVcollections;
D KEEVKdI (D, D);
extern _KLsymbolGVKd KJslot_descriptor_;
extern _KLclassGVKd KLfunctionGVKd;
extern _KLmm_wrapperGVKi_0 KLfunctionGVKdW;
extern _KLclassGVKd KLgetter_methodGVKi;
extern _KLmm_wrapperGVKi_0 KLgetter_methodGVKiW;
extern _KLclassGVKd KLinstance_slot_descriptorGVKe;
extern _KLmm_wrapperGVKi_0 KLinstance_slot_descriptorGVKeW;
extern _KLclassGVKd KLlimited_vector_typeGVKe;
extern _KLmm_wrapperGVKi_0 KLlimited_vector_typeGVKeW;
D Klimited_collection_instanceQVKeI (D, D);
extern _KLclassGVKd KLsimple_vectorGVKd;
extern _KLmm_wrapperGVKi_0 KLsimple_vectorGVKdW;
extern _KLclassGVKd KLsimple_element_type_vectorGVKe;
extern _KLmm_wrapperGVKi_0 KLsimple_element_type_vectorGVKeW;
D KerrorVKdMM1I (D, D);
extern _KLsymbolGVKd KJrepeated_;
extern _KLfunction_classGVKi KLkeyword_methodGVKe;
extern _KLmm_wrapperGVKi_0 KLkeyword_methodGVKeW;
extern _KLclassGVKd KLkeyword_signatureGVKe;
extern _KLmm_wrapperGVKi_0 KLkeyword_signatureGVKeW;
extern _KLclassGVKd KLimplementation_classGVKe;
extern _KLmm_wrapperGVKi_0 KLimplementation_classGVKeW;
extern _KLsymbolGVKd KJdefault_;
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 _KLobject_signatureGVKe KDsignature_LobjectG_object_rest_value_2VKi;
extern _KLclassGVKd KLsetter_methodGVKi;
extern _KLmm_wrapperGVKi_0 KLsetter_methodGVKiW;
D Kclass_instanceQ_initialVKiI (D, D);

/* Defined object declarations */

extern _KLclassGVKd KLwalker_defaulted_descriptorGVwalker;
extern _KLmm_wrapperGVKi_0 KLwalker_defaulted_descriptorGVwalkerW;
extern _KLclassGVKd KLwalker_classGVwalker;
extern _KLmm_wrapperGVKi_0 KLwalker_classGVwalkerW;
extern _KLkeyword_methodGVKe KinitializeVKdMwalkerM1;
D KinitializeVKdMwalkerM1I (D, D);
D Kwalker_shallow_slot_descriptorsVwalkerI (D, D);
D Kwalker_defaulted_slot_descriptorsVwalkerI (D, D);
D Kwalker_deep_slot_descriptorsVwalkerI (D, D);
extern _KLlimited_vector_typeGVKe KLslot_sequence_typeGVwalker;
D Kwalker_classVwalkerI (D, D);
extern _KLsimple_methodGVKe Kas_walker_slot_descriptorVwalker;
D Kas_walker_slot_descriptorVwalkerI (D class_, D slot_descriptor_);
extern _KLsimple_methodGVKe Kwalker_deep_slot_descriptorsVwalker;
static _KLsignatureAvaluesGVKi K17;
static _KLsimple_object_vectorGVKd_2 K18;
static _KLsimple_object_vectorGVKd_1 K19;
static _KLsignatureAvaluesGVKi K20;
static _KLsimple_object_vectorGVKd_2 K21;
D Kwalker_compute_shallow_slot_descriptorsVwalkerMM0I (D, D);
D Kwalker_compute_defaulted_slot_descriptorsVwalkerMM0I (D, D);
D Kwalker_compute_deep_slot_descriptorsVwalkerMM0I (D, D);
static _KLsymbolGVKd KJrepeated_slotQ_;
static _KLsymbolGVKd KJshallow_slot_descriptors_;
static _KLsymbolGVKd KJdefaulted_slot_descriptors_;
static _KLsymbolGVKd KJdeep_slot_descriptors_;
static _KLbyte_stringGVKd_21 K29;
static _KLbyte_stringGVKd_26 K30;
static _KLbyte_stringGVKd_24 K31;
static _KLbyte_stringGVKd_14 K32;
static _KLsimple_closure_methodGVKi_0 Kanonymous_of_walker_compute_deep_slot_descriptorsF56;
static D Kanonymous_of_walker_compute_deep_slot_descriptorsF56I (D);
static _KLsimple_closure_methodGVKi_0 Kanonymous_of_walker_compute_deep_slot_descriptorsF52;
static D Kanonymous_of_walker_compute_deep_slot_descriptorsF52I (D);
D Kwalker_defaulted_shallow_gettersVwalkerI (D, D);
D Kwalker_real_shallow_gettersVwalkerI (D, D);
extern _KLincremental_generic_functionGVKe Kwalker_shallow_gettersVwalker;
static _KLsimple_closure_methodGVKi_0 Kanonymous_of_walker_real_shallow_gettersF42;
static D Kanonymous_of_walker_real_shallow_gettersF42I (D);
extern _KLsimple_methodGVKe Kwalker_defaulted_getterQVwalker;
D Kwalker_defaulted_getterQVwalkerI (D spec_);
static _KLsignatureGVKe K45;
extern _KLsimple_methodGVKe Kwalker_shallow_gettersVwalkerMM0;
D Kwalker_shallow_gettersVwalkerMM0I (D, D);
static _KLpairGVKd K48;
static _KLsignatureAvaluesGVKi K49;
static _KLbyte_stringGVKd_22 K50;
static _KLsignatureAvaluesGVKi K51;
extern _KLsimple_methodGVKe Kwalker_default_getterVwalkerMM0;
D Kwalker_default_getterVwalkerMM0I (D spec_);
static _KLsignatureGVKe K55;
extern _KLlimited_vector_typeGVKe KLwalker_defaulted_slot_sequence_typeGVwalker;
extern _KLsealed_generic_functionGVKe Kwalker_default_thunkVwalker;
extern _KLsimple_methodGVKe Kmake_walker_defaulted_descriptorVwalker;
D Kmake_walker_defaulted_descriptorVwalkerI (D, D);
static _KLsymbolGVKd KJthunk_;
static _KLbyte_stringGVKd_5 K62;
static _KLsignatureGVKe K63;
static _KLsimple_object_vectorGVKd_2 K64;
extern _KLgetter_methodGVKi Kwalker_default_thunkVwalkerMM0;
extern _KLsimple_methodGVKe Kwalker_default_thunkVwalkerMM1;
D Kwalker_default_thunkVwalkerMM1I (D spec_);
static _KLpairGVKd K68;
static _KLpairGVKd K69;
static _KLbyte_stringGVKd_20 K70;
extern _KLinstance_slot_descriptorGVKe Kwalker_default_thunkVwalkerHLwalker_defaulted_descriptorG;
static _KLsimple_closure_methodGVKi_0 Kanonymous_of_walker_compute_shallow_slot_descriptorsF77;
static D Kanonymous_of_walker_compute_shallow_slot_descriptorsF77I (D);
static _KLsimple_closure_methodGVKi_0 Kanonymous_of_walker_compute_shallow_slot_descriptorsF76;
static D Kanonymous_of_walker_compute_shallow_slot_descriptorsF76I (D);
static _KLbyte_stringGVKd_15 K78;
static _KLsymbolGVKd KJsimple_;
static _KLsymbolGVKd KJcomplex_;
static _KLbyte_stringGVKd_7 K81;
static _KLbyte_stringGVKd_6 K82;
static _KLkeyword_signatureGVKe K83;
static _KLsimple_object_vectorGVKd_1 K84;
static _KLimplementation_classGVKe K85;
static _KLsimple_object_vectorGVKd_5 K86;
extern _KLkeyword_methodGVKe KLwalker_classGZ32ZconstructorVwalkerMM0;
D KLwalker_classGZ32ZconstructorVwalkerMM0I (D, D, D, D, D, D);
static _KLsimple_object_vectorGVKd_1 K89;
static _KLsimple_object_vectorGVKd_6 K90;
static _KLbyte_stringGVKd_23 K91;
static _KLkeyword_signatureAvaluesGVKi K92;
static _KLsimple_object_vectorGVKd_8 K93;
static _KLsimple_object_vectorGVKd_4 K94;
extern _KLinstance_slot_descriptorGVKe Kwalker_class_repeated_slotQVwalkerHLwalker_classG;
extern _KLinstance_slot_descriptorGVKe Kwalker_class_deep_slot_descriptorsVwalkerHLwalker_classG;
extern _KLinstance_slot_descriptorGVKe Kwalker_class_shallow_slot_descriptorsVwalkerHLwalker_classG;
extern _KLinstance_slot_descriptorGVKe Kwalker_class_defaulted_slot_descriptorsVwalkerHLwalker_classG;
extern _KLinstance_slot_descriptorGVKe Kwalker_class_kindVwalkerHLwalker_classG;
extern _KLsealed_generic_functionGVKe Kwalker_class_kindVwalker;
extern _KLsealed_generic_functionGVKe Kwalker_class_kind_setterVwalker;
extern _KLsetter_methodGVKi Kwalker_class_kind_setterVwalkerMM0;
static _KLpairGVKd K103;
static _KLbyte_stringGVKd_24 K104;
extern _KLgetter_methodGVKi Kwalker_class_kindVwalkerMM0;
static _KLpairGVKd K106;
static _KLbyte_stringGVKd_17 K107;
extern _KLsealed_generic_functionGVKe Kwalker_class_defaulted_slot_descriptorsVwalker;
extern _KLgetter_methodGVKi Kwalker_class_defaulted_slot_descriptorsVwalkerMM0;
static _KLpairGVKd K110;
static _KLbyte_stringGVKd_39 K111;
extern _KLsealed_generic_functionGVKe Kwalker_class_shallow_slot_descriptorsVwalker;
extern _KLgetter_methodGVKi Kwalker_class_shallow_slot_descriptorsVwalkerMM0;
static _KLpairGVKd K114;
static _KLbyte_stringGVKd_37 K115;
extern _KLsealed_generic_functionGVKe Kwalker_class_deep_slot_descriptorsVwalker;
extern _KLgetter_methodGVKi Kwalker_class_deep_slot_descriptorsVwalkerMM0;
static _KLpairGVKd K118;
static _KLbyte_stringGVKd_34 K119;
extern _KLsealed_generic_functionGVKe Kwalker_class_repeated_slotQVwalker;
extern _KLgetter_methodGVKi Kwalker_class_repeated_slotQVwalkerMM0;
static _KLpairGVKd K122;
static _KLbyte_stringGVKd_27 K123;
static _KLbyte_stringGVKd_14 K124;
static _KLimplementation_classGVKe K125;
static _KLsimple_object_vectorGVKd_2 K126;
extern _KLkeyword_methodGVKe KLwalker_defaulted_descriptorGZ32ZconstructorVwalkerMM0;
D KLwalker_defaulted_descriptorGZ32ZconstructorVwalkerMM0I (D, D, D, D);
static _KLsimple_object_vectorGVKd_6 K129;
static _KLkeyword_signatureAvaluesGVKi K130;
static _KLsimple_object_vectorGVKd_4 K131;
static _KLsimple_object_vectorGVKd_2 K132;
static _KLsimple_object_vectorGVKd_1 K133;
extern _KLinstance_slot_descriptorGVKe Kwalker_default_slot_descriptorVwalkerHLwalker_defaulted_descriptorG;
extern _KLsealed_generic_functionGVKe Kwalker_default_slot_descriptorVwalker;
extern _KLgetter_methodGVKi Kwalker_default_slot_descriptorVwalkerMM0;
static _KLpairGVKd K137;
static _KLbyte_stringGVKd_30 K138;
static _KLbyte_stringGVKd_29 K139;
extern _KLsimple_methodGVKe Kwalker_slot_value_setterVwalker;
D Kwalker_slot_value_setterVwalkerI (D new_value_, D object_, D slot_descriptor_);
static _KLsignatureGVKe K142;
static _KLsimple_object_vectorGVKd_3 K143;
extern _KLsimple_methodGVKe Kwalker_slot_valueVwalker;
D Kwalker_slot_valueVwalkerI (D object_, D slot_descriptor_);
static _KLsignatureGVKe K146;
static _KLsimple_object_vectorGVKd_2 K147;

/* Indirection variables */

static D IKJrepeated_slotQ_ = &KJrepeated_slotQ_;
static D IKJshallow_slot_descriptors_ = &KJshallow_slot_descriptors_;
static D IKJdefaulted_slot_descriptors_ = &KJdefaulted_slot_descriptors_;
static D IKJdeep_slot_descriptors_ = &KJdeep_slot_descriptors_;
static D IKJthunk_ = &KJthunk_;
static D IKJsimple_ = &KJsimple_;
static D IKJcomplex_ = &KJcomplex_;

/* Variables */

D walker_default_getterVwalker = &Kwalker_default_getterVwalkerMM0;
D walker_default_slot_descriptorVwalker = &Kwalker_default_slot_descriptorVwalker;
D walker_default_thunkVwalker = &Kwalker_default_thunkVwalker;
D Lwalker_slot_descriptorGVwalker = &KLintegerGVKd;
D Lslot_sequence_typeGVwalker = &KLslot_sequence_typeGVwalker;
D Lwalker_slot_sequence_typeGVwalker = &KLsimple_integer_vectorGVKe;
D walker_slot_valueVwalker = &Kwalker_slot_valueVwalker;
D walker_slot_value_setterVwalker = &Kwalker_slot_value_setterVwalker;
D as_walker_slot_descriptorVwalker = &Kas_walker_slot_descriptorVwalker;
D walker_shallow_gettersVwalker = &Kwalker_shallow_gettersVwalker;
D Lwalker_defaulted_descriptorGVwalker = &KLwalker_defaulted_descriptorGVwalker;
D make_walker_defaulted_descriptorVwalker = &Kmake_walker_defaulted_descriptorVwalker;
D walker_defaulted_getterQVwalker = &Kwalker_defaulted_getterQVwalker;
D Lwalker_defaulted_slot_sequence_typeGVwalker = &KLwalker_defaulted_slot_sequence_typeGVwalker;
D Lwalker_classGVwalker = &KLwalker_classGVwalker;
D walker_deep_slot_descriptorsVwalker = &Kwalker_deep_slot_descriptorsVwalker;

/* Objects */

_KLclassGVKd KLwalker_defaulted_descriptorGVwalker = {
  &KLclassGVKdW /* wrapper */,
  &Kclass_instanceQ_initialVKiI,
  &K139,
  &K125,
  (D) 1,
  &Kwalker_moduleYdylan_userVwalker
};

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

_KLclassGVKd KLwalker_classGVwalker = {
  &KLclassGVKdW /* wrapper */,
  &Kclass_instanceQ_initialVKiI,
  &K124,
  &K85,
  (D) 1,
  &Kwalker_moduleYdylan_userVwalker
};

_KLmm_wrapperGVKi_0 KLwalker_classGVwalkerW = {
  &KLmm_wrapperGVKiW /* wrapper */,
  &K85,
  (D) 1,
  21,
  33554439,
  (D) 1
};

_KLkeyword_methodGVKe KinitializeVKdMwalkerM1 = {
  &KLkeyword_methodGVKeW /* wrapper */,
  &rest_key_xep_2,
  &K83,
  &key_mep_2,
  &KinitializeVKdMwalkerM1I,
  &KPempty_vectorVKi
};

_KLlimited_vector_typeGVKe KLslot_sequence_typeGVwalker = {
  &KLlimited_vector_typeGVKeW /* wrapper */,
  &Klimited_collection_instanceQVKeI,
  &KLsimple_vectorGVKd,
  &KLslot_descriptorGVKe,
  &KLsimple_element_type_vectorGVKe,
  &KPfalseVKi,
  &KPfalseVKi
};

_KLsimple_methodGVKe Kas_walker_slot_descriptorVwalker = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K20,
  &Kas_walker_slot_descriptorVwalkerI
};

_KLsimple_methodGVKe Kwalker_deep_slot_descriptorsVwalker = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K17,
  &Kwalker_deep_slot_descriptorsVwalkerI
};

static _KLsignatureAvaluesGVKi K17 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555465,
  &K18,
  &K19
};

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

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

static _KLsignatureAvaluesGVKi K20 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555465,
  &K21,
  &KDsignature_LintegerG_typesVKi
};

static _KLsimple_object_vectorGVKd_2 K21 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KLclassGVKd,
  &KLslot_descriptorGVKe
};

static _KLsymbolGVKd KJrepeated_slotQ_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K32
};

static _KLsymbolGVKd KJshallow_slot_descriptors_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K31
};

static _KLsymbolGVKd KJdefaulted_slot_descriptors_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K30
};

static _KLsymbolGVKd KJdeep_slot_descriptors_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K29
};

static _KLbyte_stringGVKd_21 K29 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 85,
  "deep-slot-descriptors"
};

static _KLbyte_stringGVKd_26 K30 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 105,
  "defaulted-slot-descriptors"
};

static _KLbyte_stringGVKd_24 K31 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 97,
  "shallow-slot-descriptors"
};

static _KLbyte_stringGVKd_14 K32 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 57,
  "repeated-slot?"
};

static _KLsimple_closure_methodGVKi_0 Kanonymous_of_walker_compute_deep_slot_descriptorsF56 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &rest_xep_0,
  &K45,
  &Kanonymous_of_walker_compute_deep_slot_descriptorsF56I,
  (D) 1
};

static _KLsimple_closure_methodGVKi_0 Kanonymous_of_walker_compute_deep_slot_descriptorsF52 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &Kanonymous_of_walker_compute_deep_slot_descriptorsF52I,
  (D) 1
};

_KLincremental_generic_functionGVKe Kwalker_shallow_gettersVwalker = {
  &KLincremental_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &K49,
  (D) 1,
  &K50,
  &K48,
  &RSINGULAR_Labsent_engine_nodeG,
  &Kwalker_moduleYdylan_userVwalker,
  &KPfalseVKi,
  &KPempty_vectorVKi,
  (D) 25
};

static _KLsimple_closure_methodGVKi_0 Kanonymous_of_walker_real_shallow_gettersF42 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &rest_xep_0,
  &K45,
  &Kanonymous_of_walker_real_shallow_gettersF42I,
  (D) 1
};

_KLsimple_methodGVKe Kwalker_defaulted_getterQVwalker = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &Kwalker_defaulted_getterQVwalkerI
};

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

_KLsimple_methodGVKe Kwalker_shallow_gettersVwalkerMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K51,
  &Kwalker_shallow_gettersVwalkerMM0I
};

static _KLpairGVKd K48 = {
  &KLpairGVKdW /* wrapper */,
  &Kwalker_shallow_gettersVwalkerMM0,
  &KPempty_listVKi
};

static _KLsignatureAvaluesGVKi K49 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555465,
  &K18,
  &KDsignature_LsequenceG_typesVKi
};

static _KLbyte_stringGVKd_22 K50 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 89,
  "walker-shallow-getters"
};

static _KLsignatureAvaluesGVKi K51 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555465,
  &K18,
  &KDsignature_LlistG_typesVKi
};

_KLsimple_methodGVKe Kwalker_default_getterVwalkerMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K55,
  &Kwalker_default_getterVwalkerMM0I
};

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

_KLlimited_vector_typeGVKe KLwalker_defaulted_slot_sequence_typeGVwalker = {
  &KLlimited_vector_typeGVKeW /* wrapper */,
  &Klimited_collection_instanceQVKeI,
  &KLsimple_vectorGVKd,
  &KLwalker_defaulted_descriptorGVwalker,
  &KLsimple_element_type_vectorGVKe,
  &KPfalseVKi,
  &KPfalseVKi
};

_KLsealed_generic_functionGVKe Kwalker_default_thunkVwalker = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  (D) 1,
  &K70,
  &K68,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsimple_methodGVKe Kmake_walker_defaulted_descriptorVwalker = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K63,
  &Kmake_walker_defaulted_descriptorVwalkerI
};

static _KLsymbolGVKd KJthunk_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K62
};

static _KLbyte_stringGVKd_5 K62 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 21,
  "thunk"
};

static _KLsignatureGVKe K63 = {
  &KLsignatureGVKeW /* wrapper */,
  (D) 44040201,
  &K64
};

static _KLsimple_object_vectorGVKd_2 K64 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KLintegerGVKd,
  &KLfunctionGVKd
};

_KLgetter_methodGVKi Kwalker_default_thunkVwalkerMM0 = {
  &KLgetter_methodGVKiW /* wrapper */,
  &slotacc_single_q_instance_getter_xep,
  &Kwalker_default_thunkVwalkerHLwalker_defaulted_descriptorG
};

_KLsimple_methodGVKe Kwalker_default_thunkVwalkerMM1 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K55,
  &Kwalker_default_thunkVwalkerMM1I
};

static _KLpairGVKd K68 = {
  &KLpairGVKdW /* wrapper */,
  &Kwalker_default_thunkVwalkerMM0,
  &K69
};

static _KLpairGVKd K69 = {
  &KLpairGVKdW /* wrapper */,
  &Kwalker_default_thunkVwalkerMM1,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_20 K70 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 81,
  "walker-default-thunk"
};

_KLinstance_slot_descriptorGVKe Kwalker_default_thunkVwalkerHLwalker_defaulted_descriptorG = {
  &KLinstance_slot_descriptorGVKeW /* wrapper */,
  (D) 193,
  &KPfalseVKi,
  &KLwalker_defaulted_descriptorGVwalker,
  &KJthunk_,
  &Kwalker_default_thunkVwalker,
  &KPfalseVKi,
  &KLfunctionGVKd
};

static _KLsimple_closure_methodGVKi_0 Kanonymous_of_walker_compute_shallow_slot_descriptorsF77 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &rest_xep_0,
  &K45,
  &Kanonymous_of_walker_compute_shallow_slot_descriptorsF77I,
  (D) 1
};

static _KLsimple_closure_methodGVKi_0 Kanonymous_of_walker_compute_shallow_slot_descriptorsF76 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &Kanonymous_of_walker_compute_shallow_slot_descriptorsF76I,
  (D) 1
};

static _KLbyte_stringGVKd_15 K78 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 61,
  "No next method."
};

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

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

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

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

static _KLkeyword_signatureGVKe K83 = {
  &KLkeyword_signatureGVKeW /* wrapper */,
  (D) 46399493,
  &K84,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi
};

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

static _KLimplementation_classGVKe K85 = {
  &KLimplementation_classGVKeW /* wrapper */,
  (D) 527433749,
  &KLwalker_classGVwalker,
  &KLwalker_classGVwalkerW,
  &KPfalseVKi,
  &K86,
  (D) -3,
  &KLwalker_classGZ32ZconstructorVwalkerMM0,
  &K89,
  &K90,
  (D) 5,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_listVKi,
  &KPempty_listVKi,
  &KPempty_listVKi,
  &KPempty_vectorVKi,
  &K86,
  &K86,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi
};

static _KLsimple_object_vectorGVKd_5 K86 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 21,
  &Kwalker_class_repeated_slotQVwalkerHLwalker_classG,
  &Kwalker_class_deep_slot_descriptorsVwalkerHLwalker_classG,
  &Kwalker_class_shallow_slot_descriptorsVwalkerHLwalker_classG,
  &Kwalker_class_defaulted_slot_descriptorsVwalkerHLwalker_classG,
  &Kwalker_class_kindVwalkerHLwalker_classG
};

_KLkeyword_methodGVKe KLwalker_classGZ32ZconstructorVwalkerMM0 = {
  &KLkeyword_methodGVKeW /* wrapper */,
  &rest_key_xep_6,
  &K92,
  &key_mep_2,
  &KLwalker_classGZ32ZconstructorVwalkerMM0I,
  &K93
};

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

static _KLsimple_object_vectorGVKd_6 K90 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 25,
  &KLobjectGVKd,
  &KLwalker_classGVwalker,
  &KPfalseVKi,
  &KPfalseVKi,
  &KPfalseVKi,
  &KPfalseVKi
};

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

static _KLkeyword_signatureAvaluesGVKi K92 = {
  &KLkeyword_signatureAvaluesGVKiW /* wrapper */,
  (D) 35390469,
  &KDsignature_LclassG_typesVKi,
  &K94,
  &KDsignature_LobjectG_typesVKi,
  &K84
};

static _KLsimple_object_vectorGVKd_8 K93 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 33,
  &KJrepeated_slotQ_,
  &KPunboundVKi,
  &KJdeep_slot_descriptors_,
  &KPunboundVKi,
  &KJshallow_slot_descriptors_,
  &KPunboundVKi,
  &KJdefaulted_slot_descriptors_,
  &KPunboundVKi
};

static _KLsimple_object_vectorGVKd_4 K94 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 17,
  &KJrepeated_slotQ_,
  &KJdeep_slot_descriptors_,
  &KJshallow_slot_descriptors_,
  &KJdefaulted_slot_descriptors_
};

_KLinstance_slot_descriptorGVKe Kwalker_class_repeated_slotQVwalkerHLwalker_classG = {
  &KLinstance_slot_descriptorGVKeW /* wrapper */,
  (D) 193,
  &KPfalseVKi,
  &KLwalker_classGVwalker,
  &KJrepeated_slotQ_,
  &Kwalker_class_repeated_slotQVwalker,
  &KPfalseVKi,
  &KLbooleanGVKd
};

_KLinstance_slot_descriptorGVKe Kwalker_class_deep_slot_descriptorsVwalkerHLwalker_classG = {
  &KLinstance_slot_descriptorGVKeW /* wrapper */,
  (D) 193,
  &KPfalseVKi,
  &KLwalker_classGVwalker,
  &KJdeep_slot_descriptors_,
  &Kwalker_class_deep_slot_descriptorsVwalker,
  &KPfalseVKi,
  &KLsimple_integer_vectorGVKe
};

_KLinstance_slot_descriptorGVKe Kwalker_class_shallow_slot_descriptorsVwalkerHLwalker_classG = {
  &KLinstance_slot_descriptorGVKeW /* wrapper */,
  (D) 193,
  &KPfalseVKi,
  &KLwalker_classGVwalker,
  &KJshallow_slot_descriptors_,
  &Kwalker_class_shallow_slot_descriptorsVwalker,
  &KPfalseVKi,
  &KLsimple_integer_vectorGVKe
};

_KLinstance_slot_descriptorGVKe Kwalker_class_defaulted_slot_descriptorsVwalkerHLwalker_classG = {
  &KLinstance_slot_descriptorGVKeW /* wrapper */,
  (D) 193,
  &KPfalseVKi,
  &KLwalker_classGVwalker,
  &KJdefaulted_slot_descriptors_,
  &Kwalker_class_defaulted_slot_descriptorsVwalker,
  &KPfalseVKi,
  &KLwalker_defaulted_slot_sequence_typeGVwalker
};

_KLinstance_slot_descriptorGVKe Kwalker_class_kindVwalkerHLwalker_classG = {
  &KLinstance_slot_descriptorGVKeW /* wrapper */,
  (D) 157,
  &KJdefault_,
  &KLwalker_classGVwalker,
  &KPfalseVKi,
  &Kwalker_class_kindVwalker,
  &Kwalker_class_kind_setterVwalker,
  &KLsymbolGVKd
};

_KLsealed_generic_functionGVKe Kwalker_class_kindVwalker = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &KPfalseVKi,
  &K107,
  &K106,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsealed_generic_functionGVKe Kwalker_class_kind_setterVwalker = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &KDsignature_LobjectG_object_rest_value_2VKi,
  &KPfalseVKi,
  &K104,
  &K103,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsetter_methodGVKi Kwalker_class_kind_setterVwalkerMM0 = {
  &KLsetter_methodGVKiW /* wrapper */,
  &slotacc_single_q_instance_setter_xep,
  &Kwalker_class_kindVwalkerHLwalker_classG
};

static _KLpairGVKd K103 = {
  &KLpairGVKdW /* wrapper */,
  &Kwalker_class_kind_setterVwalkerMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_24 K104 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 97,
  "walker-class-kind-setter"
};

_KLgetter_methodGVKi Kwalker_class_kindVwalkerMM0 = {
  &KLgetter_methodGVKiW /* wrapper */,
  &slotacc_single_q_instance_getter_xep,
  &Kwalker_class_kindVwalkerHLwalker_classG
};

static _KLpairGVKd K106 = {
  &KLpairGVKdW /* wrapper */,
  &Kwalker_class_kindVwalkerMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_17 K107 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 69,
  "walker-class-kind"
};

_KLsealed_generic_functionGVKe Kwalker_class_defaulted_slot_descriptorsVwalker = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &KPfalseVKi,
  &K111,
  &K110,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLgetter_methodGVKi Kwalker_class_defaulted_slot_descriptorsVwalkerMM0 = {
  &KLgetter_methodGVKiW /* wrapper */,
  &slotacc_single_q_instance_getter_xep,
  &Kwalker_class_defaulted_slot_descriptorsVwalkerHLwalker_classG
};

static _KLpairGVKd K110 = {
  &KLpairGVKdW /* wrapper */,
  &Kwalker_class_defaulted_slot_descriptorsVwalkerMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_39 K111 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 157,
  "walker-class-defaulted-slot-descriptors"
};

_KLsealed_generic_functionGVKe Kwalker_class_shallow_slot_descriptorsVwalker = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &KPfalseVKi,
  &K115,
  &K114,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLgetter_methodGVKi Kwalker_class_shallow_slot_descriptorsVwalkerMM0 = {
  &KLgetter_methodGVKiW /* wrapper */,
  &slotacc_single_q_instance_getter_xep,
  &Kwalker_class_shallow_slot_descriptorsVwalkerHLwalker_classG
};

static _KLpairGVKd K114 = {
  &KLpairGVKdW /* wrapper */,
  &Kwalker_class_shallow_slot_descriptorsVwalkerMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_37 K115 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 149,
  "walker-class-shallow-slot-descriptors"
};

_KLsealed_generic_functionGVKe Kwalker_class_deep_slot_descriptorsVwalker = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &KPfalseVKi,
  &K119,
  &K118,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLgetter_methodGVKi Kwalker_class_deep_slot_descriptorsVwalkerMM0 = {
  &KLgetter_methodGVKiW /* wrapper */,
  &slotacc_single_q_instance_getter_xep,
  &Kwalker_class_deep_slot_descriptorsVwalkerHLwalker_classG
};

static _KLpairGVKd K118 = {
  &KLpairGVKdW /* wrapper */,
  &Kwalker_class_deep_slot_descriptorsVwalkerMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_34 K119 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 137,
  "walker-class-deep-slot-descriptors"
};

_KLsealed_generic_functionGVKe Kwalker_class_repeated_slotQVwalker = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &KPfalseVKi,
  &K123,
  &K122,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLgetter_methodGVKi Kwalker_class_repeated_slotQVwalkerMM0 = {
  &KLgetter_methodGVKiW /* wrapper */,
  &slotacc_single_q_instance_getter_xep,
  &Kwalker_class_repeated_slotQVwalkerHLwalker_classG
};

static _KLpairGVKd K122 = {
  &KLpairGVKdW /* wrapper */,
  &Kwalker_class_repeated_slotQVwalkerMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_27 K123 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 109,
  "walker-class-repeated-slot?"
};

static _KLbyte_stringGVKd_14 K124 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 57,
  "<walker-class>"
};

static _KLimplementation_classGVKe K125 = {
  &KLimplementation_classGVKeW /* wrapper */,
  (D) 527433737,
  &KLwalker_defaulted_descriptorGVwalker,
  &KLwalker_defaulted_descriptorGVwalkerW,
  &KPfalseVKi,
  &K126,
  (D) -3,
  &KLwalker_defaulted_descriptorGZ32ZconstructorVwalkerMM0,
  &K89,
  &K129,
  (D) 5,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_listVKi,
  &KPempty_listVKi,
  &KPempty_listVKi,
  &KPempty_vectorVKi,
  &K126,
  &K126,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi
};

static _KLsimple_object_vectorGVKd_2 K126 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &Kwalker_default_slot_descriptorVwalkerHLwalker_defaulted_descriptorG,
  &Kwalker_default_thunkVwalkerHLwalker_defaulted_descriptorG
};

_KLkeyword_methodGVKe KLwalker_defaulted_descriptorGZ32ZconstructorVwalkerMM0 = {
  &KLkeyword_methodGVKeW /* wrapper */,
  &rest_key_xep_4,
  &K130,
  &key_mep_2,
  &KLwalker_defaulted_descriptorGZ32ZconstructorVwalkerMM0I,
  &K131
};

static _KLsimple_object_vectorGVKd_6 K129 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 25,
  &KLobjectGVKd,
  &KLwalker_defaulted_descriptorGVwalker,
  &KPfalseVKi,
  &KPfalseVKi,
  &KPfalseVKi,
  &KPfalseVKi
};

static _KLkeyword_signatureAvaluesGVKi K130 = {
  &KLkeyword_signatureAvaluesGVKiW /* wrapper */,
  (D) 35390469,
  &KDsignature_LclassG_typesVKi,
  &K132,
  &KDsignature_LobjectG_typesVKi,
  &K133
};

static _KLsimple_object_vectorGVKd_4 K131 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 17,
  &KJslot_descriptor_,
  &KPunboundVKi,
  &KJthunk_,
  &KPunboundVKi
};

static _KLsimple_object_vectorGVKd_2 K132 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KJslot_descriptor_,
  &KJthunk_
};

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

_KLinstance_slot_descriptorGVKe Kwalker_default_slot_descriptorVwalkerHLwalker_defaulted_descriptorG = {
  &KLinstance_slot_descriptorGVKeW /* wrapper */,
  (D) 193,
  &KPfalseVKi,
  &KLwalker_defaulted_descriptorGVwalker,
  &KJslot_descriptor_,
  &Kwalker_default_slot_descriptorVwalker,
  &KPfalseVKi,
  &KLintegerGVKd
};

_KLsealed_generic_functionGVKe Kwalker_default_slot_descriptorVwalker = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &KPfalseVKi,
  &K138,
  &K137,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLgetter_methodGVKi Kwalker_default_slot_descriptorVwalkerMM0 = {
  &KLgetter_methodGVKiW /* wrapper */,
  &slotacc_single_q_instance_getter_xep,
  &Kwalker_default_slot_descriptorVwalkerHLwalker_defaulted_descriptorG
};

static _KLpairGVKd K137 = {
  &KLpairGVKdW /* wrapper */,
  &Kwalker_default_slot_descriptorVwalkerMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_30 K138 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 121,
  "walker-default-slot-descriptor"
};

static _KLbyte_stringGVKd_29 K139 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 117,
  "<walker-defaulted-descriptor>"
};

_KLsimple_methodGVKe Kwalker_slot_value_setterVwalker = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_3,
  &K142,
  &Kwalker_slot_value_setterVwalkerI
};

static _KLsignatureGVKe K142 = {
  &KLsignatureGVKeW /* wrapper */,
  (D) 44040205,
  &K143
};

static _KLsimple_object_vectorGVKd_3 K143 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 13,
  &KLobjectGVKd,
  &KLobjectGVKd,
  &KLintegerGVKd
};

_KLsimple_methodGVKe Kwalker_slot_valueVwalker = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K146,
  &Kwalker_slot_valueVwalkerI
};

static _KLsignatureGVKe K146 = {
  &KLsignatureGVKeW /* wrapper */,
  (D) 41944073,
  &K147
};

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

/* Code */

D KinitializeVKdMwalkerM1I (D class_, D Urest_) {
  D T3;
  D T4;
  D kind_;
  D T6;
  D T7;
  D T8;
  D T9;
  D T10;
  D T11;
  D T12;
  D T13;
  D T14;
  DWORD T15;
  D T16;
  D T17;
  D T18;
  DWORD T19;
  D T20;

  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:111
  T8 = primitive_copy_vector(Urest_);
  T7 = primitive_next_methods_parameter();
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:112
  T9 = primitive_idQ(T7,&KPempty_listVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:112
  if (T9 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:112
    KerrorVKdMM1I(&K78, &KPempty_vectorVKi);
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:112
    T10 = SLOT_VALUE_INITD(T7, 0);
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:112
    T11 = SLOT_VALUE_INITD(T7, 1);
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:112
    MEP_CALL_PROLOG(T10, T11, 2);
    MEP_CALL2(T10, class_, T8);
  }
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:112
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:115
  T12 = SLOT_VALUE_INITD(class_, 0);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:114
  if (T12 != &KPfalseVKi) {
    kind_ = &KJrepeated_;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:117
    T13 = SLOT_VALUE_INITD(class_, 2);
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:117
    T14 = SLOT_VALUE_INITD(T13, 0);
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:117
    T15 = primitive_cast_integer_as_raw(T14);
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:117
    T16 = primitive_machine_word_equalQ(T15,1);
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:117
    if (T16 != &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:118
      T17 = SLOT_VALUE_INITD(class_, 3);
      // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:118
      T18 = SLOT_VALUE_INITD(T17, 1);
      // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:118
      T19 = primitive_cast_integer_as_raw(T18);
      // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:118
      T20 = primitive_machine_word_equalQ(T19,1);
      T3 = T20;
    } else {
      T3 = &KPfalseVKi;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:117
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:114
    if (T3 != &KPfalseVKi) {
      T4 = IKJsimple_;
    } else {
      T4 = IKJcomplex_;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:114
    kind_ = T4;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:114
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:123
  SLOT_VALUE_SETTER(kind_, class_, 4);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:123
  T6 = &KPfalseVKi;
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:111
  MV_SET_COUNT(0);
  return(T6);
}

D Kwalker_shallow_slot_descriptorsVwalkerI (D walker_, D class_) {
  D T3;
  D T4;
  D T5_0;

  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:207
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:210
  T3 = Kwalker_classVwalkerI(walker_, class_);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:210
  T4 = SLOT_VALUE_INITD(T3, 2);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:210
  T5_0 = T4;
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:207
  MV_SET_COUNT(1);
  return(T5_0);
}

D Kwalker_defaulted_slot_descriptorsVwalkerI (D walker_, D class_) {
  D T3;
  D T4;
  D T5_0;

  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:214
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:217
  T3 = Kwalker_classVwalkerI(walker_, class_);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:217
  T4 = SLOT_VALUE_INITD(T3, 3);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:217
  T5_0 = T4;
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:214
  MV_SET_COUNT(1);
  return(T5_0);
}

D Kwalker_deep_slot_descriptorsVwalkerI (D walker_, D class_) {
  D T3;
  D T4;
  D T5_0;

  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:221
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:224
  T3 = Kwalker_classVwalkerI(walker_, class_);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:224
  T4 = SLOT_VALUE_INITD(T3, 1);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:224
  T5_0 = T4;
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:221
  MV_SET_COUNT(1);
  return(T5_0);
}

D Kwalker_classVwalkerI (D walker_, D class_) {
  D T3_0;
  D T4;
  D T5;
  D T6;
  D T7;
  D T8_0;
  D T9_0;
  D T10;
  D T11_0;
  D Utmp_;
  D T13;
  _KLsimple_object_vectorGVKd_8 T14 = {&KLsimple_object_vectorGVKdW, (D) 33};
  D T15;
  D T16;
  _KLsimple_object_vectorGVKd_4 T17 = {&KLsimple_object_vectorGVKdW, (D) 17};
  D T18;
  D T19_0;

  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:174
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:176
  T10 = SLOT_VALUE_INITD(walker_, 1);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:176
  T11_0 = KgethashVKiI(T10, class_, &KPfalseVKi, &KPtrueVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:176
  Utmp_ = T11_0;
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:176
  if (Utmp_ != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:176
    T3_0 = Utmp_;
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:176
    T19_0 = T3_0;
    {
      MV_CHECK_TYPE_PROLOGUE(T3_0);
      primitive_type_check(T19_0, &KLwalker_classGVwalker);
      MV_CHECK_TYPE_EPILOGUE();
    }
    T9_0 = T19_0;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:180
    T13 = Kwalker_repeated_slotQVwalkerMM1I(class_);
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:182
    T4 = Kwalker_compute_shallow_slot_descriptorsVwalkerMM0I(walker_, class_);
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:184
    T5 = Kwalker_compute_defaulted_slot_descriptorsVwalkerMM0I(walker_, class_);
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:186
    T6 = Kwalker_compute_deep_slot_descriptorsVwalkerMM0I(walker_, class_);
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:178
    T14.vector_element_[0] = IKJrepeated_slotQ_;
    T14.vector_element_[1] = T13;
    T14.vector_element_[2] = IKJshallow_slot_descriptors_;
    T14.vector_element_[3] = T4;
    T14.vector_element_[4] = IKJdefaulted_slot_descriptors_;
    T14.vector_element_[5] = T5;
    T14.vector_element_[6] = IKJdeep_slot_descriptors_;
    T14.vector_element_[7] = T6;
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:178
    CONGRUENT_CALL_PROLOG(&KmakeVKd, 2);
    T7 = CONGRUENT_CALL2(&KLwalker_classGVwalker, &T14);
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:177
    T15 = SLOT_VALUE_INITD(T10, 0);
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:177
    T16 = primitive_instanceQ(T7,T15);
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:177
    if (T16 == &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:177
      T17.vector_element_[0] = &KJvalue_;
      T17.vector_element_[1] = T7;
      T17.vector_element_[2] = &KJtype_;
      T17.vector_element_[3] = T15;
      // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:177
      CONGRUENT_CALL_PROLOG(&KmakeVKd, 2);
      T18 = CONGRUENT_CALL2(&KLtype_errorGVKd, &T17);
      // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:177
      CONGRUENT_CALL_PROLOG(&KerrorVKd, 2);
      CONGRUENT_CALL2(T18, &KPempty_vectorVKi);
    }
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:177
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:177
    KputhashVKiI(T7, T10, class_);
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:177
    T8_0 = T7;
    T9_0 = T8_0;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:176
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:174
  MV_SET_COUNT(1);
  return(T9_0);
}

D Kas_walker_slot_descriptorVwalkerI (D class_, D slot_descriptor_) {
  D T2_0;
  D T3;
  D T4;
  D T5_0;

  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:25
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:28
  T3 = SLOT_VALUE(class_, 2);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:28
  T4 = Kslot_offset_iVKeI(slot_descriptor_, T3);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:28
  T5_0 = T4;
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:25
  T2_0 = T5_0;
  {
    MV_CHECK_TYPE_PROLOGUE(T5_0);
    primitive_type_check(T2_0, &KLintegerGVKd);
    MV_CHECK_TYPE_EPILOGUE();
  }
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:25
  MV_SET_COUNT(1);
  return(T2_0);
}

D Kwalker_compute_shallow_slot_descriptorsVwalkerMM0I (D walker_, D class_) {
  D shallow_getters_;
  D T4;
  D T5;
  D T6_0;
  _KLsimple_object_vectorGVKd_1 T7 = {&KLsimple_object_vectorGVKdW, (D) 5};
  D T8;
  D T9;
  D T10;
  D T11_0;

  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:149
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:151
  shallow_getters_ = Kwalker_real_shallow_gettersVwalkerI(walker_, class_);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:152
  T7.vector_element_[0] = class_;
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:152
  T8 = primitive_copy_vector(&T7);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:152
  T9 = MAKE_CLOSURE_INITD(&Kanonymous_of_walker_compute_shallow_slot_descriptorsF77, 1, T8);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:153
  T4 = MAKE_CLOSURE_INITD(&Kanonymous_of_walker_compute_shallow_slot_descriptorsF76, 1, shallow_getters_);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:154
  T5 = Kwalker_slot_descriptorsVwalkerMM0I(class_);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:153
  T10 = KchooseVKdMM0I(T4, T5);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:152
  T11_0 = Kmap_asVKdMM0I(&KLsimple_integer_vectorGVKe, T9, T10, &KPempty_vectorVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:149
  T6_0 = T11_0;
  {
    MV_CHECK_TYPE_PROLOGUE(T11_0);
    primitive_type_check(T6_0, &KLsimple_integer_vectorGVKe);
    MV_CHECK_TYPE_EPILOGUE();
  }
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:149
  MV_SET_COUNT(1);
  return(T6_0);
}

D Kwalker_compute_defaulted_slot_descriptorsVwalkerMM0I (D walker_, D class_) {
  D shallow_getters_;
  D T4_0;
  D T4_1;
  D T4_2;
  D T4_3;
  D T4_4;
  D T4_5;
  D Ucollector_collector_;
  D Ucollector_add_last_;
  D Ucollector_collection_;
  D T8;
  DWORD T9T, T9;
  D T10T, T10;
  D T11;
  D T12;
  D T13;
  D T14;
  D T15_0;
  D T16_0;
  D T17;
  DWORD T18;
  D T19;
  D T20;
  D T21;
  D T22;
  D T23;
  D T24_0;
  D T25;
  D T26;
  D T27_0;
  D T28;
  D T29;
  D T30_0;
  D T31_0;
  D T32;
  DWORD T33;

  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:132
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:135
  shallow_getters_ = Kwalker_defaulted_shallow_gettersVwalkerI(walker_, class_);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:136
  CONGRUENT_CALL_PROLOG(&Kcollector_protocolYcollectorsVcollections, 2);
  T4_0 = CONGRUENT_CALL2(&KLwalker_defaulted_slot_sequence_typeGVwalker, &KPempty_vectorVKi);
  T4_1 = MV_GET_ELT(1);
  T4_2 = MV_GET_ELT(2);
  T4_3 = MV_GET_ELT(3);
  T4_4 = MV_GET_ELT(4);
  T4_5 = MV_GET_ELT(5);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:136
  Ucollector_collector_ = T4_0;
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:136
  Ucollector_add_last_ = T4_2;
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:136
  Ucollector_collection_ = T4_5;
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:137
  T8 = Kwalker_slot_descriptorsVwalkerMM0I(class_);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:137
  T17 = SLOT_VALUE_INITD(T8, 1);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:137
  T18 = primitive_cast_integer_as_raw(T17);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:137
  T9T = 1;
L0: ;
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:137
    T9 = T9T;
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:137
    T19 = primitive_machine_word_equalQ(T9,T18);
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:137
    if (T19 == &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:137
      T20 = REPEATED_D_SLOT_VALUE_TAGGED(T8, 2, T9);
      // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:138
      T10T = shallow_getters_;
    L1: ;
        // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:138
        T10 = T10T;
        // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:138
        T21 = primitive_idQ(T10,&KPempty_listVKi);
        // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:138
        if (T21 == &KPfalseVKi) {
          // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:138
          T22 = SLOT_VALUE_INITD(T10, 0);
          // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:139
          T23 = SLOT_VALUE_INITD(T20, 4);
          // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:139
          T11 = CALL1(&Kwalker_default_getterVwalkerMM0, T22);
          // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:139
          T12 = KEEVKdI(T23, T11);
          // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:139
          if (T12 != &KPfalseVKi) {
            // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:141
            T25 = SLOT_VALUE(class_, 2);
            // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:141
            T26 = Kslot_offset_iVKeI(T20, T25);
            // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:141
            T27_0 = T26;
            // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:141
            T24_0 = T27_0;
            {
              MV_CHECK_TYPE_PROLOGUE(T27_0);
              primitive_type_check(T24_0, &KLintegerGVKd);
              MV_CHECK_TYPE_EPILOGUE();
            }
            // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:141
            T28 = T24_0;
            // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:142
            CONGRUENT_CALL_PROLOG(&Kwalker_default_thunkVwalker, 1);
            T13 = CONGRUENT_CALL1(T22);
            // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:140
            T14 = CALL2(&Kmake_walker_defaulted_descriptorVwalker, T28, T13);
            // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:140
            CALL2(Ucollector_add_last_, Ucollector_collector_, T14);
          }
          // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:139
          // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:138
          T29 = SLOT_VALUE_INITD(T10, 1);
          // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:138
          T30_0 = T29;
          // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:138
          T31_0 = T30_0;
          {
            MV_CHECK_TYPE_PROLOGUE(T30_0);
            primitive_type_check(T31_0, &KLlistGVKd);
            MV_CHECK_TYPE_EPILOGUE();
          }
          // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:138
          T32 = T31_0;
          // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:138
          T10T = T32;
          goto L1;
        }
        // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:138
        // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:138
      // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:137
      T33 = primitive_machine_word_add_signal_overflow(T9,4);
      // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:137
      T9T = T33;
      goto L0;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:137
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:137
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:136
  T15_0 = CALL1(Ucollector_collection_, Ucollector_collector_);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:132
  T16_0 = T15_0;
  {
    MV_CHECK_TYPE_PROLOGUE(T15_0);
    primitive_type_check(T16_0, &KLwalker_defaulted_slot_sequence_typeGVwalker);
    MV_CHECK_TYPE_EPILOGUE();
  }
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:132
  MV_SET_COUNT(1);
  return(T16_0);
}

D Kwalker_compute_deep_slot_descriptorsVwalkerMM0I (D walker_, D class_) {
  D defaulted_getters_;
  D shallow_getters_;
  D T5;
  D T6;
  D T7;
  D T8;
  D T9;
  D T10_0;
  _KLsimple_object_vectorGVKd_1 T11 = {&KLsimple_object_vectorGVKdW, (D) 5};
  D T12;
  D T13;
  D T14;
  D T15;
  D T16;
  D T17_0;

  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:157
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:159
  defaulted_getters_ = Kwalker_defaulted_shallow_gettersVwalkerI(walker_, class_);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:160
  shallow_getters_ = Kwalker_real_shallow_gettersVwalkerI(walker_, class_);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:161
  T11.vector_element_[0] = class_;
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:161
  T12 = primitive_copy_vector(&T11);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:161
  T13 = MAKE_CLOSURE_INITD(&Kanonymous_of_walker_compute_deep_slot_descriptorsF56, 1, T12);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:162
  T14 = primitive_idQ(defaulted_getters_,&KPempty_listVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:162
  if (T14 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:162
    T15 = primitive_idQ(shallow_getters_,&KPempty_listVKi);
    T5 = T15;
  } else {
    T5 = &KPfalseVKi;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:162
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:162
  if (T5 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:163
    T6 = Kwalker_slot_descriptorsVwalkerMM0I(class_);
    T9 = T6;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:165
    T7 = MAKE_CLOSURE_INITD(&Kanonymous_of_walker_compute_deep_slot_descriptorsF52, 2, shallow_getters_, defaulted_getters_);
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:170
    T8 = Kwalker_slot_descriptorsVwalkerMM0I(class_);
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:165
    T16 = KchooseVKdMM0I(T7, T8);
    T9 = T16;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:162
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:161
  T17_0 = Kmap_asVKdMM0I(&KLsimple_integer_vectorGVKe, T13, T9, &KPempty_vectorVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:157
  T10_0 = T17_0;
  {
    MV_CHECK_TYPE_PROLOGUE(T17_0);
    primitive_type_check(T10_0, &KLsimple_integer_vectorGVKe);
    MV_CHECK_TYPE_EPILOGUE();
  }
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:157
  MV_SET_COUNT(1);
  return(T10_0);
}

static D Kanonymous_of_walker_compute_deep_slot_descriptorsF56I (D args_) {
  D T1;
  D T2;
  CAPTURE_ENVIRONMENT

  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:161
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:161
  T1 = Kconcatenate_2VKeMM1I(CREF(0), args_);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:161
  T2 = APPLY1(&Kas_walker_slot_descriptorVwalker, T1);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:161
  return(T2);
}

static D Kanonymous_of_walker_compute_deep_slot_descriptorsF52I (D sd_) {
  D T1;
  D T2;
  D T3;
  D T4;
  D result_T, result_;
  D T6T, T6;
  D T7;
  D T8;
  D T9_0;
  D T10;
  D T11;
  D T12;
  D T13;
  D T14_0;
  D T15_0;
  D T16;
  D T17;
  D T18;
  D T19;
  D T20_0;
  CAPTURE_ENVIRONMENT

  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:165
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:166
  T1 = CALL1(&Kslot_getterVKe, sd_);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:167
  result_T = &KPempty_listVKi;
  T6T = CREF(1);
L0: ;
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:167
    result_ = result_T;
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:167
    T6 = T6T;
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:167
    T11 = primitive_idQ(T6,&KPempty_listVKi);
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:167
    if (T11 == &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:167
      T12 = SLOT_VALUE_INITD(T6, 0);
      // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:167
      T7 = CALL1(&Kwalker_default_getterVwalkerMM0, T12);
      // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:167
      T8 = primitive_object_allocate_filled(3,&KLpairGVKdW,2,&KPunboundVKi,0,0,&KPunboundVKi);
      // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:167
      SLOT_VALUE_SETTER(T7, T8, 0);
      // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:167
      SLOT_VALUE_SETTER(result_, T8, 1);
      // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:167
      T13 = SLOT_VALUE_INITD(T6, 1);
      // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:167
      T14_0 = T13;
      // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:167
      T15_0 = T14_0;
      {
        MV_CHECK_TYPE_PROLOGUE(T14_0);
        primitive_type_check(T15_0, &KLlistGVKd);
        MV_CHECK_TYPE_EPILOGUE();
      }
      // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:167
      T16 = T15_0;
      // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:167
      result_T = T8;
      T6T = T16;
      goto L0;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:167
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:167
    T9_0 = KreverseXVKdMM2I(result_);
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:167
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:167
  T10 = T9_0;
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:166
  T17 = KmemberQVKdMM3I(T1, T10, &KPempty_vectorVKi, &KEEVKd);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:166
  if (T17 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:166
    T3 = &KPfalseVKi;
    MV_SET_ELT(0, &KPfalseVKi);
    MV_SET_COUNT(1);
    T4 = T3;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:168
    T2 = CALL1(&Kslot_getterVKe, sd_);
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:168
    T18 = KmemberQVKdMM3I(T2, CREF(0), &KPempty_vectorVKi, &KEEVKd);
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:168
    T19 = primitive_not(T18);
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:168
    T20_0 = T19;
    T4 = T20_0;
    MV_SET_COUNT(1);
  }
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:166
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:165
  return(T4);
}

D Kwalker_defaulted_shallow_gettersVwalkerI (D walker_, D class_) {
  D T2;
  D T3_0;
  D T4_0;

  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:88
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:90
  CONGRUENT_CALL_PROLOG(&Kwalker_shallow_gettersVwalker, 2);
  T2 = CONGRUENT_CALL2(walker_, class_);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:90
  CONGRUENT_CALL_PROLOG(&KchooseVKd, 2);
  T3_0 = CONGRUENT_CALL2(&Kwalker_defaulted_getterQVwalker, T2);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:88
  T4_0 = T3_0;
  {
    MV_CHECK_TYPE_PROLOGUE(T3_0);
    primitive_type_check(T4_0, &KLlistGVKd);
    MV_CHECK_TYPE_EPILOGUE();
  }
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:88
  MV_SET_COUNT(1);
  return(T4_0);
}

D Kwalker_real_shallow_gettersVwalkerI (D walker_, D class_) {
  D T2;
  D T3_0;
  D T4_0;

  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:126
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:129
  CONGRUENT_CALL_PROLOG(&Kwalker_shallow_gettersVwalker, 2);
  T2 = CONGRUENT_CALL2(walker_, class_);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:128
  CONGRUENT_CALL_PROLOG(&KchooseVKd, 2);
  T3_0 = CONGRUENT_CALL2(&Kanonymous_of_walker_real_shallow_gettersF42, T2);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:126
  T4_0 = T3_0;
  {
    MV_CHECK_TYPE_PROLOGUE(T3_0);
    primitive_type_check(T4_0, &KLlistGVKd);
    MV_CHECK_TYPE_EPILOGUE();
  }
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:126
  MV_SET_COUNT(1);
  return(T4_0);
}

static D Kanonymous_of_walker_real_shallow_gettersF42I (D args_) {
  D T1;
  D T2;
  D T3_0;

  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:128
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:128
  T1 = APPLY1(&Kwalker_defaulted_getterQVwalker, args_);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:128
  T2 = primitive_not(T1);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:128
  T3_0 = T2;
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:128
  MV_SET_COUNT(1);
  return(T3_0);
}

D Kwalker_defaulted_getterQVwalkerI (D spec_) {
  D T2;
  D T3_0;

  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:72
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:73
  T2 = primitive_instanceQ(spec_,&KLpairGVKd);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:73
  T3_0 = T2;
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:72
  MV_SET_COUNT(1);
  return(T3_0);
}

D Kwalker_shallow_gettersVwalkerMM0I (D walker_, D class_) {
  D T3_0;

  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:50
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:52
  T3_0 = &KPempty_listVKi;
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:50
  MV_SET_COUNT(1);
  return(T3_0);
}

D Kwalker_default_getterVwalkerMM0I (D spec_) {
  D T2;
  D T3;

  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:76
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:77
  T2 = SLOT_VALUE_INITD(spec_, 0);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:77
  T3 = T2;
  MV_SET_ELT(0, T2);
  MV_SET_COUNT(1);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:76
  return(T3);
}

D Kmake_walker_defaulted_descriptorVwalkerI (D slot_descriptor_, D thunk_) {
  D T2;
  _KLsimple_object_vectorGVKd_4 T3 = {&KLsimple_object_vectorGVKdW, (D) 17};

  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:62
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:64
  T3.vector_element_[0] = &KJslot_descriptor_;
  T3.vector_element_[1] = slot_descriptor_;
  T3.vector_element_[2] = IKJthunk_;
  T3.vector_element_[3] = thunk_;
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:64
  CONGRUENT_CALL_PROLOG(&KmakeVKd, 2);
  T2 = CONGRUENT_CALL2(&KLwalker_defaulted_descriptorGVwalker, &T3);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:62
  return(T2);
}

D Kwalker_default_thunkVwalkerMM1I (D spec_) {
  D T2;
  D T3;

  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:80
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:81
  T2 = SLOT_VALUE_INITD(spec_, 1);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:81
  T3 = T2;
  MV_SET_ELT(0, T2);
  MV_SET_COUNT(1);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:80
  return(T3);
}

static D Kanonymous_of_walker_compute_shallow_slot_descriptorsF77I (D args_) {
  D T1;
  D T2;
  CAPTURE_ENVIRONMENT

  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:152
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:152
  T1 = Kconcatenate_2VKeMM1I(CREF(0), args_);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:152
  T2 = APPLY1(&Kas_walker_slot_descriptorVwalker, T1);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:152
  return(T2);
}

static D Kanonymous_of_walker_compute_shallow_slot_descriptorsF76I (D sd_) {
  D T1;
  D T2;
  CAPTURE_ENVIRONMENT

  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:153
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:153
  T1 = CALL1(&Kslot_getterVKe, sd_);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:153
  T2 = KmemberQVKdMM3I(T1, CREF(0), &KPempty_vectorVKi, &KEEVKd);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:153
  return(T2);
}

D KLwalker_classGZ32ZconstructorVwalkerMM0I (D class_, D init_args_, D Uunique_walker_class_repeated_slotQ_, D Uunique_walker_class_deep_slot_descriptors_, D Uunique_walker_class_shallow_slot_descriptors_, D Uunique_walker_class_defaulted_slot_descriptors_) {
  D T7;
  D Uunique_walker_class_repeated_slotQF8;
  D T9;
  D Uunique_walker_class_deep_slot_descriptorsF10;
  D T11;
  D Uunique_walker_class_shallow_slot_descriptorsF12;
  D T13;
  D Uunique_walker_class_defaulted_slot_descriptorsF14;
  D T15;
  D Uunique_walker_class_repeated_slotQF16;
  D Uunique_walker_class_deep_slot_descriptorsF17;
  D Uunique_walker_class_shallow_slot_descriptorsF18;
  D Uunique_walker_class_defaulted_slot_descriptorsF19;
  D T20_0;
  D T21;
  _KLsimple_object_vectorGVKd_1 T22 = {&KLsimple_object_vectorGVKdW, (D) 5};
  D T23;
  D T24;
  _KLsimple_object_vectorGVKd_1 T25 = {&KLsimple_object_vectorGVKdW, (D) 5};
  D T26;
  D T27;
  _KLsimple_object_vectorGVKd_1 T28 = {&KLsimple_object_vectorGVKdW, (D) 5};
  D T29;
  D T30;
  _KLsimple_object_vectorGVKd_1 T31 = {&KLsimple_object_vectorGVKdW, (D) 5};
  D T32;

  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:97
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:97
  T21 = primitive_idQ(Uunique_walker_class_repeated_slotQ_,&KPunboundVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:97
  if (T21 != &KPfalseVKi) {
    T22.vector_element_[0] = IKJrepeated_slotQ_;
    T23 = KerrorVKdMM1I(&K91, &T22);
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:97
    T7 = T23;
    Uunique_walker_class_repeated_slotQF8 = T7;
  } else {
    Uunique_walker_class_repeated_slotQF8 = Uunique_walker_class_repeated_slotQ_;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:97
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:97
  T24 = primitive_idQ(Uunique_walker_class_deep_slot_descriptors_,&KPunboundVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:97
  if (T24 != &KPfalseVKi) {
    T25.vector_element_[0] = IKJdeep_slot_descriptors_;
    T26 = KerrorVKdMM1I(&K91, &T25);
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:97
    T9 = T26;
    Uunique_walker_class_deep_slot_descriptorsF10 = T9;
  } else {
    Uunique_walker_class_deep_slot_descriptorsF10 = Uunique_walker_class_deep_slot_descriptors_;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:97
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:97
  T27 = primitive_idQ(Uunique_walker_class_shallow_slot_descriptors_,&KPunboundVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:97
  if (T27 != &KPfalseVKi) {
    T28.vector_element_[0] = IKJshallow_slot_descriptors_;
    T29 = KerrorVKdMM1I(&K91, &T28);
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:97
    T11 = T29;
    Uunique_walker_class_shallow_slot_descriptorsF12 = T11;
  } else {
    Uunique_walker_class_shallow_slot_descriptorsF12 = Uunique_walker_class_shallow_slot_descriptors_;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:97
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:97
  T30 = primitive_idQ(Uunique_walker_class_defaulted_slot_descriptors_,&KPunboundVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:97
  if (T30 != &KPfalseVKi) {
    T31.vector_element_[0] = IKJdefaulted_slot_descriptors_;
    T32 = KerrorVKdMM1I(&K91, &T31);
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:97
    T13 = T32;
    Uunique_walker_class_defaulted_slot_descriptorsF14 = T13;
  } else {
    Uunique_walker_class_defaulted_slot_descriptorsF14 = Uunique_walker_class_defaulted_slot_descriptors_;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:97
  T15 = primitive_object_allocate_filled(6,&KLwalker_classGVwalkerW,5,&KPunboundVKi,0,0,&KPunboundVKi);
  primitive_type_check(Uunique_walker_class_repeated_slotQF8, &KLbooleanGVKd);
  Uunique_walker_class_repeated_slotQF16 = Uunique_walker_class_repeated_slotQF8;
  SLOT_VALUE_SETTER(Uunique_walker_class_repeated_slotQF16, T15, 0);
  primitive_type_check(Uunique_walker_class_deep_slot_descriptorsF10, &KLsimple_integer_vectorGVKe);
  Uunique_walker_class_deep_slot_descriptorsF17 = Uunique_walker_class_deep_slot_descriptorsF10;
  SLOT_VALUE_SETTER(Uunique_walker_class_deep_slot_descriptorsF17, T15, 1);
  primitive_type_check(Uunique_walker_class_shallow_slot_descriptorsF12, &KLsimple_integer_vectorGVKe);
  Uunique_walker_class_shallow_slot_descriptorsF18 = Uunique_walker_class_shallow_slot_descriptorsF12;
  SLOT_VALUE_SETTER(Uunique_walker_class_shallow_slot_descriptorsF18, T15, 2);
  primitive_type_check(Uunique_walker_class_defaulted_slot_descriptorsF14, &KLwalker_defaulted_slot_sequence_typeGVwalker);
  Uunique_walker_class_defaulted_slot_descriptorsF19 = Uunique_walker_class_defaulted_slot_descriptorsF14;
  SLOT_VALUE_SETTER(Uunique_walker_class_defaulted_slot_descriptorsF19, T15, 3);
  SLOT_VALUE_SETTER(&KJdefault_, T15, 4);
  APPLY2(&KinitializeVKd, T15, init_args_);
  T20_0 = T15;
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:97
  MV_SET_COUNT(1);
  return(T20_0);
}

D KLwalker_defaulted_descriptorGZ32ZconstructorVwalkerMM0I (D class_, D init_args_, D Uunique_walker_default_slot_descriptor_, D Uunique_walker_default_thunk_) {
  D T5;
  D Uunique_walker_default_slot_descriptorF6;
  D T7;
  D Uunique_walker_default_thunkF8;
  D T9;
  D Uunique_walker_default_slot_descriptorF10;
  D Uunique_walker_default_thunkF11;
  D T12_0;
  D T13;
  _KLsimple_object_vectorGVKd_1 T14 = {&KLsimple_object_vectorGVKdW, (D) 5};
  D T15;
  D T16;
  _KLsimple_object_vectorGVKd_1 T17 = {&KLsimple_object_vectorGVKdW, (D) 5};
  D T18;

  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:55
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:55
  T13 = primitive_idQ(Uunique_walker_default_slot_descriptor_,&KPunboundVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:55
  if (T13 != &KPfalseVKi) {
    T14.vector_element_[0] = &KJslot_descriptor_;
    T15 = KerrorVKdMM1I(&K91, &T14);
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:55
    T5 = T15;
    Uunique_walker_default_slot_descriptorF6 = T5;
  } else {
    Uunique_walker_default_slot_descriptorF6 = Uunique_walker_default_slot_descriptor_;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:55
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:55
  T16 = primitive_idQ(Uunique_walker_default_thunk_,&KPunboundVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:55
  if (T16 != &KPfalseVKi) {
    T17.vector_element_[0] = IKJthunk_;
    T18 = KerrorVKdMM1I(&K91, &T17);
    // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:55
    T7 = T18;
    Uunique_walker_default_thunkF8 = T7;
  } else {
    Uunique_walker_default_thunkF8 = Uunique_walker_default_thunk_;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:55
  T9 = primitive_object_allocate_filled(3,&KLwalker_defaulted_descriptorGVwalkerW,2,&KPunboundVKi,0,0,&KPunboundVKi);
  primitive_type_check(Uunique_walker_default_slot_descriptorF6, &KLintegerGVKd);
  Uunique_walker_default_slot_descriptorF10 = Uunique_walker_default_slot_descriptorF6;
  SLOT_VALUE_SETTER(Uunique_walker_default_slot_descriptorF10, T9, 0);
  primitive_type_check(Uunique_walker_default_thunkF8, &KLfunctionGVKd);
  Uunique_walker_default_thunkF11 = Uunique_walker_default_thunkF8;
  SLOT_VALUE_SETTER(Uunique_walker_default_thunkF11, T9, 1);
  APPLY2(&KinitializeVKd, T9, init_args_);
  T12_0 = T9;
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:55
  MV_SET_COUNT(1);
  return(T12_0);
}

D Kwalker_slot_value_setterVwalkerI (D new_value_, D object_, D slot_descriptor_) {
  D T3;
  DWORD T4;
  DWORD T5;

  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:20
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:22
  T4 = primitive_cast_integer_as_raw(slot_descriptor_);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:22
  T5 = primitive_machine_word_shift_right(T4,2);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:22
  primitive_slot_value_setter(new_value_,object_,T5);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:22
  T3 = new_value_;
  MV_SET_ELT(0, new_value_);
  MV_SET_COUNT(1);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:20
  return(T3);
}

D Kwalker_slot_valueVwalkerI (D object_, D slot_descriptor_) {
  DWORD T3;
  DWORD T4;
  D T5;
  D T6;

  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:15
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:17
  T3 = primitive_cast_integer_as_raw(slot_descriptor_);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:17
  T4 = primitive_machine_word_shift_right(T3,2);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:17
  T5 = primitive_initialized_slot_value(object_,T4);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:17
  T6 = T5;
  MV_SET_ELT(0, T5);
  MV_SET_COUNT(1);
  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:15
  return(T6);
}


/* SYSTEM INIT CODE */

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

    T0 = KPresolve_symbolVKiI(&KJrepeated_slotQ_);
    if (T0 != &KJrepeated_slotQ_) {
      primitive_slot_value_setter(T0, &Kwalker_class_repeated_slotQVwalkerHLwalker_classG, 3);
      primitive_repeated_slot_value_setter(T0, &K94, 1, 0);
      primitive_repeated_slot_value_setter(T0, &K93, 1, 0);
      IKJrepeated_slotQ_ = T0;
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJshallow_slot_descriptors_);
    if (T0 != &KJshallow_slot_descriptors_) {
      primitive_slot_value_setter(T0, &Kwalker_class_shallow_slot_descriptorsVwalkerHLwalker_classG, 3);
      primitive_repeated_slot_value_setter(T0, &K94, 1, 2);
      primitive_repeated_slot_value_setter(T0, &K93, 1, 4);
      IKJshallow_slot_descriptors_ = T0;
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJdefaulted_slot_descriptors_);
    if (T0 != &KJdefaulted_slot_descriptors_) {
      primitive_slot_value_setter(T0, &Kwalker_class_defaulted_slot_descriptorsVwalkerHLwalker_classG, 3);
      primitive_repeated_slot_value_setter(T0, &K94, 1, 3);
      primitive_repeated_slot_value_setter(T0, &K93, 1, 6);
      IKJdefaulted_slot_descriptors_ = T0;
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJdeep_slot_descriptors_);
    if (T0 != &KJdeep_slot_descriptors_) {
      primitive_slot_value_setter(T0, &Kwalker_class_deep_slot_descriptorsVwalkerHLwalker_classG, 3);
      primitive_repeated_slot_value_setter(T0, &K94, 1, 1);
      primitive_repeated_slot_value_setter(T0, &K93, 1, 2);
      IKJdeep_slot_descriptors_ = T0;
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJthunk_);
    if (T0 != &KJthunk_) {
      primitive_repeated_slot_value_setter(T0, &K132, 1, 1);
      primitive_repeated_slot_value_setter(T0, &K131, 1, 2);
      IKJthunk_ = T0;
      primitive_slot_value_setter(T0, &Kwalker_default_thunkVwalkerHLwalker_defaulted_descriptorG, 3);
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJsimple_);
    if (T0 != &KJsimple_) {
      IKJsimple_ = T0;
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJcomplex_);
    if (T0 != &KJcomplex_) {
      IKJcomplex_ = T0;
    }
  }
{
  D T0;

  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:55
  T0 = KPadd_classVKeI(&KLwalker_defaulted_descriptorGVwalker);
  goto I0;
}
I0:

{
  D T0;

  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:97
  T0 = KPadd_classVKeI(&KLwalker_classGVwalker);
  goto I3;
}
I3:

  return;
}

/* USER INIT CODE */

void _Init_walker__X_class_for_user () {
{
  D T0;

  // /Users/bruce/Development/dylan/opendylan/sources/lib/walker/class.dylan:111
  T0 = KPadd_a_methodVKnI(&KinitializeVKd, &KinitializeVKdMwalkerM1, &Kwalker_libraryYdylan_userVwalker, &KPfalseVKi, &KPfalseVKi, &KPfalseVKi);
  goto I8;
}
I8:

  return;
}


/* eof */
