#include "opendylan/run-time.h"

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

/* Typedefs for referenced classes */

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

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

typedef struct {
  dylan_value wrapper;
} _KLobjectGVKd;

typedef struct {
  dylan_value wrapper;
} _KLunboundGVKe;

typedef struct {
  dylan_value wrapper;
} _KLbooleanGVKd;

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

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

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

#define  define__KLbyte_stringGVKd(nrepeated) \
  typedef struct { \
    dylan_value wrapper; \
    dylan_value size_; \
    char string_element_[nrepeated+1]; \
  } _KLbyte_stringGVKd_##nrepeated;
define__KLbyte_stringGVKd(30);
define__KLbyte_stringGVKd(7);
define__KLbyte_stringGVKd(9);
define__KLbyte_stringGVKd(23);
define__KLbyte_stringGVKd(19);
define__KLbyte_stringGVKd(25);
define__KLbyte_stringGVKd(27);
define__KLbyte_stringGVKd(146);
define__KLbyte_stringGVKd(114);
define__KLbyte_stringGVKd(32);
define__KLbyte_stringGVKd(31);
define__KLbyte_stringGVKd(37);
define__KLbyte_stringGVKd(43);
define__KLbyte_stringGVKd(1);
define__KLbyte_stringGVKd(70);
define__KLbyte_stringGVKd(2);
define__KLbyte_stringGVKd(0);

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

typedef struct {
  dylan_value wrapper;
  dylan_value instanceQ_iep_;
  dylan_value subclass_class_;
} _KLsubclassGVKe;

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

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 xep_;
  dylan_value function_signature_;
  dylan_value mep_;
} _KLsimple_methodGVKe;

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

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

typedef struct {
  dylan_value wrapper;
  dylan_value xep_;
} _KLmethodGVKd;

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

typedef struct {
  dylan_value wrapper;
  dylan_value gf_cache_info_users_;
  dylan_value simple_typechecked_gf_cache_info_entries_;
  dylan_value simple_typechecked_gf_cache_info_argmask_;
} _KLsimple_typechecked_gf_cache_infoGVKg;

typedef struct {
  dylan_value wrapper;
  dylan_value properties_;
  dylan_value engine_node_callback_;
  dylan_value engine_node_entry_point_;
  dylan_value cache_header_engine_node_next_;
  dylan_value cache_header_engine_node_parent_;
} _KLcache_header_engine_nodeGVKg;

typedef struct {
  dylan_value wrapper;
  dylan_value gf_cache_info_users_;
} _KLgf_cache_infoGVKg;

typedef struct {
  dylan_value wrapper;
  dylan_value properties_;
  dylan_value engine_node_callback_;
  dylan_value engine_node_entry_point_;
  dylan_value monomorphic_by_class_discriminator_key_;
  dylan_value monomorphic_by_class_discriminator_next_;
} _KLmonomorphic_by_class_discriminatorGVKg;

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

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 properties_;
  dylan_value engine_node_callback_;
  dylan_value engine_node_entry_point_;
  dylan_value if_type_discriminator_type_;
  dylan_value if_type_discriminator_then_;
  dylan_value if_type_discriminator_else_;
} _KLif_type_discriminatorGVKg;

typedef struct {
  dylan_value wrapper;
  dylan_value properties_;
  dylan_value engine_node_callback_;
  dylan_value engine_node_entry_point_;
  dylan_value typecheck_discriminator_type_;
  dylan_value typecheck_discriminator_next_;
} _KLtypecheck_discriminatorGVKg;

typedef struct {
  dylan_value wrapper;
  dylan_value properties_;
  dylan_value engine_node_callback_;
  dylan_value engine_node_entry_point_;
  dylan_value singleton_discriminator_table_;
  dylan_value singleton_discriminator_default_;
} _KLsingleton_discriminatorGVKg;

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

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

typedef struct {
  dylan_value wrapper;
  dylan_value Pds_gf_;
  dylan_value Pds_parent_;
  dylan_value Pds_args_;
  dylan_value Pds_argnum_set_;
  dylan_value Pds_args_to_check_first_;
  dylan_value Pds_headed_methods_;
  dylan_value Pds_cache_;
  dylan_value Pds_result_;
  dylan_value Pds_conditions_;
  dylan_value Pds_argtypes_;
} _KLdispatch_stateGYdispatch_engine_internalVdylan;

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

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

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 properties_;
  dylan_value engine_node_callback_;
  dylan_value engine_node_entry_point_;
} _KLterminal_engine_nodeGVKg;

typedef struct {
  dylan_value wrapper;
} _KLintegerGVKd;

typedef struct {
  dylan_value wrapper;
  dylan_value properties_;
  dylan_value engine_node_callback_;
  dylan_value engine_node_entry_point_;
  dylan_value cache_header_engine_node_next_;
  dylan_value cache_header_engine_node_parent_;
  dylan_value profiling_call_site_cache_header_engine_node_count_1_;
  dylan_value profiling_call_site_cache_header_engine_node_count_2_;
  dylan_value profiling_call_site_cache_header_engine_node_id_;
  dylan_value profiling_call_site_cache_header_engine_node_library_;
} _KLprofiling_call_site_cache_header_engine_nodeGVKg;

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

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

typedef struct {
  dylan_value wrapper;
} _KLwarningGVKd;

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

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 slot_descriptor_properties_;
  dylan_value init_data_slot_;
  dylan_value slot_owner_;
  dylan_value init_keyword_;
  dylan_value slot_getter_;
  dylan_value slot_setter_;
  dylan_value slot_type_;
} _KLinstance_slot_descriptorGVKe;

typedef struct {
  dylan_value wrapper;
} _KLsequenceGVKd;

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

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

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_;
} _KLgeneric_functionGVKd;

typedef struct {
  dylan_value wrapper;
} _KLserious_conditionGVKd;

typedef struct {
  dylan_value wrapper;
} _KLerrorGVKd;

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

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_;
} _KLtypeGVKd;

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

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

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

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_;
} _KLslot_descriptorGVKe;

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

typedef struct {
  dylan_value wrapper;
  dylan_value properties_;
  dylan_value engine_node_callback_;
  dylan_value engine_node_entry_point_;
  dylan_value cache_header_engine_node_next_;
  dylan_value cache_header_engine_node_parent_;
} _KLsimple_typechecked_cache_header_engine_nodeGVKg;

typedef struct {
  dylan_value wrapper;
  dylan_value properties_;
  dylan_value engine_node_callback_;
  dylan_value engine_node_entry_point_;
  dylan_value cache_header_engine_node_next_;
  dylan_value cache_header_engine_node_parent_;
} _KLcommon_root_cache_header_engine_nodeGVKg;

typedef struct {
  dylan_value wrapper;
  dylan_value properties_;
  dylan_value engine_node_callback_;
  dylan_value engine_node_entry_point_;
  dylan_value cache_header_engine_node_next_;
  dylan_value cache_header_engine_node_parent_;
} _KLsimple_call_site_cache_header_engine_nodeGVKg;


/* Typedefs for defined classes */

typedef struct {
  dylan_value wrapper;
  dylan_value condition_format_string_;
  dylan_value condition_format_arguments_;
  dylan_value ambiguous_methods_generic_;
  dylan_value ambiguous_methods_ordered_;
  dylan_value ambiguous_methods_ambiguous_;
  dylan_value ambiguous_methods_arguments_;
} _KLambiguous_methods_warningGVKg;

typedef struct {
  dylan_value wrapper;
  dylan_value condition_format_string_;
  dylan_value condition_format_arguments_;
  dylan_value ambiguous_methods_generic_;
  dylan_value ambiguous_methods_ordered_;
  dylan_value ambiguous_methods_ambiguous_;
  dylan_value ambiguous_methods_arguments_;
} _KLambiguous_methodsGVKe;

typedef struct {
  dylan_value wrapper;
  dylan_value condition_format_string_;
  dylan_value condition_format_arguments_;
  dylan_value ambiguous_methods_generic_;
  dylan_value ambiguous_methods_ordered_;
  dylan_value ambiguous_methods_ambiguous_;
  dylan_value ambiguous_methods_arguments_;
} _KLambiguous_methods_errorGVKg;


/* Referenced object declarations */

extern _KLclassGVKd KLclassGVKd;
extern _KLmm_wrapperGVKi_0 KLclassGVKdW;
extern _KLclassGVKd KLmm_wrapperGVKi;
extern _KLmm_wrapperGVKi_1 KLmm_wrapperGVKiW;
extern _KLclassGVKd KLobjectGVKd;
extern _KLmm_wrapperGVKi_0 KLobjectGVKdW;
extern _KLunboundGVKe KPunboundVKi;
extern _KLclassGVKd KLunboundGVKe;
extern _KLmm_wrapperGVKi_0 KLunboundGVKeW;
extern _KLbooleanGVKd KPtrueVKi;
extern _KLclassGVKd KLbooleanGVKd;
extern _KLmm_wrapperGVKi_0 KLbooleanGVKdW;
extern _KLbooleanGVKd KPfalseVKi;
extern _KLempty_listGVKd KPempty_listVKi;
extern _KLclassGVKd KLempty_listGVKd;
extern _KLmm_wrapperGVKi_0 KLempty_listGVKdW;
extern _KLmm_wrapperGVKi_0 KLpairGVKdW;
extern _KLclassGVKd KLlistGVKd;
extern _KLmm_wrapperGVKi_0 KLlistGVKdW;
dylan_value KPmethod_number_requiredVKgI (dylan_value);
dylan_value KPmethod_specializerVKgI (dylan_value, dylan_value);
extern _KLclassGVKd KLsymbolGVKd;
extern _KLmm_wrapperGVKi_0 KLsymbolGVKdW;
extern _KLclassGVKd KLbyte_stringGVKd;
extern _KLmm_wrapperGVKi_0 KLbyte_stringGVKdW;
extern _KLclassGVKd KLsingletonGVKd;
extern _KLmm_wrapperGVKi_0 KLsingletonGVKdW;
extern _KLclassGVKd KLsubclassGVKe;
extern _KLmm_wrapperGVKi_0 KLsubclassGVKeW;
dylan_value KsubtypeQVKdMM11I (dylan_value class_1_, dylan_value class_2_);
dylan_value Kobject_classVKdI (dylan_value);
dylan_value Kgrounded_subtypeQVKeI (dylan_value type1_, dylan_value type2_);
extern _KLclassGVKd KLsimple_object_vectorGVKd;
extern _KLmm_wrapperGVKi_0 KLsimple_object_vectorGVKdW;
dylan_value KelementVKdMM3I (dylan_value vector_, dylan_value index_, dylan_value Urest_, dylan_value default_);
extern _KLsimple_object_vectorGVKd_0 KPempty_vectorVKi;
extern _KLsealed_generic_functionGVKe Kunsupplied_objectVKi;
extern _KLclassGVKd KLsealed_generic_functionGVKe;
extern _KLmm_wrapperGVKi_0 KLsealed_generic_functionGVKeW;
dylan_value KerrorVKdMM1I (dylan_value string_, dylan_value arguments_);
extern _KLfunction_classGVKi KLsimple_methodGVKe;
extern _KLclassGVKd KLfunction_classGVKi;
extern _KLmm_wrapperGVKi_0 KLfunction_classGVKiW;
extern _KLmm_wrapperGVKi_0 KLsimple_methodGVKeW;
extern _KLclassGVKd KLsignatureAvaluesGVKi;
extern _KLmm_wrapperGVKi_0 KLsignatureAvaluesGVKiW;
extern _KLclassGVKd KLmethodGVKd;
extern _KLmm_wrapperGVKi_0 KLmethodGVKdW;
extern _KLclassGVKd KLpairGVKd;
extern _KLclassGVKd KLsimple_typechecked_gf_cache_infoGVKg;
extern _KLmm_wrapperGVKi_0 KLsimple_typechecked_gf_cache_infoGVKgW;
extern _KLclassGVKd KLcache_header_engine_nodeGVKg;
extern _KLmm_wrapperGVKi_0 KLcache_header_engine_nodeGVKgW;
extern _KLclassGVKd KLgf_cache_infoGVKg;
extern _KLmm_wrapperGVKi_0 KLgf_cache_infoGVKgW;
extern _KLclassGVKd KLmonomorphic_by_class_discriminatorGVKg;
extern _KLmm_wrapperGVKi_0 KLmonomorphic_by_class_discriminatorGVKgW;
extern _KLclassGVKd KLclass_keyed_discriminatorGVKg;
extern _KLmm_wrapperGVKi_0 KLclass_keyed_discriminatorGVKgW;
dylan_value Kckd_sizeVKgI (dylan_value);
extern _KLincremental_generic_functionGVKe KLVKd;
extern _KLfunction_classGVKi KLincremental_generic_functionGVKe;
extern _KLmm_wrapperGVKi_0 KLincremental_generic_functionGVKeW;
dylan_value Kckd_refVKgI (dylan_value, dylan_value);
dylan_value Kckd_ref_setterVKgI (dylan_value, dylan_value, dylan_value);
dylan_value Kgrounded_class_keyed_discriminator_defaultVKgI (dylan_value);
dylan_value Kgrounded_class_keyed_discriminator_default_setterYdispatch_engine_internalVdylanI (dylan_value, dylan_value);
extern _KLclassGVKd KLif_type_discriminatorGVKg;
extern _KLmm_wrapperGVKi_0 KLif_type_discriminatorGVKgW;
extern _KLclassGVKd KLtypecheck_discriminatorGVKg;
extern _KLmm_wrapperGVKi_0 KLtypecheck_discriminatorGVKgW;
extern _KLclassGVKd KLsingleton_discriminatorGVKg;
extern _KLmm_wrapperGVKi_0 KLsingleton_discriminatorGVKgW;
extern _KLclassGVKd KLdiscriminatorGVKg;
extern _KLmm_wrapperGVKi_0 KLdiscriminatorGVKgW;
extern _KLclassGVKd KLsignatureGVKe;
extern _KLmm_wrapperGVKi_0 KLsignatureGVKeW;
extern _KLclassGVKd KLdispatch_stateGYdispatch_engine_internalVdylan;
extern _KLmm_wrapperGVKi_0 KLdispatch_stateGYdispatch_engine_internalVdylanW;
extern _KLclassGVKd KLfunctionGVKd;
extern _KLmm_wrapperGVKi_0 KLfunctionGVKdW;
dylan_value KEEVKdI (dylan_value x_, dylan_value y_);
extern _KLclassGVKd KLby_class_discriminatorGVKg;
extern _KLmm_wrapperGVKi_0 KLby_class_discriminatorGVKgW;
dylan_value Kckd_lookupYdispatch_engine_internalVdylanI (dylan_value, dylan_value);
extern _KLclassGVKd KLabsent_engine_nodeGVKg;
extern _KLmm_wrapperGVKi_0 KLabsent_engine_nodeGVKgW;
dylan_value Kadd_argnumYdispatch_engine_internalVdylanI (dylan_value, dylan_value);
dylan_value Kckd_addXYdispatch_engine_internalVdylanI (dylan_value, dylan_value, dylan_value);
dylan_value Ksingleton_discriminator_elementVKgI (dylan_value, dylan_value, dylan_value);
dylan_value Ksingleton_discriminator_element_setterVKgI (dylan_value, dylan_value, dylan_value);
dylan_value Kinstall_cache_header_engine_node_nextYdispatch_engine_internalVdylanI (dylan_value old_, dylan_value next_, dylan_value gf_);
extern _KLclassGVKd KLterminal_engine_nodeGVKg;
extern _KLmm_wrapperGVKi_0 KLterminal_engine_nodeGVKgW;
extern _KLclassGVKd KLintegerGVKd;
extern _KLmm_wrapperGVKi_0 KLintegerGVKdW;
extern _KLclassGVKd KLprofiling_call_site_cache_header_engine_nodeGVKg;
extern _KLmm_wrapperGVKi_0 KLprofiling_call_site_cache_header_engine_nodeGVKgW;
dylan_value Kbootstrap_typed_allocate_engine_nodeVKgI (dylan_value, dylan_value, dylan_value);
dylan_value KdispinapplicableYdispatch_engine_internalVdylanI (dylan_value);
dylan_value Kreconstruct_args_from_mepargsVKeI (dylan_value, dylan_value);
extern _KLsymbolGVKd KJarguments_;
extern _KLsymbolGVKd KJformat_string_;
extern _KLsymbolGVKd KJformat_arguments_;
extern _KLincremental_generic_functionGVKe KmakeVKd;
dylan_value KdispwarnYdispatch_engine_internalVdylanI (dylan_value, dylan_value);
dylan_value Kmake_ambiguous_methods_engine_nodeVKgI (dylan_value, dylan_value);
extern _KLclassGVKd KLaccessor_methodGVKe;
extern _KLmm_wrapperGVKi_0 KLaccessor_methodGVKeW;
dylan_value Kmake_slot_access_engine_nodeYdispatch_engine_internalVdylanI (dylan_value, dylan_value);
dylan_value Kmake_single_method_engine_nodeVKgI (dylan_value, dylan_value, dylan_value, dylan_value);
extern _KLsymbolGVKd KJordered_;
dylan_value Kmake_slot_accessing_next_method_chainVKgI (dylan_value, dylan_value);
extern _KLclassGVKd KLimplementation_classGVKe;
extern _KLmm_wrapperGVKi_0 KLimplementation_classGVKeW;
extern _KLclassGVKd KLconditionGVKd;
extern _KLmm_wrapperGVKi_0 KLconditionGVKdW;
extern _KLclassGVKd KLwarningGVKd;
extern _KLmm_wrapperGVKi_0 KLwarningGVKdW;
extern _KLclassGVKd KLsimple_conditionGVKe;
extern _KLmm_wrapperGVKi_0 KLsimple_conditionGVKeW;
extern _KLkeyword_methodGVKe Kdefault_class_constructorVKi;
extern _KLfunction_classGVKi KLkeyword_methodGVKe;
extern _KLmm_wrapperGVKi_0 KLkeyword_methodGVKeW;
extern _KLclassGVKd KLinstance_slot_descriptorGVKe;
extern _KLmm_wrapperGVKi_0 KLinstance_slot_descriptorGVKeW;
extern _KLclassGVKd KLsequenceGVKd;
extern _KLmm_wrapperGVKi_0 KLsequenceGVKdW;
extern _KLobject_signatureGVKe KDsignature_LobjectG_object_rest_value_1VKi;
extern _KLclassGVKd KLobject_signatureGVKe;
extern _KLmm_wrapperGVKi_0 KLobject_signatureGVKeW;
extern _KLabsent_engine_nodeGVKg RSINGULAR_Labsent_engine_nodeG;
extern _KLclassGVKd KLgetter_methodGVKi;
extern _KLmm_wrapperGVKi_0 KLgetter_methodGVKiW;
extern _KLfunction_classGVKi KLgeneric_functionGVKd;
extern _KLmm_wrapperGVKi_0 KLgeneric_functionGVKdW;
extern _KLclassGVKd KLserious_conditionGVKd;
extern _KLmm_wrapperGVKi_0 KLserious_conditionGVKdW;
extern _KLclassGVKd KLerrorGVKd;
extern _KLmm_wrapperGVKi_0 KLerrorGVKdW;
dylan_value Kgeneral_rcpl_class_instanceQVKiI (dylan_value obj_, dylan_value cls_);
extern _KLmoduleGVKe Kdylan_extensions_moduleYdylan_userVdylan;
extern _KLclassGVKd KLmoduleGVKe;
extern _KLmm_wrapperGVKi_0 KLmoduleGVKeW;
extern _KLincremental_generic_functionGVKe KinitializeVKd;
extern _KLbyte_stringGVKd_0 KPempty_stringVKi;
extern _KLclassGVKd KLkeyword_signatureAvaluesGVKi;
extern _KLmm_wrapperGVKi_0 KLkeyword_signatureAvaluesGVKiW;
extern _KLsimple_object_vectorGVKd_2 KDsignature_LclassG_typesVKi;
extern _KLsimple_object_vectorGVKd_256 KDsignature_LobjectG_typesVKi;
extern _KLinstance_slot_descriptorGVKe Kcondition_format_stringVKdHLsimple_conditionG;
extern _KLinstance_slot_descriptorGVKe Kcondition_format_argumentsVKdHLsimple_conditionG;
dylan_value Kclass_instanceQ_initialVKiI (dylan_value obj_, dylan_value cls_);
extern _KLmoduleGVKe Kdispatch_engine_moduleYdylan_userVdylan;
extern _KLclassGVKd KLtypeGVKd;
extern _KLmm_wrapperGVKi_0 KLtypeGVKdW;
extern _KLclassGVKd KLunionGVKe;
extern _KLmm_wrapperGVKi_0 KLunionGVKeW;
dylan_value KmakeVKdMM13I (dylan_value class_, dylan_value Urest_, dylan_value fill_, dylan_value size_);
extern _KLsealed_generic_functionGVKe Kfunction_signatureVKe;
extern _KLsealed_generic_functionGVKe Kkeyword_specifiersVKe;
dylan_value KmemberQVKdMM4I (dylan_value value_, dylan_value list_, dylan_value Urest_, dylan_value test_);
extern _KLsimple_methodGVKe KEEVKd;
dylan_value Kmake_by_class_discriminatorYdispatch_engine_internalVdylanI (dylan_value, dylan_value, dylan_value);
dylan_value Kmake_if_type_discriminatorVKgI (dylan_value, dylan_value, dylan_value, dylan_value, dylan_value);
dylan_value Kmake_typecheck_discriminatorVKgI (dylan_value, dylan_value, dylan_value, dylan_value);
extern _KLclassGVKd KLgetter_accessor_methodGVKe;
extern _KLmm_wrapperGVKi_0 KLgetter_accessor_methodGVKeW;
extern _KLclassGVKd KLsetter_accessor_methodGVKe;
extern _KLmm_wrapperGVKi_0 KLsetter_accessor_methodGVKeW;
extern _KLclassGVKd KLslot_descriptorGVKe;
extern _KLmm_wrapperGVKi_0 KLslot_descriptorGVKeW;
dylan_value Kconcrete_subtypeQVKeI (dylan_value type1_, dylan_value type2_, dylan_value dep_);
dylan_value Kunion_instanceQVKiI (dylan_value x_, dylan_value u_);
dylan_value Ksingleton_pointer_idQ_instanceQVKiI (dylan_value x_, dylan_value s_);
dylan_value Kgrounded_has_instancesQVKeI (dylan_value class_, dylan_value type_);
dylan_value Knext_free_argnumYdispatch_engine_internalVdylanI (dylan_value, dylan_value);
dylan_value Kargnum_consideredQYdispatch_engine_internalVdylanI (dylan_value, dylan_value);
dylan_value Kmake_by_singleton_class_discriminatorYdispatch_engine_internalVdylanI (dylan_value, dylan_value, dylan_value, dylan_value);
dylan_value Kmake_single_class_singleton_discriminatorVKgI (dylan_value, dylan_value, dylan_value);
extern _KLclassGVKd KLlimited_typeGVKe;
extern _KLmm_wrapperGVKi_0 KLlimited_typeGVKeW;
dylan_value Kdispatch_startYdispatch_engine_internalVdylanI (dylan_value);
dylan_value Kdispatch_start_setterYdispatch_engine_internalVdylanI (dylan_value, dylan_value);
extern _KLclassGVKd KLsimple_typechecked_cache_header_engine_nodeGVKg;
extern _KLmm_wrapperGVKi_0 KLsimple_typechecked_cache_header_engine_nodeGVKgW;
dylan_value Khandle_simple_typechecked_cache_headYdispatch_engine_internalVdylanI (dylan_value ds_, dylan_value cache_, dylan_value old_);
extern _KLclassGVKd KLcommon_root_cache_header_engine_nodeGVKg;
extern _KLmm_wrapperGVKi_0 KLcommon_root_cache_header_engine_nodeGVKgW;
dylan_value Khandle_simple_call_site_cache_headYdispatch_engine_internalVdylanI (dylan_value ds_, dylan_value cache_, dylan_value old_);
extern _KLclassGVKd KLsimple_call_site_cache_header_engine_nodeGVKg;
extern _KLmm_wrapperGVKi_0 KLsimple_call_site_cache_header_engine_nodeGVKgW;
dylan_value Khandle_profiling_call_site_cache_headYdispatch_engine_internalVdylanI (dylan_value ds_, dylan_value cache_, dylan_value old_);
dylan_value Khandle_unknown_cache_headYdispatch_engine_internalVdylanI (dylan_value ds_, dylan_value cache_, dylan_value old_);
dylan_value Kcache_header_puntYdispatch_engine_internalVdylanI (dylan_value ds_, dylan_value cache_, dylan_value e_);
dylan_value Kcompute_argument_precheck_maskYdispatch_engine_internalVdylanI (dylan_value ds_, dylan_value cache_);
extern _KLsimple_object_vectorGVKd_2 KDsignature_LsignatureG_typesVKi;
extern _KLsimple_object_vectorGVKd_16 KDsignature_LbooleanG_typesVKi;
extern _KLsimple_object_vectorGVKd_2 KDsignature_LtypeG_typesVKi;
extern _KLsimple_object_vectorGVKd_16 KDsignature_LlistG_typesVKi;
extern dylan_value Ddirect_object_mm_wrappersVKi;
extern dylan_value Dabsent_engine_nodeVKg;
extern dylan_value Tprofile_all_terminal_engine_nodesQTYdispatch_engine_internalVdylan;
extern dylan_value Tcall_site_caches_enabledQTYdispatch_engine_internalVdylan;

/* Defined object declarations */

dylan_value Kcompute_dispatch_engineYdispatch_engine_internalVdylanI (dylan_value);
dylan_value Kcompute_dispatch_from_rootYdispatch_engine_internalVdylanI (dylan_value, dylan_value);
dylan_value Kwalk_existing_dispatch_engineYdispatch_engine_internalVdylanI (dylan_value, dylan_value, dylan_value);
dylan_value Kcompute_headed_methodsYdispatch_engine_internalVdylanI (dylan_value);
dylan_value Ksame_specializerQVKgI (dylan_value, dylan_value);
extern _KLsimple_methodGVKe Kwalk_existing_dispatch_engineYdispatch_engine_internalVdylan;
dylan_value Ksubst_engine_node_1Ydispatch_engine_internalVdylanI (dylan_value, dylan_value, dylan_value);
dylan_value Kcompute_sorted_applicable_methodsVKgI (dylan_value, dylan_value);
dylan_value KPmethod_applicableQYdispatch_engine_internalVdylanI (dylan_value, dylan_value);
dylan_value Kcompute_sorted_applicable_methods_1Ydispatch_engine_internalVdylanI (dylan_value, dylan_value, dylan_value);
extern _KLsimple_methodGVKe KPorder_methodsYdispatch_engine_internalVdylan;
dylan_value KPorder_methodsYdispatch_engine_internalVdylanI (dylan_value, dylan_value, dylan_value);
static _KLsymbolGVKd KJE_;
dylan_value KPorder_specializersYdispatch_engine_internalVdylanI (dylan_value, dylan_value, dylan_value);
static _KLsymbolGVKd KJLG_;
static _KLbyte_stringGVKd_2 K15;
static _KLsymbolGVKd KJL_;
static _KLsymbolGVKd KJG_;
dylan_value KPclassLYdispatch_engine_internalVdylanI (dylan_value, dylan_value, dylan_value);
dylan_value KPorder_specializers_defaultYdispatch_engine_internalVdylanI (dylan_value, dylan_value);
static _KLbyte_stringGVKd_70 K20;
static _KLbyte_stringGVKd_1 K21;
static _KLbyte_stringGVKd_1 K22;
static _KLbyte_stringGVKd_1 K23;
static _KLsignatureAvaluesGVKi K24;
static _KLsimple_object_vectorGVKd_3 K25;
static _KLsimple_object_vectorGVKd_1 K26;
static dylan_value Kcheck_subsequent_ambiguitiesF30I (dylan_value, dylan_value, dylan_value, dylan_value, dylan_value);
static dylan_value Kmake_ambiguousF29I (dylan_value, dylan_value, dylan_value);
static dylan_value Kprecedes_allQF32I (dylan_value, dylan_value, dylan_value, dylan_value);
dylan_value Ksubst_engine_node_2Ydispatch_engine_internalVdylanI (dylan_value, dylan_value, dylan_value);
static _KLbyte_stringGVKd_43 K34;
static _KLsignatureGVKe K35;
static _KLsimple_object_vectorGVKd_3 K36;
dylan_value Kprune_methods_by_known_classYdispatch_engine_internalVdylanI (dylan_value, dylan_value, dylan_value);
dylan_value Kconsider_arg_discriminatedYdispatch_engine_internalVdylanI (dylan_value, dylan_value, dylan_value);
dylan_value Kcompute_subdiscriminator_for_argYdispatch_engine_internalVdylanI (dylan_value, dylan_value, dylan_value, dylan_value);
static _KLbyte_stringGVKd_37 K40;
static _KLbyte_stringGVKd_31 K41;
static _KLbyte_stringGVKd_32 K42;
dylan_value Kcompute_more_dispatch_engineYdispatch_engine_internalVdylanI (dylan_value);
dylan_value Kselect_next_arg_for_discriminationYdispatch_engine_internalVdylanI (dylan_value);
dylan_value Kcompute_discriminator_for_argYdispatch_engine_internalVdylanI (dylan_value, dylan_value);
dylan_value Kcompute_terminal_engine_nodeYdispatch_engine_internalVdylanI (dylan_value);
dylan_value Kdetermine_call_keywordsYdispatch_engine_internalVdylanI (dylan_value, dylan_value);
dylan_value Ktransmogrify_method_list_groundedYdispatch_engine_internalVdylanI (dylan_value, dylan_value, dylan_value, dylan_value, dylan_value);
extern _KLsimple_methodGVKe KPorder_methods_desperatelyYdispatch_engine_internalVdylan;
dylan_value KPorder_methods_desperatelyYdispatch_engine_internalVdylanI (dylan_value, dylan_value, dylan_value);
static _KLsymbolGVKd KJgeneric_;
static _KLsymbolGVKd KJambiguous_;
static _KLbyte_stringGVKd_114 K53;
extern _KLclassGVKd KLambiguous_methods_warningGVKg;
extern _KLmm_wrapperGVKi_0 KLambiguous_methods_warningGVKgW;
dylan_value Ktransmogrify_method_list_tail_groundedYdispatch_engine_internalVdylanI (dylan_value, dylan_value, dylan_value, dylan_value, dylan_value);
static _KLbyte_stringGVKd_146 K57;
static _KLimplementation_classGVKe K58;
static _KLsimple_object_vectorGVKd_6 K59;
extern _KLkeyword_methodGVKe KLambiguous_methods_warningGZ32ZconstructorYdispatch_engine_internalVdylanMM0;
dylan_value KLambiguous_methods_warningGZ32ZconstructorYdispatch_engine_internalVdylanMM0I (dylan_value, dylan_value, dylan_value, dylan_value, dylan_value, dylan_value, dylan_value, dylan_value);
static _KLsimple_object_vectorGVKd_2 K62;
static _KLsimple_object_vectorGVKd_6 K63;
extern _KLclassGVKd KLambiguous_methodsGVKe;
extern _KLmm_wrapperGVKi_0 KLambiguous_methodsGVKeW;
static _KLimplementation_classGVKe K66;
static _KLsimple_object_vectorGVKd_1 K67;
static _KLsimple_object_vectorGVKd_6 K68;
static _KLsimple_object_vectorGVKd_2 K69;
static _KLsimple_object_vectorGVKd_3 K70;
static _KLsimple_object_vectorGVKd_4 K71;
extern _KLinstance_slot_descriptorGVKe Kambiguous_methods_genericVKeHLambiguous_methodsG;
extern _KLinstance_slot_descriptorGVKe Kambiguous_methods_orderedVKeHLambiguous_methodsG;
extern _KLinstance_slot_descriptorGVKe Kambiguous_methods_ambiguousVKeHLambiguous_methodsG;
extern _KLinstance_slot_descriptorGVKe Kambiguous_methods_argumentsVKeHLambiguous_methodsG;
extern _KLsealed_generic_functionGVKe Kambiguous_methods_argumentsVKe;
extern _KLgetter_methodGVKi Kambiguous_methods_argumentsVKeMM0;
static _KLpairGVKd K78;
static _KLbyte_stringGVKd_27 K79;
extern _KLsealed_generic_functionGVKe Kambiguous_methods_ambiguousVKe;
extern _KLgetter_methodGVKi Kambiguous_methods_ambiguousVKeMM0;
static _KLpairGVKd K82;
static _KLbyte_stringGVKd_27 K83;
extern _KLsealed_generic_functionGVKe Kambiguous_methods_orderedVKe;
extern _KLgetter_methodGVKi Kambiguous_methods_orderedVKeMM0;
static _KLpairGVKd K86;
static _KLbyte_stringGVKd_25 K87;
extern _KLsealed_generic_functionGVKe Kambiguous_methods_genericVKe;
extern _KLgetter_methodGVKi Kambiguous_methods_genericVKeMM0;
static _KLpairGVKd K90;
static _KLbyte_stringGVKd_25 K91;
static _KLbyte_stringGVKd_19 K92;
static _KLbyte_stringGVKd_23 K93;
static _KLkeyword_signatureAvaluesGVKi K94;
static _KLsimple_object_vectorGVKd_12 K95;
static _KLsimple_object_vectorGVKd_6 K96;
static _KLsimple_object_vectorGVKd_1 K97;
static _KLbyte_stringGVKd_27 K98;
static _KLbyte_stringGVKd_9 K99;
static _KLbyte_stringGVKd_7 K100;
dylan_value KPorder_specializers_desperatelyYdispatch_engine_internalVdylanI (dylan_value, dylan_value, dylan_value);
static _KLbyte_stringGVKd_23 K102;
static _KLbyte_stringGVKd_30 K103;
dylan_value Kponder_this_argYdispatch_engine_internalVdylanI (dylan_value, dylan_value, dylan_value, dylan_value);
dylan_value Ksecondary_dispatch_specializerQYdispatch_engine_internalVdylanI (dylan_value, dylan_value);
static _KLunionGVKe K106;
static _KLsingletonGVKd K107;
dylan_value Kcompute_default_subdiscriminatorYdispatch_engine_internalVdylanI (dylan_value, dylan_value, dylan_value, dylan_value, dylan_value);
dylan_value Kponder_a_specializerYdispatch_engine_internalVdylanI (dylan_value, dylan_value, dylan_value, dylan_value, dylan_value);
static dylan_value KfooF111I (dylan_value, dylan_value, dylan_value, dylan_value, dylan_value, dylan_value, dylan_value);
static dylan_value KsubsumedQF113I (dylan_value, dylan_value);
dylan_value Khandle_standard_dispatch_missYdispatch_engine_internalVdylanI (dylan_value, dylan_value, dylan_value);
extern _KLsimple_methodGVKe Ksame_specializersQVKg;
dylan_value Ksame_specializersQVKgI (dylan_value, dylan_value);
static _KLsignatureAvaluesGVKi K117;
extern _KLsimple_methodGVKe Ksame_specializers_spreadQVKg;
dylan_value Ksame_specializers_spreadQVKgI (dylan_value req1_, dylan_value nreq1_, dylan_value req2_, dylan_value nreq2_);
static _KLsignatureAvaluesGVKi K120;
static _KLsimple_object_vectorGVKd_4 K121;
extern _KLsimple_methodGVKe Ksame_specializerQVKg;
static _KLsignatureAvaluesGVKi K123;
extern _KLclassGVKd KLambiguous_methods_errorGVKg;
extern _KLmm_wrapperGVKi_0 KLambiguous_methods_errorGVKgW;
static _KLimplementation_classGVKe K126;
extern _KLkeyword_methodGVKe KLambiguous_methods_errorGZ32ZconstructorYdispatch_engine_internalVdylanMM0;
dylan_value KLambiguous_methods_errorGZ32ZconstructorYdispatch_engine_internalVdylanMM0I (dylan_value, dylan_value, dylan_value, dylan_value, dylan_value, dylan_value, dylan_value, dylan_value);
static _KLsimple_object_vectorGVKd_2 K129;
static _KLsimple_object_vectorGVKd_7 K130;
static _KLkeyword_signatureAvaluesGVKi K131;
static _KLsimple_object_vectorGVKd_1 K132;
static _KLbyte_stringGVKd_25 K133;
extern _KLsimple_methodGVKe Kcompute_sorted_applicable_methodsVKg;
static _KLsignatureAvaluesGVKi K135;
static _KLsimple_object_vectorGVKd_2 K136;
static _KLpairGVKd K137;
static _KLpairGVKd K138;

/* Indirection variables */

static dylan_value IKJE_ = &KJE_;
static dylan_value IKJLG_ = &KJLG_;
static dylan_value IKJL_ = &KJL_;
static dylan_value IKJG_ = &KJG_;
static dylan_value IKJgeneric_ = &KJgeneric_;
static dylan_value IKJambiguous_ = &KJambiguous_;

/* Variables */

dylan_value ambiguous_methods_genericVKe = &Kambiguous_methods_genericVKe;
dylan_value ambiguous_methods_orderedVKe = &Kambiguous_methods_orderedVKe;
dylan_value ambiguous_methods_ambiguousVKe = &Kambiguous_methods_ambiguousVKe;
dylan_value ambiguous_methods_argumentsVKe = &Kambiguous_methods_argumentsVKe;
dylan_value walk_existing_dispatch_engineYdispatch_engine_internalVdylan = &Kwalk_existing_dispatch_engineYdispatch_engine_internalVdylan;
dylan_value compute_sorted_applicable_methodsVKg = &Kcompute_sorted_applicable_methodsVKg;
dylan_value Tgracefully_dispatch_to_ambiguous_methodsTVKg = &KPtrueVKi;
dylan_value Lambiguous_methodsGVKe = &KLambiguous_methodsGVKe;
dylan_value Lambiguous_methods_warningGVKg = &KLambiguous_methods_warningGVKg;
dylan_value Lambiguous_methods_errorGVKg = &KLambiguous_methods_errorGVKg;
dylan_value same_specializerQVKg = &Ksame_specializerQVKg;
dylan_value same_specializers_spreadQVKg = &Ksame_specializers_spreadQVKg;
dylan_value same_specializersQVKg = &Ksame_specializersQVKg;
dylan_value Tgracefully_ignore_duplicate_methodsTYdispatch_engine_internalVdylan = &KPtrueVKi;

/* Objects */

_KLsimple_methodGVKe Kwalk_existing_dispatch_engineYdispatch_engine_internalVdylan = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_3,
  &K35,
  &Kwalk_existing_dispatch_engineYdispatch_engine_internalVdylanI
};

_KLsimple_methodGVKe KPorder_methodsYdispatch_engine_internalVdylan = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_3,
  &K24,
  &KPorder_methodsYdispatch_engine_internalVdylanI
};

static _KLsymbolGVKd KJE_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K23
};

static _KLsymbolGVKd KJLG_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K15
};

static _KLbyte_stringGVKd_2 K15 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 9,
  "<>"
};

static _KLsymbolGVKd KJL_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K22
};

static _KLsymbolGVKd KJG_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K21
};

static _KLbyte_stringGVKd_70 K20 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 281,
  "Can\'t order specializers - arg/reference class %= is neither %= nor %="
};

static _KLbyte_stringGVKd_1 K21 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 5,
  ">"
};

static _KLbyte_stringGVKd_1 K22 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 5,
  "<"
};

static _KLbyte_stringGVKd_1 K23 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 5,
  "="
};

static _KLsignatureAvaluesGVKi K24 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (dylan_value) 33555469,
  &K25,
  &K26
};

static _KLsimple_object_vectorGVKd_3 K25 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 13,
  &KLmethodGVKd,
  &KLmethodGVKd,
  &KLsimple_object_vectorGVKd
};

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

static _KLbyte_stringGVKd_43 K34 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 173,
  "Unhandled discriminator in substitution: %="
};

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

static _KLsimple_object_vectorGVKd_3 K36 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 13,
  &KLdispatch_stateGYdispatch_engine_internalVdylan,
  &KLobjectGVKd,
  &KLfunctionGVKd
};

static _KLbyte_stringGVKd_37 K40 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 149,
  "Hey, you\'re not supposed to get here!"
};

static _KLbyte_stringGVKd_31 K41 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 125,
  "Method list incorrectly pruned?"
};

static _KLbyte_stringGVKd_32 K42 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 129,
  "Fell through select cases on %=."
};

_KLsimple_methodGVKe KPorder_methods_desperatelyYdispatch_engine_internalVdylan = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_3,
  &K24,
  &KPorder_methods_desperatelyYdispatch_engine_internalVdylanI
};

static _KLsymbolGVKd KJgeneric_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K100
};

static _KLsymbolGVKd KJambiguous_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K99
};

static _KLbyte_stringGVKd_114 K53 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 457,
  "Method specificity of unorderable methods %= applying %= to %= was determined with arbitrary and capricious rules."
};

_KLclassGVKd KLambiguous_methods_warningGVKg = {
  &KLclassGVKdW /* wrapper */,
  &Kclass_instanceQ_initialVKiI,
  &K98,
  &K58,
  (dylan_value) 1,
  &Kdispatch_engine_moduleYdylan_userVdylan
};

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

static _KLbyte_stringGVKd_146 K57 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 585,
  "Applying %= to %=, ambiguous method ordering of group %= after successfully ordered methods %= was determined with arbitrary and capricious rules."
};

static _KLimplementation_classGVKe K58 = {
  &KLimplementation_classGVKeW /* wrapper */,
  (dylan_value) 477102105,
  &KLambiguous_methods_warningGVKg,
  &KLambiguous_methods_warningGVKgW,
  &KPfalseVKi,
  &K59,
  (dylan_value) 6289,
  &KLambiguous_methods_warningGZ32ZconstructorYdispatch_engine_internalVdylanMM0,
  &K62,
  &K63,
  (dylan_value) 21,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_listVKi,
  &KPempty_listVKi,
  &KPempty_listVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &K59,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi
};

static _KLsimple_object_vectorGVKd_6 K59 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 25,
  &Kcondition_format_stringVKdHLsimple_conditionG,
  &Kcondition_format_argumentsVKdHLsimple_conditionG,
  &Kambiguous_methods_genericVKeHLambiguous_methodsG,
  &Kambiguous_methods_orderedVKeHLambiguous_methodsG,
  &Kambiguous_methods_ambiguousVKeHLambiguous_methodsG,
  &Kambiguous_methods_argumentsVKeHLambiguous_methodsG
};

_KLkeyword_methodGVKe KLambiguous_methods_warningGZ32ZconstructorYdispatch_engine_internalVdylanMM0 = {
  &KLkeyword_methodGVKeW /* wrapper */,
  &rest_key_xep_8,
  &K94,
  &key_mep_2,
  &KLambiguous_methods_warningGZ32ZconstructorYdispatch_engine_internalVdylanMM0I,
  &K95
};

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

static _KLsimple_object_vectorGVKd_6 K63 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 25,
  &KLobjectGVKd,
  &KLconditionGVKd,
  &KLwarningGVKd,
  &KLsimple_conditionGVKe,
  &KLambiguous_methodsGVKe,
  &KLambiguous_methods_warningGVKg
};

_KLclassGVKd KLambiguous_methodsGVKe = {
  &KLclassGVKdW /* wrapper */,
  &Kgeneral_rcpl_class_instanceQVKiI,
  &K92,
  &K66,
  (dylan_value) 1,
  &Kdylan_extensions_moduleYdylan_userVdylan
};

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

static _KLimplementation_classGVKe K66 = {
  &KLimplementation_classGVKeW /* wrapper */,
  (dylan_value) 410255385,
  &KLambiguous_methodsGVKe,
  &KLambiguous_methodsGVKeW,
  &KPfalseVKi,
  &K59,
  (dylan_value) 6281,
  &Kdefault_class_constructorVKi,
  &K67,
  &K68,
  (dylan_value) 13,
  &K69,
  &K70,
  &KPempty_listVKi,
  &KPempty_listVKi,
  &K137,
  &KPempty_vectorVKi,
  &K71,
  &K59,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi
};

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

static _KLsimple_object_vectorGVKd_6 K68 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 25,
  &KLobjectGVKd,
  &KLconditionGVKd,
  &KLsimple_conditionGVKe,
  &KLambiguous_methodsGVKe,
  &KPfalseVKi,
  &KPfalseVKi
};

static _KLsimple_object_vectorGVKd_2 K69 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 9,
  (dylan_value) 17,
  (dylan_value) 21
};

static _KLsimple_object_vectorGVKd_3 K70 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 13,
  &KLserious_conditionGVKd,
  &KLerrorGVKd,
  &KLwarningGVKd
};

static _KLsimple_object_vectorGVKd_4 K71 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 17,
  &Kambiguous_methods_genericVKeHLambiguous_methodsG,
  &Kambiguous_methods_orderedVKeHLambiguous_methodsG,
  &Kambiguous_methods_ambiguousVKeHLambiguous_methodsG,
  &Kambiguous_methods_argumentsVKeHLambiguous_methodsG
};

_KLinstance_slot_descriptorGVKe Kambiguous_methods_genericVKeHLambiguous_methodsG = {
  &KLinstance_slot_descriptorGVKeW /* wrapper */,
  (dylan_value) 193,
  &KPfalseVKi,
  &KLambiguous_methodsGVKe,
  &KJgeneric_,
  &Kambiguous_methods_genericVKe,
  &KPfalseVKi,
  &KLgeneric_functionGVKd
};

_KLinstance_slot_descriptorGVKe Kambiguous_methods_orderedVKeHLambiguous_methodsG = {
  &KLinstance_slot_descriptorGVKeW /* wrapper */,
  (dylan_value) 157,
  &KPempty_listVKi,
  &KLambiguous_methodsGVKe,
  &KJordered_,
  &Kambiguous_methods_orderedVKe,
  &KPfalseVKi,
  &KLlistGVKd
};

_KLinstance_slot_descriptorGVKe Kambiguous_methods_ambiguousVKeHLambiguous_methodsG = {
  &KLinstance_slot_descriptorGVKeW /* wrapper */,
  (dylan_value) 193,
  &KPfalseVKi,
  &KLambiguous_methodsGVKe,
  &KJambiguous_,
  &Kambiguous_methods_ambiguousVKe,
  &KPfalseVKi,
  &KLlistGVKd
};

_KLinstance_slot_descriptorGVKe Kambiguous_methods_argumentsVKeHLambiguous_methodsG = {
  &KLinstance_slot_descriptorGVKeW /* wrapper */,
  (dylan_value) 193,
  &KPfalseVKi,
  &KLambiguous_methodsGVKe,
  &KJarguments_,
  &Kambiguous_methods_argumentsVKe,
  &KPfalseVKi,
  &KLsequenceGVKd
};

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

_KLgetter_methodGVKi Kambiguous_methods_argumentsVKeMM0 = {
  &KLgetter_methodGVKiW /* wrapper */,
  &slotacc_single_q_instance_getter_xep,
  &Kambiguous_methods_argumentsVKeHLambiguous_methodsG
};

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

static _KLbyte_stringGVKd_27 K79 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 109,
  "ambiguous-methods-arguments"
};

_KLsealed_generic_functionGVKe Kambiguous_methods_ambiguousVKe = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &KPfalseVKi,
  &K83,
  &K82,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLgetter_methodGVKi Kambiguous_methods_ambiguousVKeMM0 = {
  &KLgetter_methodGVKiW /* wrapper */,
  &slotacc_single_q_instance_getter_xep,
  &Kambiguous_methods_ambiguousVKeHLambiguous_methodsG
};

static _KLpairGVKd K82 = {
  &KLpairGVKdW /* wrapper */,
  &Kambiguous_methods_ambiguousVKeMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_27 K83 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 109,
  "ambiguous-methods-ambiguous"
};

_KLsealed_generic_functionGVKe Kambiguous_methods_orderedVKe = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &KPfalseVKi,
  &K87,
  &K86,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLgetter_methodGVKi Kambiguous_methods_orderedVKeMM0 = {
  &KLgetter_methodGVKiW /* wrapper */,
  &slotacc_single_q_instance_getter_xep,
  &Kambiguous_methods_orderedVKeHLambiguous_methodsG
};

static _KLpairGVKd K86 = {
  &KLpairGVKdW /* wrapper */,
  &Kambiguous_methods_orderedVKeMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_25 K87 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 101,
  "ambiguous-methods-ordered"
};

_KLsealed_generic_functionGVKe Kambiguous_methods_genericVKe = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &KPfalseVKi,
  &K91,
  &K90,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLgetter_methodGVKi Kambiguous_methods_genericVKeMM0 = {
  &KLgetter_methodGVKiW /* wrapper */,
  &slotacc_single_q_instance_getter_xep,
  &Kambiguous_methods_genericVKeHLambiguous_methodsG
};

static _KLpairGVKd K90 = {
  &KLpairGVKdW /* wrapper */,
  &Kambiguous_methods_genericVKeMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_25 K91 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 101,
  "ambiguous-methods-generic"
};

static _KLbyte_stringGVKd_19 K92 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 77,
  "<ambiguous-methods>"
};

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

static _KLkeyword_signatureAvaluesGVKi K94 = {
  &KLkeyword_signatureAvaluesGVKiW /* wrapper */,
  (dylan_value) 35390469,
  &KDsignature_LclassG_typesVKi,
  &K96,
  &KDsignature_LobjectG_typesVKi,
  &K97
};

static _KLsimple_object_vectorGVKd_12 K95 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 49,
  &KJformat_string_,
  &KPempty_stringVKi,
  &KJformat_arguments_,
  &KPempty_vectorVKi,
  &KJgeneric_,
  &KPunboundVKi,
  &KJordered_,
  &KPempty_listVKi,
  &KJambiguous_,
  &KPunboundVKi,
  &KJarguments_,
  &KPunboundVKi
};

static _KLsimple_object_vectorGVKd_6 K96 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 25,
  &KJformat_string_,
  &KJformat_arguments_,
  &KJgeneric_,
  &KJordered_,
  &KJambiguous_,
  &KJarguments_
};

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

static _KLbyte_stringGVKd_27 K98 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 109,
  "<ambiguous-methods-warning>"
};

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

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

static _KLbyte_stringGVKd_23 K102 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 93,
  "You shouldn\'t get here!"
};

static _KLbyte_stringGVKd_30 K103 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 121,
  "You shouldn\'t get here either!"
};

static _KLunionGVKe K106 = {
  &KLunionGVKeW /* wrapper */,
  &Kunion_instanceQVKiI,
  &K107,
  &KLtypeGVKd
};

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

_KLsimple_methodGVKe Ksame_specializersQVKg = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K117,
  &Ksame_specializersQVKgI
};

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

_KLsimple_methodGVKe Ksame_specializers_spreadQVKg = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_4,
  &K120,
  &Ksame_specializers_spreadQVKgI
};

static _KLsignatureAvaluesGVKi K120 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (dylan_value) 33555473,
  &K121,
  &KDsignature_LbooleanG_typesVKi
};

static _KLsimple_object_vectorGVKd_4 K121 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 17,
  &KLsimple_object_vectorGVKd,
  &KLintegerGVKd,
  &KLsimple_object_vectorGVKd,
  &KLintegerGVKd
};

_KLsimple_methodGVKe Ksame_specializerQVKg = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K123,
  &Ksame_specializerQVKgI
};

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

_KLclassGVKd KLambiguous_methods_errorGVKg = {
  &KLclassGVKdW /* wrapper */,
  &Kclass_instanceQ_initialVKiI,
  &K133,
  &K126,
  (dylan_value) 1,
  &Kdispatch_engine_moduleYdylan_userVdylan
};

_KLmm_wrapperGVKi_0 KLambiguous_methods_errorGVKgW = {
  &KLmm_wrapperGVKiW /* wrapper */,
  &K126,
  (dylan_value) 2049,
  25,
  33554439,
  (dylan_value) 1
};

static _KLimplementation_classGVKe K126 = {
  &KLimplementation_classGVKeW /* wrapper */,
  (dylan_value) 477102105,
  &KLambiguous_methods_errorGVKg,
  &KLambiguous_methods_errorGVKgW,
  &KPfalseVKi,
  &K59,
  (dylan_value) 6297,
  &KLambiguous_methods_errorGZ32ZconstructorYdispatch_engine_internalVdylanMM0,
  &K129,
  &K130,
  (dylan_value) 25,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_listVKi,
  &KPempty_listVKi,
  &KPempty_listVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &K59,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi
};

_KLkeyword_methodGVKe KLambiguous_methods_errorGZ32ZconstructorYdispatch_engine_internalVdylanMM0 = {
  &KLkeyword_methodGVKeW /* wrapper */,
  &rest_key_xep_8,
  &K131,
  &key_mep_2,
  &KLambiguous_methods_errorGZ32ZconstructorYdispatch_engine_internalVdylanMM0I,
  &K95
};

static _KLsimple_object_vectorGVKd_2 K129 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 9,
  &KLambiguous_methodsGVKe,
  &KLerrorGVKd
};

static _KLsimple_object_vectorGVKd_7 K130 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 29,
  &KLobjectGVKd,
  &KLconditionGVKd,
  &KLserious_conditionGVKd,
  &KLerrorGVKd,
  &KLsimple_conditionGVKe,
  &KLambiguous_methodsGVKe,
  &KLambiguous_methods_errorGVKg
};

static _KLkeyword_signatureAvaluesGVKi K131 = {
  &KLkeyword_signatureAvaluesGVKiW /* wrapper */,
  (dylan_value) 35390469,
  &KDsignature_LclassG_typesVKi,
  &K96,
  &KDsignature_LobjectG_typesVKi,
  &K132
};

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

static _KLbyte_stringGVKd_25 K133 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 101,
  "<ambiguous-methods-error>"
};

_KLsimple_methodGVKe Kcompute_sorted_applicable_methodsVKg = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K135,
  &Kcompute_sorted_applicable_methodsVKgI
};

static _KLsignatureAvaluesGVKi K135 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (dylan_value) 33556489,
  &K136,
  &KDsignature_LlistG_typesVKi
};

static _KLsimple_object_vectorGVKd_2 K136 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 9,
  &KLgeneric_functionGVKd,
  &KLsimple_object_vectorGVKd
};

static _KLpairGVKd K137 = {
  &KLpairGVKdW /* wrapper */,
  &KLambiguous_methods_errorGVKg,
  &K138
};

static _KLpairGVKd K138 = {
  &KLpairGVKdW /* wrapper */,
  &KLambiguous_methods_warningGVKg,
  &KPempty_listVKi
};

/* Code */

dylan_value Kcompute_dispatch_engineYdispatch_engine_internalVdylanI (dylan_value ds_) {
  dylan_value T2;
  dylan_value T3_0;
  dylan_value T4_0;
  dylan_value T5_0;
  dylan_value T6_0;
  dylan_value T7_0;
  dylan_value T8_0;
  dylan_value T9_0;
  dylan_value T10_0;
  dylan_value T11_0;
  dylan_value T12_0;
  dylan_value T13_0;
  dylan_value T14_0;
  dylan_value T15_0;
  dylan_value T16_0;
  dylan_value T17_0;
  dylan_value T18_0;
  dylan_value T19_0;
  dylan_value T20_0;
  dylan_value T21;
  dylan_value T22;
  dylan_value T23;
  dylan_value T24;
  dylan_value T25;
  dylan_value T26;
  dylan_value T27;
  dylan_value T28;
  dylan_value T29;
  dylan_value T30;
  _KLsimple_object_vectorGVKd_1 T31 = {&KLsimple_object_vectorGVKdW, (dylan_value) 5};
  dylan_value T32_0;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:71
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:77
  T21 = SLOT_VALUE_INITD(ds_, 6);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:78
  T22 = SLOT_VALUE(ds_, 1);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:80
  T2 = Tcall_site_caches_enabledQTYdispatch_engine_internalVdylan;
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:80
  if (T2 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:90
    T25 = primitive_instanceQ(T22,&KLgeneric_functionGVKd);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:90
    if (T25 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:92
      T8_0 = Khandle_standard_dispatch_missYdispatch_engine_internalVdylanI(ds_, T21, T22);
      T19_0 = T8_0;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:90
      T26 = primitive_instanceQ(T22,&KLsimple_typechecked_cache_header_engine_nodeGVKg);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:90
      if (T26 != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:94
        T9_0 = Khandle_simple_typechecked_cache_headYdispatch_engine_internalVdylanI(ds_, T21, T22);
        T18_0 = T9_0;
      } else {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:90
        T27 = primitive_instanceQ(T22,&KLcommon_root_cache_header_engine_nodeGVKg);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:90
        if (T27 != &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:96
          T10_0 = Khandle_simple_call_site_cache_headYdispatch_engine_internalVdylanI(ds_, T21, T22);
          T17_0 = T10_0;
        } else {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:90
          T28 = primitive_instanceQ(T22,&KLsimple_call_site_cache_header_engine_nodeGVKg);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:90
          if (T28 != &KPfalseVKi) {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:98
            T11_0 = Khandle_simple_call_site_cache_headYdispatch_engine_internalVdylanI(ds_, T21, T22);
            T16_0 = T11_0;
          } else {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:90
            T29 = primitive_instanceQ(T22,&KLprofiling_call_site_cache_header_engine_nodeGVKg);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:90
            if (T29 != &KPfalseVKi) {
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:100
              T12_0 = Khandle_profiling_call_site_cache_headYdispatch_engine_internalVdylanI(ds_, T21, T22);
              T15_0 = T12_0;
            } else {
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:90
              T30 = primitive_instanceQ(T22,&KLcache_header_engine_nodeGVKg);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:90
              if (T30 != &KPfalseVKi) {
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:102
                T13_0 = Khandle_unknown_cache_headYdispatch_engine_internalVdylanI(ds_, T21, T22);
                T14_0 = T13_0;
              } else {
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:90
                T31.vector_element_[0] = T22;
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:90
                T32_0 = KerrorVKdMM1I(&K42, &T31);
                T14_0 = T32_0;
              }
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:90
              T15_0 = T14_0;
            }
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:90
            T16_0 = T15_0;
          }
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:90
          T17_0 = T16_0;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:90
        T18_0 = T17_0;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:90
      T19_0 = T18_0;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:90
    T20_0 = T19_0;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:81
    T23 = primitive_instanceQ(T22,&KLcommon_root_cache_header_engine_nodeGVKg);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:81
    if (T23 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:83
      T3_0 = Khandle_simple_call_site_cache_headYdispatch_engine_internalVdylanI(ds_, T21, T22);
      T7_0 = T3_0;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:81
      T24 = primitive_instanceQ(T22,&KLcache_header_engine_nodeGVKg);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:81
      if (T24 != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:85
        T4_0 = Kcache_header_puntYdispatch_engine_internalVdylanI(ds_, T21, T22);
        T6_0 = T4_0;
      } else {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:87
        T5_0 = Khandle_standard_dispatch_missYdispatch_engine_internalVdylanI(ds_, T21, T22);
        T6_0 = T5_0;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:81
      T7_0 = T6_0;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:81
    T20_0 = T7_0;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:80
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:71
  MV_SET_COUNT(1);
  return(T20_0);
}

dylan_value Kcompute_dispatch_from_rootYdispatch_engine_internalVdylanI (dylan_value ds_, dylan_value parent_) {
  dylan_value oengine_;
  dylan_value nengine_;
  dylan_value T5_0;
  dylan_value T6;
  dylan_value T7;
  dylan_value T8;
  dylan_value T9;
  dylan_value T10;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:120
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:122
  oengine_ = Kdispatch_startYdispatch_engine_internalVdylanI(parent_);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:123
  nengine_ = Kwalk_existing_dispatch_engineYdispatch_engine_internalVdylanI(ds_, oengine_, &Kwalk_existing_dispatch_engineYdispatch_engine_internalVdylan);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:124
  T6 = KEEVKdI(oengine_, nengine_);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:124
  if (T6 == &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:125
    T7 = primitive_idQ(nengine_,oengine_);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:125
    if (T7 != &KPfalseVKi) {
      T8 = &KPfalseVKi;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:125
      T10 = primitive_idQ(oengine_,Dabsent_engine_nodeVKg);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:125
      T9 = primitive_not(T10);
      T8 = T9;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:125
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:125
    if (T8 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:125
      Ksubst_engine_node_1Ydispatch_engine_internalVdylanI(nengine_, oengine_, ds_);
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:125
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:126
    Kdispatch_start_setterYdispatch_engine_internalVdylanI(nengine_, parent_);
  }
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:124
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:128
  T5_0 = nengine_;
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:120
  MV_SET_COUNT(1);
  return(T5_0);
}

dylan_value Kwalk_existing_dispatch_engineYdispatch_engine_internalVdylanI (dylan_value ds_, dylan_value e_, dylan_value recurse_) {
  dylan_value eF3;
  dylan_value T4;
  dylan_value all_accounted_forQ_;
  dylan_value next_eF6;
  dylan_value T7;
  dylan_value T8;
  dylan_value T9;
  dylan_value T10;
  dylan_value new_eF11;
  dylan_value T12_0;
  dylan_value T13_0;
  dylan_value T14_0;
  dylan_value eF15;
  dylan_value eF16;
  dylan_value key_;
  dylan_value next_eF18;
  dylan_value new_eF19;
  dylan_value T20_0;
  dylan_value T21_0;
  dylan_value T22_0;
  dylan_value eF23;
  dylan_value testp_;
  dylan_value next_eF25;
  dylan_value new_eF26;
  dylan_value T27;
  dylan_value T28_0;
  dylan_value eF29;
  dylan_value T30;
  dylan_value new_eF31;
  dylan_value T32;
  dylan_value T33_0;
  dylan_value T34_0;
  dylan_value eF35;
  dylan_value lookup_;
  dylan_value next_eF37;
  dylan_value new_eF38;
  dylan_value T39_0;
  dylan_value T40_0;
  dylan_value T41_0;
  dylan_value T42_0;
  dylan_value T43_0;
  dylan_value eF44;
  dylan_value new_;
  dylan_value T46_0;
  dylan_value T47;
  dylan_value T48_0;
  dylan_value T49_0;
  dylan_value T50_0;
  dylan_value T51_0;
  dylan_value T52_0;
  dylan_value T53_0;
  dylan_value T54_0;
  dylan_value T55_0;
  dylan_value T56;
  dylan_value T57;
  DWORD T58;
  DWORD T59;
  DWORD T60;
  DWORD T61;
  dylan_value shiftF62;
  dylan_value T63;
  dylan_value T64;
  dylan_value T65;
  DWORD mxF66;
  DWORD T67;
  DWORD T68;
  DWORD T69;
  dylan_value T70;
  DWORD T71;
  DWORD T72;
  DWORD T73;
  DWORD T74;
  DWORD T75;
  DWORD T76;
  DWORD T77;
  DWORD T78;
  DWORD T79;
  dylan_value T80;
  dylan_value T81;
  dylan_value T82;
  DADDR T83;
  DWORD bitsF84;
  dylan_value T85;
  dylan_value T86;
  dylan_value mm_wrapperF87;
  dylan_value T88;
  dylan_value mm_wrapperF89;
  DADDR T90;
  dylan_value T91;
  DWORD T92;
  DWORD T93;
  DADDR T94;
  DADDR T95;
  dylan_value T96;
  dylan_value T97;
  dylan_value T98;
  dylan_value T99;
  dylan_value T100;
  dylan_value T101;
  dylan_value T102;
  dylan_value T103;
  dylan_value T104;
  dylan_value T105;
  dylan_value T106;
  dylan_value T107;
  DWORD T108;
  DWORD T109;
  DWORD T110;
  DWORD T111;
  dylan_value shiftF112;
  dylan_value T113;
  dylan_value T114;
  dylan_value T115;
  DWORD mxF116;
  DWORD T117;
  DWORD T118;
  DWORD T119;
  dylan_value T120;
  DWORD T121;
  DWORD T122;
  DWORD T123;
  DWORD T124;
  DWORD T125;
  DWORD T126;
  DWORD T127;
  DWORD T128;
  DWORD T129;
  dylan_value T130;
  dylan_value T131;
  dylan_value T132;
  dylan_value T133;
  dylan_value T134;
  DADDR T135;
  DWORD bitsF136;
  dylan_value T137;
  dylan_value T138;
  dylan_value mm_wrapperF139;
  dylan_value T140;
  dylan_value mm_wrapperF141;
  DADDR T142;
  dylan_value T143;
  DWORD T144;
  DWORD T145;
  DADDR T146;
  DADDR T147;
  dylan_value T148;
  dylan_value T149;
  DADDR T150;
  dylan_value T151;
  DWORD T152;
  DWORD T153;
  dylan_value T154;
  dylan_value T155;
  dylan_value T156;
  dylan_value T157;
  dylan_value T158;
  dylan_value T159;
  dylan_value T160;
  dylan_value T161;
  dylan_value T162;
  dylan_value T163;
  dylan_value T164;
  dylan_value T165;
  dylan_value T166;
  dylan_value T167;
  dylan_value T168;
  dylan_value T169;
  dylan_value T170;
  dylan_value T171;
  dylan_value T172;
  dylan_value T173;
  dylan_value T174_0;
  dylan_value T175;
  dylan_value T176;
  dylan_value T177;
  dylan_value T178;
  dylan_value T179;
  dylan_value T180;
  dylan_value T181;
  dylan_value T182;
  dylan_value T183;
  _KLsimple_object_vectorGVKd_1 T184 = {&KLsimple_object_vectorGVKdW, (dylan_value) 5};
  dylan_value T185_0;
  dylan_value T186;
  dylan_value T187;
  dylan_value T188;
  dylan_value T189;
  dylan_value T190;
  dylan_value T191;
  dylan_value T192;
  dylan_value T193;
  dylan_value T194;
  dylan_value T195;
  dylan_value T196;
  dylan_value T197_0;
  dylan_value T198;
  _KLsimple_object_vectorGVKd_1 T199 = {&KLsimple_object_vectorGVKdW, (dylan_value) 5};
  dylan_value T200_0;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:269
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:271
  T56 = primitive_instanceQ(e_,&KLby_class_discriminatorGVKg);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:271
  if (T56 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:273
    eF3 = e_;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:276
    T57 = SLOT_VALUE_INITD(eF3, 0);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:276
    T58 = primitive_cast_integer_as_raw(T57);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:276
    T59 = primitive_machine_word_shift_right(T58,6);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:276
    T60 = primitive_machine_word_logand(T59,-4);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:276
    T61 = primitive_machine_word_logior(T60,1);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:276
    shiftF62 = (dylan_value) 33;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:276
    mxF66 = 4;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:276
    T65 = shiftF62;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:276
    T69 = primitive_cast_integer_as_raw(T65);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:276
    T70 = primitive_machine_word_equalQ(T69,257);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:276
    if (T70 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:276
      shiftF62 = (dylan_value) 129;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:276
      T64 = shiftF62;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:276
      T68 = mxF66;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:276
      T73 = primitive_cast_integer_as_raw(T64);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:276
      T72 = primitive_machine_word_shift_right(T73,2);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:276
      T71 = primitive_machine_word_shift_left_signal_overflow(T68,T72);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:276
      mxF66 = T71;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:276
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:276
    T63 = shiftF62;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:276
    T67 = mxF66;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:276
    T76 = primitive_cast_integer_as_raw(T63);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:276
    T75 = primitive_machine_word_shift_right(T76,2);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:276
    T74 = primitive_machine_word_shift_left_signal_overflow(T67,T75);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:276
    T77 = primitive_machine_word_logior(T74,1);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:276
    T78 = primitive_machine_word_subtract_signal_overflow(T77,4);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:276
    T79 = primitive_machine_word_logand(T61,T78);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:276
    T80 = primitive_cast_raw_as_integer(T79);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:278
    T81 = SLOT_VALUE(ds_, 2);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:278
    T82 = REPEATED_DYLAN_VALUE_SLOT_VALUE_TAGGED(T81, 1, T79);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:279
    T4 = Kobject_classVKdI(T82);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:280
    all_accounted_forQ_ = Kprune_methods_by_known_classYdispatch_engine_internalVdylanI(T80, T4, ds_);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:281
    T83 = primitive_cast_pointer_as_raw(T82);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:281
    bitsF84 = primitive_machine_word_logand(T83,3);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:281
    T85 = primitive_machine_word_equalQ(bitsF84,0);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:281
    if (T85 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:281
      T86 = primitive_element(T82,0,0);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:281
      mm_wrapperF87 = T86;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:281
      T94 = primitive_cast_pointer_as_raw(mm_wrapperF87);
      T90 = T94;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:281
      T88 = primitive_element(Ddirect_object_mm_wrappersVKi,bitsF84,0);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:281
      mm_wrapperF89 = T88;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:281
      T95 = primitive_cast_pointer_as_raw(mm_wrapperF89);
      T90 = T95;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:281
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:281
    T92 = primitive_machine_word_logand(T90,-4);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:281
    T93 = primitive_machine_word_logior(T92,1);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:281
    T91 = primitive_cast_raw_as_integer(T93);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:282
    next_eF6 = Kckd_lookupYdispatch_engine_internalVdylanI(T91, eF3);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:283
    if (all_accounted_forQ_ != &KPfalseVKi) {
      T7 = all_accounted_forQ_;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:283
      T96 = primitive_instanceQ(next_eF6,&KLabsent_engine_nodeGVKg);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:283
      T97 = primitive_not(T96);
      T7 = T97;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:283
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:283
    if (T7 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:284
      T98 = SLOT_VALUE(ds_, 3);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:284
      Kadd_argnumYdispatch_engine_internalVdylanI(T80, T98);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:285
      Kconsider_arg_discriminatedYdispatch_engine_internalVdylanI(ds_, T80, T82);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:286
      T8 = CALL3(recurse_, ds_, next_eF6, recurse_);
      new_eF11 = T8;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:287
      T99 = primitive_idQ(recurse_,&Kwalk_existing_dispatch_engineYdispatch_engine_internalVdylan);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:283
      if (T99 != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:290
        T9 = Kcompute_subdiscriminator_for_argYdispatch_engine_internalVdylanI(ds_, T80, T82, T4);
        T10 = T9;
      } else {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:288
        T100 = KerrorVKdMM1I(&K40, &KPempty_vectorVKi);
        T10 = T100;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:283
      new_eF11 = T10;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:283
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:292
    T101 = KEEVKdI(next_eF6, new_eF11);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:292
    if (T101 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:296
      T13_0 = eF3;
      T14_0 = T13_0;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:294
      T102 = primitive_idQ(new_eF11,next_eF6);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:294
      if (T102 != &KPfalseVKi) {
        T103 = &KPfalseVKi;
      } else {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:294
        T105 = primitive_idQ(next_eF6,Dabsent_engine_nodeVKg);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:294
        T104 = primitive_not(T105);
        T103 = T104;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:294
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:294
      if (T103 != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:294
        Ksubst_engine_node_1Ydispatch_engine_internalVdylanI(new_eF11, next_eF6, ds_);
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:294
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:295
      T12_0 = Kckd_addXYdispatch_engine_internalVdylanI(eF3, T91, new_eF11);
      T14_0 = T12_0;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:292
    T55_0 = T14_0;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:271
    T106 = primitive_instanceQ(e_,&KLdiscriminatorGVKg);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:271
    if (T106 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:299
      eF15 = e_;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:300
      T107 = SLOT_VALUE_INITD(eF15, 0);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:300
      T108 = primitive_cast_integer_as_raw(T107);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:300
      T109 = primitive_machine_word_shift_right(T108,6);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:300
      T110 = primitive_machine_word_logand(T109,-4);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:300
      T111 = primitive_machine_word_logior(T110,1);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:300
      shiftF112 = (dylan_value) 33;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:300
      mxF116 = 4;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:300
      T115 = shiftF112;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:300
      T119 = primitive_cast_integer_as_raw(T115);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:300
      T120 = primitive_machine_word_equalQ(T119,257);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:300
      if (T120 != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:300
        shiftF112 = (dylan_value) 129;
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:300
        T114 = shiftF112;
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:300
        T118 = mxF116;
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:300
        T123 = primitive_cast_integer_as_raw(T114);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:300
        T122 = primitive_machine_word_shift_right(T123,2);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:300
        T121 = primitive_machine_word_shift_left_signal_overflow(T118,T122);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:300
        mxF116 = T121;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:300
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:300
      T113 = shiftF112;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:300
      T117 = mxF116;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:300
      T126 = primitive_cast_integer_as_raw(T113);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:300
      T125 = primitive_machine_word_shift_right(T126,2);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:300
      T124 = primitive_machine_word_shift_left_signal_overflow(T117,T125);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:300
      T127 = primitive_machine_word_logior(T124,1);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:300
      T128 = primitive_machine_word_subtract_signal_overflow(T127,4);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:300
      T129 = primitive_machine_word_logand(T111,T128);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:300
      T130 = primitive_cast_raw_as_integer(T129);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:302
      T131 = SLOT_VALUE(ds_, 2);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:302
      T132 = REPEATED_DYLAN_VALUE_SLOT_VALUE_TAGGED(T131, 1, T129);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:303
      Kconsider_arg_discriminatedYdispatch_engine_internalVdylanI(ds_, T130, T132);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:304
      T133 = primitive_instanceQ(eF15,&KLclass_keyed_discriminatorGVKg);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:304
      if (T133 != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:306
        eF16 = eF15;
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:307
        T134 = primitive_instanceQ(eF16,&KLby_class_discriminatorGVKg);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:307
        if (T134 != &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:308
          T135 = primitive_cast_pointer_as_raw(T132);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:308
          bitsF136 = primitive_machine_word_logand(T135,3);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:308
          T137 = primitive_machine_word_equalQ(bitsF136,0);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:308
          if (T137 != &KPfalseVKi) {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:308
            T138 = primitive_element(T132,0,0);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:308
            mm_wrapperF139 = T138;
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:308
            T146 = primitive_cast_pointer_as_raw(mm_wrapperF139);
            T142 = T146;
          } else {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:308
            T140 = primitive_element(Ddirect_object_mm_wrappersVKi,bitsF136,0);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:308
            mm_wrapperF141 = T140;
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:308
            T147 = primitive_cast_pointer_as_raw(mm_wrapperF141);
            T142 = T147;
          }
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:308
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:308
          T144 = primitive_machine_word_logand(T142,-4);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:308
          T145 = primitive_machine_word_logior(T144,1);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:308
          T143 = primitive_cast_raw_as_integer(T145);
          key_ = T143;
        } else {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:310
          T148 = SLOT_VALUE(T132, 2);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:310
          T149 = SLOT_VALUE_INITD(T148, 2);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:310
          T150 = primitive_cast_pointer_as_raw(T149);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:310
          T152 = primitive_machine_word_logand(T150,-4);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:310
          T153 = primitive_machine_word_logior(T152,1);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:310
          T151 = primitive_cast_raw_as_integer(T153);
          key_ = T151;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:307
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:312
        next_eF18 = Kckd_lookupYdispatch_engine_internalVdylanI(key_, eF16);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:313
        new_eF19 = CALL3(recurse_, ds_, next_eF18, recurse_);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:314
        T154 = KEEVKdI(next_eF18, new_eF19);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:314
        if (T154 != &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:318
          T21_0 = eF16;
          T22_0 = T21_0;
        } else {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:316
          T155 = primitive_idQ(new_eF19,next_eF18);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:316
          if (T155 != &KPfalseVKi) {
            T156 = &KPfalseVKi;
          } else {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:316
            T158 = primitive_idQ(next_eF18,Dabsent_engine_nodeVKg);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:316
            T157 = primitive_not(T158);
            T156 = T157;
          }
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:316
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:316
          if (T156 != &KPfalseVKi) {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:316
            Ksubst_engine_node_1Ydispatch_engine_internalVdylanI(new_eF19, next_eF18, ds_);
          }
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:316
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:317
          T20_0 = Kckd_addXYdispatch_engine_internalVdylanI(eF16, key_, new_eF19);
          T22_0 = T20_0;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:314
        T43_0 = T22_0;
      } else {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:304
        T159 = primitive_instanceQ(eF15,&KLif_type_discriminatorGVKg);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:304
        if (T159 != &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:321
          eF23 = eF15;
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:322
          T160 = SLOT_VALUE_INITD(eF23, 3);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:322
          testp_ = primitive_instanceQ(T132,T160);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:323
          if (testp_ != &KPfalseVKi) {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:323
            T161 = SLOT_VALUE_INITD(eF23, 4);
            next_eF25 = T161;
          } else {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:323
            T162 = SLOT_VALUE_INITD(eF23, 5);
            next_eF25 = T162;
          }
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:323
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:324
          new_eF26 = CALL3(recurse_, ds_, next_eF25, recurse_);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:325
          T27 = KEEVKdI(next_eF25, new_eF26);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:325
          if (T27 == &KPfalseVKi) {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:326
            T163 = primitive_idQ(new_eF26,next_eF25);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:326
            if (T163 != &KPfalseVKi) {
              T164 = &KPfalseVKi;
            } else {
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:326
              T166 = primitive_idQ(next_eF25,Dabsent_engine_nodeVKg);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:326
              T165 = primitive_not(T166);
              T164 = T165;
            }
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:326
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:326
            if (T164 != &KPfalseVKi) {
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:326
              Ksubst_engine_node_1Ydispatch_engine_internalVdylanI(new_eF26, next_eF25, ds_);
            }
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:326
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:327
            if (testp_ != &KPfalseVKi) {
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:329
              SLOT_VALUE_SETTER(new_eF26, eF23, 4);
            } else {
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:332
              SLOT_VALUE_SETTER(new_eF26, eF23, 5);
            }
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:327
          }
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:325
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:335
          T28_0 = eF23;
          T42_0 = T28_0;
        } else {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:304
          T167 = primitive_instanceQ(eF15,&KLtypecheck_discriminatorGVKg);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:304
          if (T167 != &KPfalseVKi) {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:337
            eF29 = eF15;
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:338
            T168 = SLOT_VALUE_INITD(eF29, 3);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:338
            T30 = primitive_instanceQ(T132,T168);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:338
            if (T30 != &KPfalseVKi) {
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:339
              T169 = SLOT_VALUE_INITD(eF29, 4);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:340
              new_eF31 = CALL3(recurse_, ds_, T169, recurse_);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:341
              T32 = KEEVKdI(T169, new_eF31);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:341
              if (T32 == &KPfalseVKi) {
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:343
                T170 = primitive_idQ(new_eF31,T169);
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:343
                if (T170 != &KPfalseVKi) {
                  T171 = &KPfalseVKi;
                } else {
                  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:343
                  T173 = primitive_idQ(T169,Dabsent_engine_nodeVKg);
                  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:343
                  T172 = primitive_not(T173);
                  T171 = T172;
                }
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:343
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:343
                if (T171 != &KPfalseVKi) {
                  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:343
                  Ksubst_engine_node_1Ydispatch_engine_internalVdylanI(new_eF31, T169, ds_);
                }
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:343
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:344
                SLOT_VALUE_SETTER(new_eF31, eF29, 4);
              }
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:341
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:346
              T33_0 = eF29;
              T34_0 = T33_0;
            } else {
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:348
              T174_0 = KerrorVKdMM1I(&K41, &KPempty_vectorVKi);
              T34_0 = T174_0;
            }
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:338
            T41_0 = T34_0;
          } else {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:304
            T175 = primitive_instanceQ(eF15,&KLsingleton_discriminatorGVKg);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:304
            if (T175 != &KPfalseVKi) {
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:351
              eF35 = eF15;
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:352
              T176 = SLOT_VALUE(ds_, 2);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:352
              T177 = REPEATED_DYLAN_VALUE_SLOT_VALUE_TAGGED(T176, 1, T129);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:353
              lookup_ = Ksingleton_discriminator_elementVKgI(eF35, T177, &KPfalseVKi);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:354
              if (lookup_ != &KPfalseVKi) {
                next_eF37 = lookup_;
              } else {
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:354
                T178 = SLOT_VALUE_INITD(eF35, 4);
                next_eF37 = T178;
              }
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:354
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:355
              new_eF38 = CALL3(recurse_, ds_, next_eF37, recurse_);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:356
              T179 = KEEVKdI(next_eF37, new_eF38);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:356
              if (T179 == &KPfalseVKi) {
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:357
                T180 = primitive_idQ(new_eF38,next_eF37);
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:357
                if (T180 != &KPfalseVKi) {
                  T181 = &KPfalseVKi;
                } else {
                  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:357
                  T183 = primitive_idQ(next_eF37,Dabsent_engine_nodeVKg);
                  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:357
                  T182 = primitive_not(T183);
                  T181 = T182;
                }
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:357
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:357
                if (T181 != &KPfalseVKi) {
                  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:357
                  Ksubst_engine_node_1Ydispatch_engine_internalVdylanI(new_eF38, next_eF37, ds_);
                }
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:357
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:358
                if (lookup_ != &KPfalseVKi) {
                  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:360
                  Ksingleton_discriminator_element_setterVKgI(new_eF38, eF35, T177);
                } else {
                  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:363
                  SLOT_VALUE_SETTER(new_eF38, eF35, 4);
                }
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:358
              }
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:356
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:366
              T39_0 = eF35;
              T40_0 = T39_0;
            } else {
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:304
              T184.vector_element_[0] = eF15;
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:304
              T185_0 = KerrorVKdMM1I(&K42, &T184);
              T40_0 = T185_0;
            }
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:304
            T41_0 = T40_0;
          }
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:304
          T42_0 = T41_0;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:304
        T43_0 = T42_0;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:304
      T54_0 = T43_0;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:271
      T186 = primitive_instanceQ(e_,&KLcache_header_engine_nodeGVKg);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:271
      if (T186 != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:369
        eF44 = e_;
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:370
        T187 = SLOT_VALUE_INITD(eF44, 3);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:371
        new_ = CALL3(recurse_, ds_, T187, recurse_);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:372
        T188 = KEEVKdI(T187, new_);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:372
        if (T188 == &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:373
          T189 = primitive_idQ(new_,T187);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:373
          if (T189 != &KPfalseVKi) {
            T190 = &KPfalseVKi;
          } else {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:373
            T192 = primitive_idQ(T187,Dabsent_engine_nodeVKg);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:373
            T191 = primitive_not(T192);
            T190 = T191;
          }
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:373
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:373
          if (T190 != &KPfalseVKi) {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:373
            Ksubst_engine_node_1Ydispatch_engine_internalVdylanI(new_, T187, ds_);
          }
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:373
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:374
          T193 = SLOT_VALUE(ds_, 0);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:374
          Kinstall_cache_header_engine_node_nextYdispatch_engine_internalVdylanI(new_, eF44, T193);
        }
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:372
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:376
        T46_0 = eF44;
        T53_0 = T46_0;
      } else {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:271
        T194 = primitive_instanceQ(e_,&KLmethodGVKd);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:271
        if (T194 != &KPfalseVKi) {
          T47 = T194;
        } else {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:271
          T195 = primitive_instanceQ(e_,&KLterminal_engine_nodeGVKg);
          T47 = T195;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:271
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:271
        if (T47 != &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:383
          T196 = primitive_idQ(recurse_,&Kwalk_existing_dispatch_engineYdispatch_engine_internalVdylan);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:383
          if (T196 != &KPfalseVKi) {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:385
            T198 = primitive_idQ(e_,Dabsent_engine_nodeVKg);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:383
            if (T198 != &KPfalseVKi) {
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:386
              T48_0 = Kcompute_more_dispatch_engineYdispatch_engine_internalVdylanI(ds_);
              T50_0 = T48_0;
            } else {
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:391
              T49_0 = e_;
              T50_0 = T49_0;
            }
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:383
            T51_0 = T50_0;
          } else {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:384
            T197_0 = KerrorVKdMM1I(&K40, &KPempty_vectorVKi);
            T51_0 = T197_0;
          }
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:383
          T52_0 = T51_0;
        } else {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:271
          T199.vector_element_[0] = e_;
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:271
          T200_0 = KerrorVKdMM1I(&K42, &T199);
          T52_0 = T200_0;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:271
        T53_0 = T52_0;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:271
      T54_0 = T53_0;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:271
    T55_0 = T54_0;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:271
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:269
  MV_SET_COUNT(1);
  return(T55_0);
}

dylan_value Kcompute_headed_methodsYdispatch_engine_internalVdylanI (dylan_value ds_) {
  dylan_value T1T, T1;
  dylan_value ptr_T, ptr_;
  dylan_value T3;
  dylan_value T4;
  dylan_value T5;
  dylan_value T6;
  dylan_value T7;
  dylan_value T8;
  dylan_value T9;
  dylan_value T10;
  dylan_value T11_0;
  dylan_value T12;
  dylan_value T13_0;
  dylan_value T14;
  dylan_value T15;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:9
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:11
  T5 = primitive_object_allocate_filled(3,&KLpairGVKdW,2,&KPunboundVKi,0,0,&KPunboundVKi);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:11
  SLOT_VALUE_SETTER(&KPfalseVKi, T5, 0);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:11
  SLOT_VALUE_SETTER(&KPempty_listVKi, T5, 1);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:12
  T6 = SLOT_VALUE(ds_, 0);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:12
  T7 = SLOT_VALUE_INITD(T6, 4);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:12
  T1T = T7;
  ptr_T = T5;
L0: ;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:12
    T1 = T1T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:12
    ptr_ = ptr_T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:12
    T8 = primitive_idQ(T1,&KPempty_listVKi);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:12
    if (T8 == &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:12
      T9 = SLOT_VALUE_INITD(T1, 0);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:13
      T10 = primitive_object_allocate_filled(3,&KLpairGVKdW,2,&KPunboundVKi,0,0,&KPunboundVKi);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:13
      SLOT_VALUE_SETTER(T9, T10, 0);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:13
      SLOT_VALUE_SETTER(&KPempty_listVKi, T10, 1);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:13
      SLOT_VALUE_SETTER(T10, ptr_, 1);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:12
      T12 = SLOT_VALUE_INITD(T1, 1);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:12
      T13_0 = T12;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:12
      T11_0 = T13_0;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:12
      T14 = T11_0;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:12
      T15 = SLOT_VALUE_INITD(ptr_, 1);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:12
      T3 = T15;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:12
      T1T = T14;
      ptr_T = T3;
      goto L0;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:12
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:12
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:15
  SLOT_VALUE_SETTER(T5, ds_, 5);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:15
  T4 = &KPfalseVKi;
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:9
  MV_SET_COUNT(0);
  return(T4);
}

dylan_value Ksame_specializerQVKgI (dylan_value s1_, dylan_value s2_) {
  dylan_value s1F2;
  dylan_value T3_0;
  dylan_value T4_0;
  dylan_value T5_0;
  dylan_value s1F6;
  dylan_value T7_0;
  dylan_value T8_0;
  dylan_value T9_0;
  dylan_value T10;
  dylan_value T11_0;
  dylan_value T12_0;
  dylan_value T13_0;
  dylan_value T14_0;
  dylan_value T15_0;
  dylan_value T16_0;
  dylan_value T17_0;
  dylan_value T18;
  dylan_value T19;
  dylan_value T20;
  dylan_value T21;
  dylan_value T22_0;
  dylan_value T23;
  dylan_value T24;
  dylan_value T25;
  dylan_value T26;
  dylan_value T27;
  dylan_value T28;
  dylan_value T29;
  dylan_value T30;
  dylan_value T31;
  dylan_value T32_0;
  dylan_value T33;
  dylan_value T34_0;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1200
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1201
  T20 = primitive_instanceQ(s1_,&KLclassGVKd);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1201
  if (T20 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1203
    T21 = primitive_idQ(s1_,s2_);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1203
    T22_0 = T21;
    T17_0 = T22_0;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1201
    T23 = primitive_instanceQ(s1_,&KLsingletonGVKd);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1201
    if (T23 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1205
      s1F2 = s1_;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1206
      T24 = primitive_instanceQ(s2_,&KLsingletonGVKd);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1206
      if (T24 != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/domain.dylan:358
        T18 = s2_;
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1208
        T25 = SLOT_VALUE_INITD(s1F2, 1);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1208
        T26 = SLOT_VALUE_INITD(T18, 1);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1208
        T3_0 = KEEVKdI(T25, T26);
        T5_0 = T3_0;
      } else {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1210
        T4_0 = &KPfalseVKi;
        T5_0 = T4_0;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1206
      T16_0 = T5_0;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1201
      T27 = primitive_instanceQ(s1_,&KLsubclassGVKe);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1201
      if (T27 != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1213
        s1F6 = s1_;
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1214
        T28 = primitive_instanceQ(s2_,&KLsubclassGVKe);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1214
        if (T28 != &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/domain.dylan:358
          T19 = s2_;
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1216
          T29 = SLOT_VALUE_INITD(s1F6, 1);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1216
          T30 = SLOT_VALUE_INITD(T19, 1);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1216
          T31 = primitive_idQ(T29,T30);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1216
          T32_0 = T31;
          T8_0 = T32_0;
        } else {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1218
          T7_0 = &KPfalseVKi;
          T8_0 = T7_0;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1214
        T15_0 = T8_0;
      } else {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1221
        T33 = primitive_idQ(s1_,s2_);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1221
        if (T33 != &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1221
          T9_0 = T33;
          T14_0 = T9_0;
        } else {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1221
          T10 = Kgrounded_subtypeQVKeI(s1_, s2_);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1221
          if (T10 != &KPfalseVKi) {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1221
            T11_0 = Kgrounded_subtypeQVKeI(s2_, s1_);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1221
            T34_0 = T11_0;
            T13_0 = T34_0;
          } else {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1221
            T12_0 = &KPfalseVKi;
            T13_0 = T12_0;
          }
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1221
          T14_0 = T13_0;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1221
        T15_0 = T14_0;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1201
      T16_0 = T15_0;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1201
    T17_0 = T16_0;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1201
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1200
  MV_SET_COUNT(1);
  return(T17_0);
}

dylan_value Ksubst_engine_node_1Ydispatch_engine_internalVdylanI (dylan_value new_e_, dylan_value old_e_, dylan_value ds_) {
  dylan_value cacheF4;
  DWORD iF5T, iF5;
  dylan_value T6;
  DWORD T7T, T7;
  dylan_value e_;
  dylan_value T9;
  dylan_value T10;
  dylan_value cacheF11;
  DWORD iF12T, iF12;
  dylan_value T13;
  dylan_value T14;
  dylan_value T15;
  dylan_value T16;
  dylan_value T17;
  dylan_value T18;
  dylan_value T19;
  dylan_value T20;
  dylan_value T21;
  DWORD T22;
  dylan_value T23;
  dylan_value T24;
  DWORD T25;
  dylan_value T26;
  dylan_value T27;
  DWORD T28;
  dylan_value T29;
  dylan_value T30;
  dylan_value T31;
  DWORD T32;
  dylan_value T33;
  dylan_value T34;
  dylan_value T35;
  DWORD T36;
  dylan_value T37;
  dylan_value T38;
  DWORD T39;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:158
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:159
  T18 = SLOT_VALUE_INITD(ds_, 6);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:160
  T19 = primitive_instanceQ(T18,&KLsimple_typechecked_gf_cache_infoGVKg);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:160
  if (T19 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:166
    cacheF4 = T18;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:167
    T20 = SLOT_VALUE_INITD(cacheF4, 1);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:168
    T21 = SLOT_VALUE_INITD(T20, 0);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:168
    T22 = primitive_cast_integer_as_raw(T21);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:168
    iF5T = 1;
  L0: ;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:168
      iF5 = iF5T;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:168
      T23 = primitive_machine_word_less_thanQ(iF5,T22);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:168
      if (T23 != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:169
        T24 = REPEATED_DYLAN_VALUE_SLOT_VALUE_TAGGED(T20, 1, iF5);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:169
        T6 = primitive_idQ(old_e_,T24);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:169
        if (T6 != &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:169
          REPEATED_DYLAN_VALUE_SLOT_VALUE_TAGGED_SETTER(new_e_, T20, 1, iF5);
        } else {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:169
          Ksubst_engine_node_2Ydispatch_engine_internalVdylanI(new_e_, old_e_, T24);
        }
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:169
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:168
        T25 = primitive_machine_word_add_signal_overflow(iF5,4);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:168
        iF5T = T25;
        goto L0;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:168
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:168
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:171
    T26 = SLOT_VALUE_INITD(cacheF4, 0);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:171
    T27 = SLOT_VALUE_INITD(T26, 0);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:171
    T28 = primitive_cast_integer_as_raw(T27);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:171
    T7T = 1;
  L1: ;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:171
      T7 = T7T;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:171
      T29 = primitive_machine_word_equalQ(T7,T28);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:171
      if (T29 == &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:171
        T30 = REPEATED_DYLAN_VALUE_SLOT_VALUE_TAGGED(T26, 1, T7);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:171
        e_ = T30;
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:172
        T31 = SLOT_VALUE_INITD(e_, 3);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:172
        T9 = primitive_idQ(T31,old_e_);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:172
        if (T9 != &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:173
          SLOT_VALUE_SETTER(new_e_, e_, 3);
        }
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:172
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:171
        T32 = primitive_machine_word_add_signal_overflow(T7,4);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:171
        T7T = T32;
        goto L1;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:171
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:171
      T10 = &KPfalseVKi;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:171
    T17 = T10;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:160
    T33 = primitive_instanceQ(T18,&KLgf_cache_infoGVKg);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:160
    if (T33 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:178
      cacheF11 = T18;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:179
      T34 = SLOT_VALUE_INITD(cacheF11, 0);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:180
      T35 = SLOT_VALUE_INITD(T34, 0);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:180
      T36 = primitive_cast_integer_as_raw(T35);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:180
      iF12T = 1;
    L2: ;
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:180
        iF12 = iF12T;
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:180
        T37 = primitive_machine_word_less_thanQ(iF12,T36);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:180
        if (T37 != &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:181
          T38 = REPEATED_DYLAN_VALUE_SLOT_VALUE_TAGGED(T34, 1, iF12);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:181
          T13 = primitive_idQ(old_e_,T38);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:181
          if (T13 != &KPfalseVKi) {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:181
            REPEATED_DYLAN_VALUE_SLOT_VALUE_TAGGED_SETTER(new_e_, T34, 1, iF12);
          } else {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:181
            Ksubst_engine_node_2Ydispatch_engine_internalVdylanI(new_e_, old_e_, T38);
          }
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:181
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:180
          T39 = primitive_machine_word_add_signal_overflow(iF12,4);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:180
          iF12T = T39;
          goto L2;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:180
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:180
        T14 = &KPfalseVKi;
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:180
      T16 = T14;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:183
      T15 = &KPfalseVKi;
      T16 = T15;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:160
    T17 = T16;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:160
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:158
  MV_SET_COUNT(0);
  return(T17);
}

dylan_value Kcompute_sorted_applicable_methodsVKgI (dylan_value gf_, dylan_value args_) {
  dylan_value ans_T, ans_;
  dylan_value T3T, T3;
  dylan_value T4;
  dylan_value T5;
  dylan_value T6_0;
  dylan_value T6_1;
  dylan_value T7;
  dylan_value T8;
  dylan_value T9;
  dylan_value T10;
  dylan_value T11_0;
  dylan_value T12;
  dylan_value T13_0;
  dylan_value T14;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:846
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:850
  T7 = SLOT_VALUE_INITD(gf_, 4);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:849
  ans_T = &KPempty_listVKi;
  T3T = T7;
L0: ;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:849
    ans_ = ans_T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:849
    T3 = T3T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:849
    T8 = primitive_idQ(T3,&KPempty_listVKi);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:849
    if (T8 == &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:849
      T9 = SLOT_VALUE_INITD(T3, 0);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:849
      T4 = KPmethod_applicableQYdispatch_engine_internalVdylanI(T9, args_);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:849
      if (T4 != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:849
        T10 = primitive_object_allocate_filled(3,&KLpairGVKdW,2,&KPunboundVKi,0,0,&KPunboundVKi);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:849
        SLOT_VALUE_SETTER(T9, T10, 0);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:849
        SLOT_VALUE_SETTER(ans_, T10, 1);
        T5 = T10;
      } else {
        T5 = ans_;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:849
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:849
      T12 = SLOT_VALUE_INITD(T3, 1);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:849
      T13_0 = T12;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:849
      T11_0 = T13_0;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:849
      T14 = T11_0;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:849
      ans_T = T5;
      T3T = T14;
      goto L0;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:849
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:849
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:849
  T6_0 = Kcompute_sorted_applicable_methods_1Ydispatch_engine_internalVdylanI(ans_, args_, &KPorder_methodsYdispatch_engine_internalVdylan);
  T6_1 = MV_GET_ELT(1);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:846
  MV_SET_ELT(1, T6_1);
  MV_SET_COUNT(2);
  return(T6_0);
}

dylan_value KPmethod_applicableQYdispatch_engine_internalVdylanI (dylan_value meth_, dylan_value args_) {
  dylan_value T2;
  dylan_value T3;
  dylan_value T4;
  dylan_value T5;
  dylan_value T6;
  dylan_value T7;
  dylan_value T8;
  dylan_value T9;
  dylan_value T10;
  DWORD T11;
  dylan_value T12;
  DWORD iF13T, iF13;
  dylan_value T14;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:815
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:818
  T2 = SLOT_VALUE_INITD(args_, 0);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:823
  iF13T = 1;
L0: ;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:823
    iF13 = iF13T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:822
    T14 = primitive_cast_raw_as_integer(iF13);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:820
    T9 = primitive_idQ(T14,T2);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:820
    if (T9 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:821
      T3 = &KPtrueVKi;
      MV_SET_ELT(0, &KPtrueVKi);
      MV_SET_COUNT(1);
      T8 = T3;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:822
      T10 = REPEATED_DYLAN_VALUE_SLOT_VALUE_TAGGED(args_, 1, iF13);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:822
      T4 = KPmethod_specializerVKgI(meth_, T14);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:822
      T5 = primitive_instanceQ(T10,T4);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:820
      if (T5 != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:823
        T11 = primitive_machine_word_add_signal_overflow(iF13,4);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:823
        iF13T = T11;
        goto L0;
        T7 = T12;
      } else {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:825
        T6 = &KPfalseVKi;
        MV_SET_ELT(0, &KPfalseVKi);
        MV_SET_COUNT(1);
        T7 = T6;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:820
      T8 = T7;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:820
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:823
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:815
  return(T8);
}

dylan_value Kcompute_sorted_applicable_methods_1Ydispatch_engine_internalVdylanI (dylan_value methlist_, dylan_value args_, dylan_value order_the_methods_) {
  dylan_value T3_0;
  dylan_value T3_1;
  dylan_value T4;
  dylan_value T5;
  dylan_value meth_;
  dylan_value T7;
  dylan_value T8;
  dylan_value T9;
  dylan_value indic_;
  dylan_value T11;
  dylan_value T12;
  dylan_value T13;
  dylan_value T14;
  dylan_value T15;
  dylan_value T16;
  dylan_value T17;
  dylan_value T18;
  dylan_value oprevF19T, oprevF19;
  dylan_value T20;
  dylan_value osubF21T, osubF21;
  dylan_value T22;
  dylan_value T23;
  dylan_value methlistF24T, methlistF24;
  dylan_value T25;
  dylan_value T26;
  dylan_value T27;
  dylan_value T28_0;
  dylan_value T28_1;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:857
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:860
  T4 = primitive_object_allocate_filled(3,&KLpairGVKdW,2,&KPunboundVKi,0,0,&KPunboundVKi);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:860
  SLOT_VALUE_SETTER(&KPfalseVKi, T4, 0);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:860
  SLOT_VALUE_SETTER(&KPempty_listVKi, T4, 1);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:861
  T5 = primitive_object_allocate_filled(3,&KLpairGVKdW,2,&KPunboundVKi,0,0,&KPunboundVKi);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:861
  SLOT_VALUE_SETTER(&KPfalseVKi, T5, 0);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:861
  SLOT_VALUE_SETTER(&KPempty_listVKi, T5, 1);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:914
  methlistF24T = methlist_;
L0: ;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:914
    methlistF24 = methlistF24T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:914
    T25 = methlistF24;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:863
    T7 = primitive_idQ(T25,&KPempty_listVKi);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:863
    if (T7 == &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:864
      T8 = SLOT_VALUE_INITD(T25, 0);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:864
      meth_ = T8;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:913
      T9 = SLOT_VALUE_INITD(T4, 1);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:905
      oprevF19T = T4;
      osubF21T = T9;
    L1: ;
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:905
        oprevF19 = oprevF19T;
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:905
        T20 = oprevF19;
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:905
        osubF21 = osubF21T;
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:905
        T22 = osubF21;
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:898
        T13 = primitive_idQ(T22,&KPempty_listVKi);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:898
        if (T13 != &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:899
          Kcheck_subsequent_ambiguitiesF30I(meth_, T5, order_the_methods_, args_, T20);
        } else {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:901
          T14 = SLOT_VALUE_INITD(T22, 0);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:901
          indic_ = CALL3(order_the_methods_, meth_, T14, args_);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:902
          T15 = primitive_idQ(indic_,IKJL_);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:902
          if (T15 != &KPfalseVKi) {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:903
            Kcheck_subsequent_ambiguitiesF30I(meth_, T5, order_the_methods_, args_, T20);
          } else {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:904
            T16 = primitive_idQ(indic_,IKJG_);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:902
            if (T16 != &KPfalseVKi) {
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:905
              T17 = SLOT_VALUE_INITD(T22, 1);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:905
              oprevF19T = T22;
              osubF21T = T17;
              goto L1;
            } else {
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:907
              T18 = primitive_idQ(indic_,IKJE_);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:907
              if (T18 != &KPfalseVKi) {
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:907
                T11 = Tgracefully_ignore_duplicate_methodsTYdispatch_engine_internalVdylan;
                T12 = T11;
              } else {
                T12 = &KPfalseVKi;
              }
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:907
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:907
              if (T12 == &KPfalseVKi) {
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:908
                Kmake_ambiguousF29I(meth_, T5, T20);
              }
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:907
            }
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:902
          }
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:902
        }
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:898
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:905
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:914
      T23 = SLOT_VALUE_INITD(T25, 1);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:914
      methlistF24T = T23;
      goto L0;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:863
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:914
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:918
  T26 = SLOT_VALUE_INITD(T4, 1);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:918
  T27 = SLOT_VALUE_INITD(T5, 1);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:918
  T28_0 = T26;
  T28_1 = T27;
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:857
  T3_0 = T28_0;
  T3_1 = T28_1;
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:857
  MV_SET_ELT(1, T3_1);
  MV_SET_COUNT(2);
  return(T3_0);
}

dylan_value KPorder_methodsYdispatch_engine_internalVdylanI (dylan_value meth1_, dylan_value meth2_, dylan_value args_) {
  dylan_value T3;
  dylan_value T4;
  dylan_value T5;
  dylan_value T6;
  dylan_value T7;
  dylan_value T8;
  dylan_value T9;
  dylan_value T10;
  dylan_value T11;
  dylan_value T12;
  dylan_value T13;
  dylan_value T14;
  dylan_value T15;
  DWORD T16;
  dylan_value T17;
  dylan_value T18;
  dylan_value stateF19;
  DWORD idxF20;
  dylan_value T21;
  dylan_value T22;
  dylan_value T23;
  dylan_value T24;
  dylan_value stateF25T, stateF25;
  DWORD idxF26T, idxF26;
  dylan_value T27;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:973
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:976
  T3 = KPmethod_number_requiredVKgI(meth1_);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:987
  stateF25T = IKJE_;
  idxF26T = 1;
L0: ;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:989
    stateF25 = stateF25T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:989
    idxF26 = idxF26T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:987
    stateF19 = stateF25;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:987
    idxF20 = idxF26;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:984
    T27 = primitive_cast_raw_as_integer(idxF20);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:978
    T14 = primitive_idQ(T27,T3);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:978
    if (T14 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:979
      T4 = stateF19;
      MV_SET_ELT(0, stateF19);
      MV_SET_COUNT(1);
      T13 = T4;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:981
      T5 = KPmethod_specializerVKgI(meth1_, T27);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:982
      T6 = KPmethod_specializerVKgI(meth2_, T27);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:984
      T15 = REPEATED_DYLAN_VALUE_SLOT_VALUE_TAGGED(args_, 1, idxF20);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:983
      T7 = KPorder_specializersYdispatch_engine_internalVdylanI(T5, T6, T15);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:985
      T16 = primitive_machine_word_add_signal_overflow(idxF20,4);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:986
      T17 = primitive_idQ(T7,IKJE_);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:986
      if (T17 != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:987
        stateF25T = stateF25;
        idxF26T = T16;
        goto L0;
        T12 = T18;
      } else {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:988
        T21 = primitive_idQ(T7,IKJLG_);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:988
        if (T21 != &KPfalseVKi) {
          T9 = &KPfalseVKi;
        } else {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:988
          T22 = primitive_idQ(stateF19,IKJE_);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:988
          if (T22 != &KPfalseVKi) {
            T8 = T22;
          } else {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:988
            T23 = primitive_idQ(T7,stateF19);
            T8 = T23;
          }
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:988
          T9 = T8;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:988
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:986
        if (T9 != &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:989
          stateF25T = T7;
          idxF26T = T16;
          goto L0;
          T11 = T24;
        } else {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:991
          T10 = IKJLG_;
          MV_SET_ELT(0, IKJLG_);
          MV_SET_COUNT(1);
          T11 = T10;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:986
        T12 = T11;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:986
      T13 = T12;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:978
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:987
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:973
  return(T13);
}

dylan_value KPorder_specializersYdispatch_engine_internalVdylanI (dylan_value t1_, dylan_value t2_, dylan_value arg_) {
  dylan_value T3;
  dylan_value argF4;
  dylan_value T5;
  dylan_value T6_0;
  dylan_value T6_1;
  dylan_value T7_0;
  dylan_value T7_1;
  dylan_value T8;
  dylan_value T9;
  dylan_value T10;
  dylan_value T11_0;
  dylan_value T11_1;
  dylan_value T12_0;
  dylan_value T12_1;
  dylan_value T13_0;
  dylan_value T13_1;
  dylan_value T14;
  dylan_value T15;
  dylan_value T16;
  dylan_value T17_0;
  dylan_value T17_1;
  dylan_value T18_0;
  dylan_value T18_1;
  dylan_value T19;
  dylan_value T20;
  dylan_value T21_0;
  dylan_value T21_1;
  dylan_value T22_0;
  dylan_value T22_1;
  dylan_value T23_0;
  dylan_value T23_1;
  dylan_value T24_0;
  dylan_value T24_1;
  dylan_value T25_0;
  dylan_value T25_1;
  dylan_value T26_0;
  dylan_value T26_1;
  dylan_value T27_0;
  dylan_value T27_1;
  dylan_value T28_0;
  dylan_value T28_1;
  dylan_value T29_0;
  dylan_value T29_1;
  dylan_value T30_0;
  dylan_value T30_1;
  dylan_value T31;
  dylan_value T32;
  dylan_value T33;
  dylan_value T34;
  dylan_value T35;
  dylan_value T36;
  dylan_value T37;
  dylan_value T38;
  dylan_value T39;
  dylan_value T40;
  dylan_value T41_0;
  dylan_value T41_1;
  dylan_value T42;
  dylan_value T43;
  dylan_value T44_0;
  dylan_value T44_1;
  dylan_value T45;
  dylan_value T46_0;
  dylan_value T46_1;
  dylan_value T47;
  dylan_value T48;
  dylan_value T49;
  dylan_value T50;
  dylan_value T51;
  dylan_value T52_0;
  dylan_value T52_1;
  dylan_value T53_0;
  dylan_value T53_1;
  dylan_value T54_0;
  dylan_value T54_1;
  dylan_value T55;
  dylan_value T56;
  dylan_value T57;
  dylan_value T58_0;
  dylan_value T58_1;
  dylan_value T59;
  dylan_value T60;
  dylan_value T61;
  dylan_value T62;
  dylan_value T63;
  dylan_value T64_0;
  dylan_value T64_1;
  dylan_value T65;
  dylan_value T66;
  dylan_value T67_0;
  dylan_value T67_1;
  dylan_value T68_0;
  dylan_value T68_1;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1143
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1145
  T40 = primitive_idQ(t1_,t2_);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1145
  if (T40 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1146
    T41_0 = IKJE_;
    T41_1 = t1_;
    T30_0 = T41_0;
    T30_1 = T41_1;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1147
    T42 = primitive_instanceQ(t1_,&KLsingletonGVKd);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1145
    if (T42 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:960
      T31 = t1_;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1148
      T43 = primitive_instanceQ(t2_,&KLsingletonGVKd);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1148
      if (T43 != &KPfalseVKi) {
        T3 = IKJE_;
      } else {
        T3 = IKJL_;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1148
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1148
      T44_0 = T3;
      T44_1 = T31;
      T29_0 = T44_0;
      T29_1 = T44_1;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1149
      T45 = primitive_instanceQ(t2_,&KLsingletonGVKd);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1145
      if (T45 != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:960
        T32 = t2_;
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1150
        T46_0 = IKJG_;
        T46_1 = T32;
        T28_0 = T46_0;
        T28_1 = T46_1;
      } else {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1151
        T47 = primitive_instanceQ(t1_,&KLsubclassGVKe);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1145
        if (T47 != &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:960
          T33 = t1_;
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1153
          T48 = SLOT_VALUE_INITD(T33, 1);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1154
          T49 = primitive_instanceQ(t2_,&KLsubclassGVKe);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1154
          if (T49 != &KPfalseVKi) {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:960
            T34 = t2_;
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1155
            argF4 = arg_;
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1157
            T50 = SLOT_VALUE_INITD(T34, 1);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1159
            T51 = primitive_idQ(T48,T50);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1158
            if (T51 != &KPfalseVKi) {
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1159
              T52_0 = IKJE_;
              T52_1 = T33;
              T7_0 = T52_0;
              T7_1 = T52_1;
            } else {
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1160
              T5 = KPclassLYdispatch_engine_internalVdylanI(T48, T50, argF4);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1158
              if (T5 != &KPfalseVKi) {
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1160
                T53_0 = IKJL_;
                T53_1 = T33;
                T6_0 = T53_0;
                T6_1 = T53_1;
              } else {
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1161
                T54_0 = IKJG_;
                T54_1 = T34;
                T6_0 = T54_0;
                T6_1 = T54_1;
              }
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1158
              T7_0 = T6_0;
              T7_1 = T6_1;
            }
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1158
            T13_0 = T7_0;
            T13_1 = T7_1;
          } else {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1163
            T55 = primitive_instanceQ(t2_,&KLclassGVKd);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1154
            if (T55 != &KPfalseVKi) {
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:960
              T35 = t2_;
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1165
              T56 = KsubtypeQVKdMM11I(&KLclassGVKd, T35);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1165
              if (T56 != &KPfalseVKi) {
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1166
                T57 = primitive_idQ(T48,&KLobjectGVKd);
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1166
                if (T57 != &KPfalseVKi) {
                  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1166
                  T8 = KPorder_specializersYdispatch_engine_internalVdylanI(&KLclassGVKd, T35, arg_);
                  T9 = T8;
                } else {
                  T9 = IKJL_;
                }
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1166
                T10 = T9;
              } else {
                T10 = IKJLG_;
              }
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1165
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1165
              T58_0 = T10;
              T58_1 = T33;
              T12_0 = T58_0;
              T12_1 = T58_1;
            } else {
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1171
              T11_0 = KPorder_specializers_defaultYdispatch_engine_internalVdylanI(T33, t2_);
              T11_1 = MV_GET_ELT(1);
              T12_0 = T11_0;
              T12_1 = T11_1;
            }
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1154
            T13_0 = T12_0;
            T13_1 = T12_1;
          }
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1154
          T27_0 = T13_0;
          T27_1 = T13_1;
        } else {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1173
          T59 = primitive_instanceQ(t2_,&KLsubclassGVKe);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1145
          if (T59 != &KPfalseVKi) {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:960
            T36 = t2_;
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1175
            T60 = primitive_instanceQ(t1_,&KLclassGVKd);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1175
            if (T60 != &KPfalseVKi) {
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:960
              T37 = t1_;
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1176
              T61 = SLOT_VALUE_INITD(T36, 1);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1178
              T62 = KsubtypeQVKdMM11I(&KLclassGVKd, T37);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1178
              if (T62 != &KPfalseVKi) {
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1179
                T63 = primitive_idQ(T61,&KLobjectGVKd);
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1179
                if (T63 != &KPfalseVKi) {
                  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1179
                  T14 = KPorder_specializersYdispatch_engine_internalVdylanI(T37, &KLclassGVKd, arg_);
                  T15 = T14;
                } else {
                  T15 = IKJG_;
                }
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1179
                T16 = T15;
              } else {
                T16 = IKJLG_;
              }
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1178
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1178
              T64_0 = T16;
              T64_1 = T36;
              T18_0 = T64_0;
              T18_1 = T64_1;
            } else {
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1184
              T17_0 = KPorder_specializers_defaultYdispatch_engine_internalVdylanI(t1_, T36);
              T17_1 = MV_GET_ELT(1);
              T18_0 = T17_0;
              T18_1 = T17_1;
            }
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1175
            T26_0 = T18_0;
            T26_1 = T18_1;
          } else {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1186
            T65 = primitive_instanceQ(t1_,&KLclassGVKd);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1145
            if (T65 != &KPfalseVKi) {
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:960
              T38 = t1_;
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1188
              T66 = primitive_instanceQ(t2_,&KLclassGVKd);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1188
              if (T66 != &KPfalseVKi) {
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:960
                T39 = t2_;
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1190
                T19 = Kobject_classVKdI(arg_);
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1190
                T20 = KPclassLYdispatch_engine_internalVdylanI(T38, T39, T19);
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1190
                if (T20 != &KPfalseVKi) {
                  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1190
                  T67_0 = IKJL_;
                  T67_1 = T38;
                  T21_0 = T67_0;
                  T21_1 = T67_1;
                } else {
                  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1190
                  T68_0 = IKJG_;
                  T68_1 = T39;
                  T21_0 = T68_0;
                  T21_1 = T68_1;
                }
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1190
                T23_0 = T21_0;
                T23_1 = T21_1;
              } else {
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1192
                T22_0 = KPorder_specializers_defaultYdispatch_engine_internalVdylanI(T38, t2_);
                T22_1 = MV_GET_ELT(1);
                T23_0 = T22_0;
                T23_1 = T22_1;
              }
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1188
              T25_0 = T23_0;
              T25_1 = T23_1;
            } else {
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1195
              T24_0 = KPorder_specializers_defaultYdispatch_engine_internalVdylanI(t1_, t2_);
              T24_1 = MV_GET_ELT(1);
              T25_0 = T24_0;
              T25_1 = T24_1;
            }
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1145
            T26_0 = T25_0;
            T26_1 = T25_1;
          }
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1145
          T27_0 = T26_0;
          T27_1 = T26_1;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1145
        T28_0 = T27_0;
        T28_1 = T27_1;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1145
      T29_0 = T28_0;
      T29_1 = T28_1;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1145
    T30_0 = T29_0;
    T30_1 = T29_1;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1145
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1143
  MV_SET_ELT(1, T30_1);
  MV_SET_COUNT(2);
  return(T30_0);
}

dylan_value KPclassLYdispatch_engine_internalVdylanI (dylan_value c1_, dylan_value c2_, dylan_value wrt_) {
  dylan_value returnPexit_6_;
  dylan_value T4;
  DWORD super_i_T, super_i_;
  dylan_value cF6;
  dylan_value T7_0;
  dylan_value T8_0;
  dylan_value T9;
  dylan_value T10;
  dylan_value T11;
  dylan_value T12;
  dylan_value T13;
  DWORD T14;
  dylan_value T15;
  dylan_value T16;
  dylan_value T17;
  _KLsimple_object_vectorGVKd_1 T18 = {&KLsimple_object_vectorGVKdW, (dylan_value) 5};
  dylan_value T19;
  dylan_value T20;
  _KLsimple_object_vectorGVKd_1 T21 = {&KLsimple_object_vectorGVKdW, (dylan_value) 5};
  dylan_value T22;
  DWORD T23;
  _KLsimple_object_vectorGVKd_3 T24 = {&KLsimple_object_vectorGVKdW, (dylan_value) 13};
  dylan_value T25;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:998
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1018
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1019
  T9 = SLOT_VALUE(wrt_, 2);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1019
  T10 = SLOT_VALUE_INITD(T9, 8);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1019
  T11 = SLOT_VALUE(wrt_, 2);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1019
  T12 = SLOT_VALUE_INITD(T11, 9);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1019
  T14 = primitive_cast_integer_as_raw(T12);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1019
  super_i_T = T14;
L0: ;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1019
    super_i_ = super_i_T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1019
    T15 = primitive_cast_raw_as_integer(super_i_);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1019
    T13 = primitive_machine_word_less_thanQ(super_i_,1);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1019
    if (T13 == &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1019
      T16 = KelementVKdMM3I(T10, T15, &KPempty_vectorVKi, &Kunsupplied_objectVKi);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1019
      cF6 = T16;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1020
      T17 = primitive_idQ(cF6,c1_);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1020
      if (T17 != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1021
        T18.vector_element_[0] = &KPtrueVKi;
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1021
        T19 = MV_SET_REST_AT(&T18, 0);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1021
        T7_0 = T19;
        goto L1;
      } else {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1022
        T20 = primitive_idQ(cF6,c2_);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1020
        if (T20 != &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1023
          T21.vector_element_[0] = &KPfalseVKi;
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1018
          T22 = MV_SET_REST_AT(&T21, 0);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1018
          T7_0 = T22;
          goto L1;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1020
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1020
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1019
      T23 = primitive_machine_word_add_signal_overflow(super_i_,0xFFFFFFFFFFFFFFFCL);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1019
      super_i_T = T23;
      goto L0;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1019
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1019
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1028
  T24.vector_element_[0] = wrt_;
  T24.vector_element_[1] = c1_;
  T24.vector_element_[2] = c2_;
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1028
  T25 = KerrorVKdMM1I(&K20, &T24);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1018
  T7_0 = T25;
  L1: ;
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1018
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:998
  T8_0 = T7_0;
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:998
  MV_SET_COUNT(1);
  return(T8_0);
}

dylan_value KPorder_specializers_defaultYdispatch_engine_internalVdylanI (dylan_value t1_, dylan_value t2_) {
  dylan_value T2;
  dylan_value T3;
  dylan_value T4;
  dylan_value T5;
  dylan_value T6_0;
  dylan_value T6_1;
  dylan_value T7_0;
  dylan_value T7_1;
  dylan_value T8_0;
  dylan_value T8_1;
  dylan_value T9_0;
  dylan_value T9_1;
  dylan_value T10_0;
  dylan_value T10_1;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1034
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1036
  T2 = Kgrounded_subtypeQVKeI(t1_, t2_);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1036
  if (T2 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1037
    T3 = Kgrounded_subtypeQVKeI(t2_, t1_);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1037
    if (T3 != &KPfalseVKi) {
      T4 = IKJE_;
    } else {
      T4 = IKJL_;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1037
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1037
    T8_0 = T4;
    T8_1 = t1_;
    T7_0 = T8_0;
    T7_1 = T8_1;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1038
    T5 = Kgrounded_subtypeQVKeI(t2_, t1_);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1036
    if (T5 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1039
      T9_0 = IKJG_;
      T9_1 = t2_;
      T6_0 = T9_0;
      T6_1 = T9_1;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1041
      T10_0 = IKJLG_;
      T10_1 = &KLobjectGVKd;
      T6_0 = T10_0;
      T6_1 = T10_1;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1036
    T7_0 = T6_0;
    T7_1 = T6_1;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1036
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1034
  MV_SET_ELT(1, T7_1);
  MV_SET_COUNT(2);
  return(T7_0);
}

static dylan_value Kcheck_subsequent_ambiguitiesF30I (dylan_value meth_, dylan_value implicit_argument_, dylan_value order_the_methods_, dylan_value args_, dylan_value oprev_) {
  dylan_value T5;
  dylan_value T6;
  dylan_value T7;
  dylan_value T8;
  dylan_value T9;
  dylan_value T10;
  dylan_value T11;
  dylan_value T12;
  dylan_value T13;
  dylan_value T14;
  dylan_value T15;
  dylan_value T16;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:890
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:891
  T11 = SLOT_VALUE_INITD(oprev_, 1);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:891
  T5 = Kprecedes_allQF32I(meth_, order_the_methods_, args_, T11);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:891
  T12 = primitive_not(T5);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:891
  if (T5 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:891
    T13 = SLOT_VALUE_INITD(implicit_argument_, 1);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:891
    T6 = Kprecedes_allQF32I(meth_, order_the_methods_, args_, T13);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:891
    T14 = primitive_not(T6);
    T7 = T14;
  } else {
    T7 = T12;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:891
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:891
  if (T7 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:892
    T8 = Kmake_ambiguousF29I(meth_, implicit_argument_, oprev_);
    T10 = T8;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:894
    T15 = SLOT_VALUE_INITD(oprev_, 1);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:894
    T16 = primitive_object_allocate_filled(3,&KLpairGVKdW,2,&KPunboundVKi,0,0,&KPunboundVKi);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:894
    SLOT_VALUE_SETTER(meth_, T16, 0);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:894
    SLOT_VALUE_SETTER(T15, T16, 1);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:894
    SLOT_VALUE_SETTER(T16, oprev_, 1);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:894
    T9 = &KPfalseVKi;
    T10 = T9;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:891
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:890
  MV_SET_COUNT(0);
  return(T10);
}

static dylan_value Kmake_ambiguousF29I (dylan_value meth_, dylan_value implicit_argument_, dylan_value headed_list_) {
  dylan_value T3;
  dylan_value T4;
  dylan_value t1_;
  dylan_value T6;
  dylan_value T7;
  dylan_value T8;
  dylan_value lF9T, lF9;
  dylan_value T10;
  dylan_value T11;
  dylan_value T12;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:865
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:874
  T4 = SLOT_VALUE_INITD(headed_list_, 1);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:871
  lF9T = T4;
L0: ;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:871
    lF9 = lF9T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:871
    T10 = lF9;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:867
    T6 = primitive_idQ(T10,&KPempty_listVKi);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:867
    if (T6 == &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:868
      T7 = SLOT_VALUE_INITD(T10, 1);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:868
      t1_ = T7;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:869
      T8 = SLOT_VALUE_INITD(implicit_argument_, 1);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:869
      SLOT_VALUE_SETTER(T8, T10, 1);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:870
      SLOT_VALUE_SETTER(T10, implicit_argument_, 1);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:871
      lF9T = t1_;
      goto L0;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:867
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:871
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:875
  SLOT_VALUE_SETTER(&KPempty_listVKi, headed_list_, 1);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:876
  T11 = SLOT_VALUE_INITD(implicit_argument_, 1);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:876
  T12 = primitive_object_allocate_filled(3,&KLpairGVKdW,2,&KPunboundVKi,0,0,&KPunboundVKi);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:876
  SLOT_VALUE_SETTER(meth_, T12, 0);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:876
  SLOT_VALUE_SETTER(T11, T12, 1);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:876
  SLOT_VALUE_SETTER(T12, implicit_argument_, 1);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:876
  T3 = &KPfalseVKi;
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:865
  MV_SET_COUNT(0);
  return(T3);
}

static dylan_value Kprecedes_allQF32I (dylan_value meth_, dylan_value order_the_methods_, dylan_value args_, dylan_value l_) {
  dylan_value T5;
  dylan_value T6;
  dylan_value T7;
  dylan_value T8;
  dylan_value T9;
  dylan_value T10;
  dylan_value T11;
  dylan_value T12;
  dylan_value T13;
  dylan_value T14;
  dylan_value lF15T, lF15;
  dylan_value T16;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:878
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:885
  lF15T = l_;
L0: ;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:885
    lF15 = lF15T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:885
    T16 = lF15;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:880
    T10 = primitive_idQ(T16,&KPempty_listVKi);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:880
    if (T10 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:881
      T5 = &KPtrueVKi;
      MV_SET_ELT(0, &KPtrueVKi);
      MV_SET_COUNT(1);
      T9 = T5;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:882
      T11 = SLOT_VALUE_INITD(T16, 0);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:882
      T6 = CALL3(order_the_methods_, meth_, T11, args_);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:882
      T12 = primitive_idQ(T6,IKJL_);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:880
      if (T12 != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:885
        T13 = SLOT_VALUE_INITD(T16, 1);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:885
        lF15T = T13;
        goto L0;
        T8 = T14;
      } else {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:883
        T7 = &KPfalseVKi;
        MV_SET_ELT(0, &KPfalseVKi);
        MV_SET_COUNT(1);
        T8 = T7;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:880
      T9 = T8;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:880
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:885
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:878
  return(T9);
}

dylan_value Ksubst_engine_node_2Ydispatch_engine_internalVdylanI (dylan_value new_e_, dylan_value old_e_, dylan_value e_) {
  dylan_value eF3;
  dylan_value T4;
  dylan_value T5;
  dylan_value T6;
  dylan_value eF7;
  dylan_value T8;
  DWORD iF9T, iF9;
  dylan_value T10;
  dylan_value UvUF11;
  dylan_value T12;
  dylan_value UvUF13;
  dylan_value T14;
  dylan_value T15;
  dylan_value T16;
  dylan_value eF17;
  dylan_value T18;
  dylan_value T19;
  dylan_value T20;
  dylan_value T21;
  dylan_value eF22;
  dylan_value T23;
  dylan_value T24;
  dylan_value T25;
  dylan_value eF26;
  DWORD iF27T, iF27;
  dylan_value T28;
  dylan_value T29;
  dylan_value T30;
  dylan_value T31;
  dylan_value T32;
  dylan_value T33;
  dylan_value T34;
  dylan_value T35;
  dylan_value T36;
  dylan_value T37;
  dylan_value T38;
  dylan_value T39;
  dylan_value T40;
  dylan_value T41;
  dylan_value new_eF42;
  dylan_value T43;
  dylan_value old_eF44;
  dylan_value T45;
  dylan_value eF46;
  dylan_value T47;
  dylan_value T48;
  DWORD T49;
  dylan_value T50;
  dylan_value T51;
  dylan_value new_eF52;
  dylan_value old_eF53;
  dylan_value eF54;
  dylan_value T55;
  dylan_value T56;
  dylan_value T57;
  dylan_value T58;
  dylan_value new_eF59;
  dylan_value old_eF60;
  dylan_value eF61;
  dylan_value T62;
  dylan_value T63;
  dylan_value T64;
  dylan_value new_eF65;
  dylan_value old_eF66;
  dylan_value eF67;
  dylan_value T68;
  dylan_value T69;
  dylan_value T70;
  DWORD T71;
  dylan_value T72;
  dylan_value T73;
  DWORD T74;
  dylan_value T75;
  dylan_value T76;
  dylan_value new_eF77T, new_eF77;
  dylan_value old_eF78T, old_eF78;
  dylan_value eF79T, eF79;
  dylan_value T80;
  _KLsimple_object_vectorGVKd_1 T81 = {&KLsimple_object_vectorGVKdW, (dylan_value) 5};
  dylan_value T82;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:188
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:192
  new_eF77T = new_e_;
  old_eF78T = old_e_;
  eF79T = e_;
L0: ;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:212
    new_eF77 = new_eF77T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:212
    old_eF78 = old_eF78T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:212
    eF79 = eF79T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:205
    new_eF65 = new_eF77;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:205
    old_eF66 = old_eF78;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:205
    eF67 = eF79;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:202
    new_eF59 = new_eF65;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:202
    old_eF60 = old_eF66;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:202
    eF61 = eF67;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:198
    new_eF52 = new_eF59;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:198
    old_eF53 = old_eF60;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:198
    eF54 = eF61;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:192
    new_eF42 = new_eF52;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:192
    T43 = new_eF42;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:192
    old_eF44 = old_eF53;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:192
    T45 = old_eF44;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:192
    eF46 = eF54;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:192
    T47 = eF46;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:189
    T39 = primitive_instanceQ(T47,&KLmonomorphic_by_class_discriminatorGVKg);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:189
    if (T39 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:191
      eF3 = T47;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:192
      T40 = SLOT_VALUE_INITD(eF3, 4);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:192
      T4 = primitive_idQ(T45,T40);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:192
      if (T4 != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:192
        SLOT_VALUE_SETTER(T43, eF3, 4);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:192
        T5 = &KPfalseVKi;
        T6 = T5;
      } else {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:192
        new_eF77T = new_eF52;
        old_eF78T = old_eF53;
        eF79T = T40;
        goto L0;
        T6 = T41;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:192
      T38 = T6;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:189
      T48 = primitive_instanceQ(T47,&KLclass_keyed_discriminatorGVKg);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:189
      if (T48 != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:194
        eF7 = T47;
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:195
        T8 = Kckd_sizeVKgI(eF7);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:195
        iF9T = 5;
      L1: ;
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:195
          iF9 = iF9T;
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:195
          T50 = primitive_cast_raw_as_integer(iF9);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:195
          CONGRUENT_CALL_PROLOG(&KLVKd, 2);
          T10 = CONGRUENT_CALL2(T50, T8);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:195
          if (T10 != &KPfalseVKi) {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:196
            UvUF11 = Kckd_refVKgI(eF7, T50);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:196
            T12 = primitive_idQ(T45,UvUF11);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:196
            if (T12 != &KPfalseVKi) {
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:196
              Kckd_ref_setterVKgI(T43, eF7, T50);
            } else {
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:196
              Ksubst_engine_node_2Ydispatch_engine_internalVdylanI(T43, T45, UvUF11);
            }
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:196
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:195
            T49 = primitive_machine_word_add_signal_overflow(iF9,8);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:195
            iF9T = T49;
            goto L1;
          }
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:195
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:195
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:198
        UvUF13 = Kgrounded_class_keyed_discriminator_defaultVKgI(eF7);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:198
        T14 = primitive_idQ(T45,UvUF13);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:198
        if (T14 != &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:198
          Kgrounded_class_keyed_discriminator_default_setterYdispatch_engine_internalVdylanI(T43, eF7);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:198
          T15 = &KPfalseVKi;
          T16 = T15;
        } else {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:198
          new_eF77T = T43;
          old_eF78T = T45;
          eF79T = UvUF13;
          goto L0;
          T16 = T51;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:198
        T37 = T16;
      } else {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:189
        T55 = primitive_instanceQ(T47,&KLif_type_discriminatorGVKg);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:189
        if (T55 != &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:200
          eF17 = T47;
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:201
          T56 = SLOT_VALUE_INITD(eF17, 4);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:201
          T18 = primitive_idQ(T45,T56);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:201
          if (T18 != &KPfalseVKi) {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:201
            SLOT_VALUE_SETTER(T43, eF17, 4);
          } else {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:201
            Ksubst_engine_node_2Ydispatch_engine_internalVdylanI(T43, T45, T56);
          }
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:201
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:202
          T57 = SLOT_VALUE_INITD(eF17, 5);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:202
          T19 = primitive_idQ(T45,T57);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:202
          if (T19 != &KPfalseVKi) {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:202
            SLOT_VALUE_SETTER(T43, eF17, 5);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:202
            T20 = &KPfalseVKi;
            T21 = T20;
          } else {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:202
            new_eF77T = T43;
            old_eF78T = T45;
            eF79T = T57;
            goto L0;
            T21 = T58;
          }
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:202
          T36 = T21;
        } else {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:189
          T62 = primitive_instanceQ(T47,&KLtypecheck_discriminatorGVKg);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:189
          if (T62 != &KPfalseVKi) {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:204
            eF22 = T47;
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:205
            T63 = SLOT_VALUE_INITD(eF22, 4);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:205
            T23 = primitive_idQ(T45,T63);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:205
            if (T23 != &KPfalseVKi) {
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:205
              SLOT_VALUE_SETTER(T43, eF22, 4);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:205
              T24 = &KPfalseVKi;
              T25 = T24;
            } else {
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:205
              new_eF77T = T43;
              old_eF78T = T45;
              eF79T = T63;
              goto L0;
              T25 = T64;
            }
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:205
            T35 = T25;
          } else {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:189
            T68 = primitive_instanceQ(T47,&KLsingleton_discriminatorGVKg);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:189
            if (T68 != &KPfalseVKi) {
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:207
              eF26 = T47;
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:208
              T69 = SLOT_VALUE_INITD(eF26, 3);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:209
              T70 = SLOT_VALUE_INITD(T69, 0);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:209
              T71 = primitive_cast_integer_as_raw(T70);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:209
              iF27T = 5;
            L2: ;
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:209
                iF27 = iF27T;
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:209
                T72 = primitive_machine_word_less_thanQ(iF27,T71);
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:209
                if (T72 != &KPfalseVKi) {
                  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:210
                  T73 = REPEATED_DYLAN_VALUE_SLOT_VALUE_TAGGED(T69, 1, iF27);
                  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:210
                  T28 = primitive_idQ(T45,T73);
                  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:210
                  if (T28 != &KPfalseVKi) {
                    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:210
                    REPEATED_DYLAN_VALUE_SLOT_VALUE_TAGGED_SETTER(T43, T69, 1, iF27);
                  } else {
                    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:210
                    Ksubst_engine_node_2Ydispatch_engine_internalVdylanI(T43, T45, T73);
                  }
                  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:210
                  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:209
                  T74 = primitive_machine_word_add_signal_overflow(iF27,8);
                  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:209
                  iF27T = T74;
                  goto L2;
                }
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:209
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:209
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:212
              T75 = SLOT_VALUE_INITD(eF26, 4);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:212
              T29 = primitive_idQ(T45,T75);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:212
              if (T29 != &KPfalseVKi) {
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:212
                SLOT_VALUE_SETTER(T43, eF26, 4);
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:212
                T30 = &KPfalseVKi;
                T31 = T30;
              } else {
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:212
                new_eF77T = T43;
                old_eF78T = T45;
                eF79T = T75;
                goto L0;
                T31 = T76;
              }
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:212
              T34 = T31;
            } else {
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:189
              T80 = primitive_instanceQ(T47,&KLdiscriminatorGVKg);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:189
              if (T80 != &KPfalseVKi) {
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:214
                T81.vector_element_[0] = T47;
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:214
                T82 = KerrorVKdMM1I(&K34, &T81);
                T33 = T82;
              } else {
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:215
                T32 = &KPfalseVKi;
                T33 = T32;
              }
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:189
              T34 = T33;
            }
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:189
            T35 = T34;
          }
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:189
          T36 = T35;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:189
        T37 = T36;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:189
      T38 = T37;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:189
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:192
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:188
  MV_SET_COUNT(0);
  return(T38);
}

dylan_value Kprune_methods_by_known_classYdispatch_engine_internalVdylanI (dylan_value argnum_, dylan_value cls_, dylan_value ds_) {
  dylan_value the_methods_;
  dylan_value T4;
  dylan_value T5;
  dylan_value T6;
  dylan_value meth_;
  dylan_value nxt_;
  dylan_value T9;
  dylan_value T10_0;
  dylan_value T10_1;
  dylan_value someQ_;
  dylan_value allQ_;
  dylan_value T13;
  dylan_value T14;
  dylan_value T15;
  dylan_value T16;
  dylan_value T17;
  dylan_value T18;
  dylan_value T19;
  dylan_value prevF20;
  dylan_value T21;
  dylan_value sublF22;
  dylan_value allallQF23;
  dylan_value T24;
  dylan_value prevF25T, prevF25;
  dylan_value sublF26T, sublF26;
  dylan_value allallQF27T, allallQF27;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:22
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:25
  T4 = SLOT_VALUE(ds_, 5);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:41
  T5 = SLOT_VALUE_INITD(T4, 1);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:41
  the_methods_ = T5;
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:34
  prevF25T = T4;
  sublF26T = the_methods_;
  allallQF27T = &KPtrueVKi;
L0: ;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:37
    prevF25 = prevF25T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:37
    sublF26 = sublF26T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:37
    allallQF27 = allallQF27T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:34
    prevF20 = prevF25;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:34
    T21 = prevF20;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:34
    sublF22 = sublF26;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:34
    allallQF23 = allallQF27;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:27
    T16 = primitive_idQ(sublF22,&KPempty_listVKi);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:27
    if (T16 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:28
      T6 = allallQF23;
      MV_SET_ELT(0, allallQF23);
      MV_SET_COUNT(1);
      T15 = T6;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:30
      T17 = SLOT_VALUE_INITD(sublF22, 0);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:30
      meth_ = T17;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:31
      T18 = SLOT_VALUE_INITD(sublF22, 1);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:31
      nxt_ = T18;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:32
      T9 = KPmethod_specializerVKgI(meth_, argnum_);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:32
      T10_0 = Kgrounded_has_instancesQVKeI(cls_, T9);
      T10_1 = MV_GET_ELT(1);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:32
      someQ_ = T10_0;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:32
      allQ_ = T10_1;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:33
      if (someQ_ != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:34
        if (allQ_ != &KPfalseVKi) {
          T13 = allallQF23;
        } else {
          T13 = &KPfalseVKi;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:34
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:34
        prevF25T = sublF22;
        sublF26T = nxt_;
        allallQF27T = T13;
        goto L0;
        T14 = T19;
      } else {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:36
        SLOT_VALUE_SETTER(nxt_, T21, 1);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:37
        prevF25T = T21;
        sublF26T = nxt_;
        allallQF27T = allallQF23;
        goto L0;
        T14 = T24;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:33
      T15 = T14;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:27
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:34
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:22
  return(T15);
}

dylan_value Kconsider_arg_discriminatedYdispatch_engine_internalVdylanI (dylan_value ds_, dylan_value argnum_, dylan_value arg_) {
  dylan_value the_methods_;
  dylan_value T4;
  dylan_value T5;
  dylan_value meth_;
  dylan_value T7;
  dylan_value nxt_;
  dylan_value T9;
  dylan_value T10;
  dylan_value T11;
  dylan_value T12;
  dylan_value T13;
  dylan_value prevF14;
  dylan_value T15;
  dylan_value sublF16;
  dylan_value T17;
  dylan_value T18;
  dylan_value prevF19T, prevF19;
  dylan_value sublF20T, sublF20;
  dylan_value T21;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:48
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:64
  T4 = SLOT_VALUE(ds_, 5);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:65
  T5 = SLOT_VALUE_INITD(T4, 1);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:65
  the_methods_ = T5;
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:56
  prevF19T = T4;
  sublF20T = the_methods_;
L0: ;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:60
    prevF19 = prevF19T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:60
    sublF20 = sublF20T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:56
    prevF14 = prevF19;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:56
    T15 = prevF14;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:56
    sublF16 = sublF20;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:56
    T17 = sublF16;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:51
    T9 = primitive_idQ(T17,&KPempty_listVKi);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:51
    if (T9 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:52
      T10 = SLOT_VALUE(ds_, 3);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:52
      Kadd_argnumYdispatch_engine_internalVdylanI(argnum_, T10);
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:54
      T11 = SLOT_VALUE_INITD(T17, 0);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:54
      meth_ = T11;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:55
      T7 = KPmethod_specializerVKgI(meth_, argnum_);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:55
      T12 = primitive_instanceQ(arg_,T7);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:55
      if (T12 != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:56
        T13 = SLOT_VALUE_INITD(T17, 1);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:56
        prevF19T = T17;
        sublF20T = T13;
        goto L0;
      } else {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:58
        T18 = SLOT_VALUE_INITD(T17, 1);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:58
        nxt_ = T18;
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:59
        SLOT_VALUE_SETTER(nxt_, T15, 1);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:60
        prevF19T = T15;
        sublF20T = nxt_;
        goto L0;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:55
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:51
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:56
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:66
  T21 = &KPfalseVKi;
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:48
  MV_SET_COUNT(0);
  return(T21);
}

dylan_value Kcompute_subdiscriminator_for_argYdispatch_engine_internalVdylanI (dylan_value ds_, dylan_value argnum_, dylan_value thisarg_, dylan_value thisargclass_) {
  dylan_value methlist_;
  dylan_value T5;
  dylan_value T6;
  dylan_value nextd_;
  dylan_value T8;
  dylan_value T9;
  dylan_value T10;
  dylan_value T11;
  dylan_value d_;
  dylan_value T13;
  dylan_value T14;
  dylan_value T15;
  dylan_value T16;
  dylan_value meth_;
  dylan_value T18;
  dylan_value T19_0;
  dylan_value T19_1;
  dylan_value T19_2;
  dylan_value subclass_pF20;
  dylan_value singletonsF21;
  dylan_value othersF22;
  dylan_value T23;
  dylan_value T24;
  dylan_value T25;
  dylan_value T26;
  dylan_value T27;
  dylan_value T28;
  dylan_value T29;
  DADDR T30;
  dylan_value T31;
  DWORD T32;
  DWORD T33;
  dylan_value T34;
  dylan_value T35;
  dylan_value T36;
  dylan_value T37;
  dylan_value T38;
  dylan_value T39;
  dylan_value lF40T, lF40;
  dylan_value T41;
  dylan_value T42;
  dylan_value T43;
  dylan_value T44;
  dylan_value methodsF45T, methodsF45;
  dylan_value T46;
  dylan_value subclass_pF47T, subclass_pF47;
  dylan_value singletonsF48T, singletonsF48;
  dylan_value othersF49T, othersF49;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:412
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:451
  T5 = SLOT_VALUE(ds_, 5);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:451
  T6 = SLOT_VALUE_INITD(T5, 1);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:451
  methlist_ = T6;
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:448
  methodsF45T = methlist_;
  subclass_pF47T = &KPfalseVKi;
  singletonsF48T = &KPempty_listVKi;
  othersF49T = &KPempty_listVKi;
L0: ;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:448
    methodsF45 = methodsF45T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:448
    T46 = methodsF45;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:448
    subclass_pF47 = subclass_pF47T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:448
    singletonsF48 = singletonsF48T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:448
    othersF49 = othersF49T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:417
    T24 = primitive_idQ(T46,&KPempty_listVKi);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:417
    if (T24 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:418
      Kconsider_arg_discriminatedYdispatch_engine_internalVdylanI(ds_, argnum_, thisarg_);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:419
      nextd_ = Kcompute_more_dispatch_engineYdispatch_engine_internalVdylanI(ds_);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:420
      T25 = SLOT_VALUE(ds_, 0);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:421
      if (subclass_pF47 != &KPfalseVKi) {
        T9 = subclass_pF47;
      } else {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:421
        T26 = primitive_idQ(singletonsF48,&KPempty_listVKi);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:421
        if (T26 != &KPfalseVKi) {
          T8 = &KPfalseVKi;
        } else {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:421
          T27 = KsubtypeQVKdMM11I(thisargclass_, &KLclassGVKd);
          T8 = T27;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:421
        T9 = T8;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:421
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:421
      if (T9 != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:422
        T10 = Kmake_by_singleton_class_discriminatorYdispatch_engine_internalVdylanI(argnum_, T25, (dylan_value) 17, Dabsent_engine_nodeVKg);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:423
        T28 = SLOT_VALUE(thisarg_, 2);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:423
        T29 = SLOT_VALUE_INITD(T28, 2);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:423
        T30 = primitive_cast_pointer_as_raw(T29);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:423
        T32 = primitive_machine_word_logand(T30,-4);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:423
        T33 = primitive_machine_word_logior(T32,1);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:423
        T31 = primitive_cast_raw_as_integer(T33);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:422
        T11 = Kckd_addXYdispatch_engine_internalVdylanI(T10, T31, nextd_);
        T16 = T11;
      } else {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:424
        T34 = primitive_idQ(singletonsF48,&KPempty_listVKi);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:421
        if (T34 != &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:441
          T14 = Kcompute_default_subdiscriminatorYdispatch_engine_internalVdylanI(argnum_, T25, thisarg_, othersF49, nextd_);
          T15 = T14;
        } else {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:425
          d_ = Kmake_single_class_singleton_discriminatorVKgI(singletonsF48, argnum_, T25);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:435
          lF40T = singletonsF48;
        L1: ;
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:435
            lF40 = lF40T;
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:435
            T41 = lF40;
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:427
            T37 = primitive_idQ(T41,&KPempty_listVKi);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:427
            if (T37 != &KPfalseVKi) {
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:430
              T35 = Kcompute_default_subdiscriminatorYdispatch_engine_internalVdylanI(argnum_, T25, thisarg_, othersF49, nextd_);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:429
              SLOT_VALUE_SETTER(T35, d_, 4);
            } else {
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:431
              T38 = SLOT_VALUE_INITD(T41, 0);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:431
              T36 = KEEVKdI(thisarg_, T38);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:427
              if (T36 != &KPfalseVKi) {
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:433
                Ksingleton_discriminator_element_setterVKgI(nextd_, d_, thisarg_);
              } else {
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:435
                T39 = SLOT_VALUE_INITD(T41, 1);
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:435
                lF40T = T39;
                goto L1;
              }
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:427
            }
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:427
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:435
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:439
          T13 = d_;
          MV_SET_ELT(0, d_);
          MV_SET_COUNT(1);
          T15 = T13;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:421
        T16 = T15;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:421
      T23 = T16;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:444
      T42 = SLOT_VALUE_INITD(T46, 0);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:444
      meth_ = T42;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:445
      T18 = KPmethod_specializerVKgI(meth_, argnum_);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:447
      T19_0 = Kponder_a_specializerYdispatch_engine_internalVdylanI(T18, thisargclass_, subclass_pF47, singletonsF48, othersF49);
      T19_1 = MV_GET_ELT(1);
      T19_2 = MV_GET_ELT(2);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:446
      subclass_pF20 = T19_0;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:446
      singletonsF21 = T19_1;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:446
      othersF22 = T19_2;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:448
      T43 = SLOT_VALUE_INITD(T46, 1);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:448
      methodsF45T = T43;
      subclass_pF47T = subclass_pF20;
      singletonsF48T = singletonsF21;
      othersF49T = othersF22;
      goto L0;
      T23 = T44;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:417
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:448
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:412
  return(T23);
}

dylan_value Kcompute_more_dispatch_engineYdispatch_engine_internalVdylanI (dylan_value ds_) {
  dylan_value argnumQ_;
  dylan_value T3_0;
  dylan_value argnum_;
  dylan_value T5_0;
  dylan_value T6_0;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:397
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:400
  argnumQ_ = Kselect_next_arg_for_discriminationYdispatch_engine_internalVdylanI(ds_);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:401
  if (argnumQ_ != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:404
    argnum_ = argnumQ_;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:405
    T5_0 = Kcompute_discriminator_for_argYdispatch_engine_internalVdylanI(argnum_, ds_);
    T6_0 = T5_0;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:402
    T3_0 = Kcompute_terminal_engine_nodeYdispatch_engine_internalVdylanI(ds_);
    T6_0 = T3_0;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:401
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:397
  MV_SET_COUNT(1);
  return(T6_0);
}

dylan_value Kselect_next_arg_for_discriminationYdispatch_engine_internalVdylanI (dylan_value ds_) {
  dylan_value T1;
  dylan_value T2;
  dylan_value T3;
  dylan_value T4;
  dylan_value T5;
  dylan_value mF6;
  dylan_value T7;
  dylan_value T8;
  dylan_value T9;
  dylan_value T10;
  dylan_value T11;
  dylan_value T12;
  DWORD T13;
  DWORD T14;
  DWORD T15;
  DWORD T16;
  dylan_value T17;
  dylan_value T18;
  dylan_value nxt_;
  dylan_value T20;
  dylan_value T21;
  dylan_value T22;
  dylan_value T23;
  dylan_value T24;
  dylan_value T25;
  dylan_value T26;
  dylan_value T27;
  dylan_value T28;
  dylan_value T29;
  DWORD T30;
  DWORD T31;
  DWORD T32;
  dylan_value T33;
  DWORD T34;
  DWORD T35;
  DWORD T36;
  DWORD T37;
  dylan_value T38;
  dylan_value T39;
  dylan_value shiftF40;
  dylan_value T41;
  dylan_value T42;
  dylan_value T43;
  DWORD mx_;
  DWORD T45;
  DWORD T46;
  dylan_value T47;
  dylan_value T48;
  DWORD T49;
  DWORD T50;
  dylan_value T51;
  DWORD T52;
  DWORD T53;
  DWORD T54;
  DWORD T55;
  DWORD T56;
  DWORD T57;
  DWORD T58;
  dylan_value T59;
  dylan_value T60;
  dylan_value T61;
  dylan_value T62;
  DWORD T63;
  DWORD T64;
  DWORD T65;
  DWORD T66;
  dylan_value T67;
  DWORD mF68T, mF68;
  DWORD iF69T, iF69;
  dylan_value T70;
  DWORD T71;
  dylan_value T72;
  dylan_value T73;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:235
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:237
  T1 = SLOT_VALUE(ds_, 3);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:254
L0: ;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:239
    T8 = SLOT_VALUE_INITD(ds_, 4);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:240
    T9 = primitive_idQ(T8,&KPempty_listVKi);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:240
    if (T9 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:241
      T10 = SLOT_VALUE(ds_, 0);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:241
      T11 = SLOT_VALUE_INITD(T10, 1);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:241
      T12 = SLOT_VALUE_INITD(T11, 0);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:241
      T13 = primitive_cast_integer_as_raw(T12);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:241
      T14 = primitive_machine_word_logand(T13,1020);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:241
      T15 = primitive_machine_word_logior(T14,1);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:242
      T2 = Knext_free_argnumYdispatch_engine_internalVdylanI((dylan_value) -3, T1);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:243
      T16 = primitive_cast_integer_as_raw(T2);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:243
      T17 = primitive_machine_word_less_thanQ(T16,T15);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:243
      if (T17 != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:244
        T3 = T2;
        MV_SET_ELT(0, T2);
        MV_SET_COUNT(1);
        T5 = T3;
      } else {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:246
        T4 = &KPfalseVKi;
        MV_SET_ELT(0, &KPfalseVKi);
        MV_SET_COUNT(1);
        T5 = T4;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:243
      T7 = T5;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:249
      T18 = SLOT_VALUE_INITD(T8, 0);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:249
      mF6 = T18;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:255
      T71 = primitive_cast_integer_as_raw(mF6);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:259
      mF68T = T71;
      iF69T = 1;
    L1: ;
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:259
        mF68 = mF68T;
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:255
        T72 = primitive_cast_raw_as_integer(mF68);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:259
        iF69 = iF69T;
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:256
        T73 = primitive_cast_raw_as_integer(iF69);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:251
        T25 = primitive_idQ(T72,(dylan_value) 1);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:251
        if (T25 != &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:252
          T26 = SLOT_VALUE_INITD(T8, 1);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:252
          nxt_ = T26;
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:253
          SLOT_VALUE_SETTER(nxt_, ds_, 4);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:254
          goto L0;
          T24 = T70;
        } else {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:255
          T27 = primitive_machine_word_logbitQ(2,mF68);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:255
          if (T27 != &KPfalseVKi) {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:255
            T20 = Kargnum_consideredQYdispatch_engine_internalVdylanI(T73, T1);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:255
            T28 = primitive_not(T20);
            T21 = T28;
          } else {
            T21 = &KPfalseVKi;
          }
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:255
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:251
          if (T21 != &KPfalseVKi) {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:256
            T29 = primitive_machine_word_less_thanQ(iF69,1);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:256
            if (T29 != &KPfalseVKi) {
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:256
              T30 = primitive_machine_word_logxor(iF69,1);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:256
              T31 = primitive_machine_word_negative_signal_overflow(T30);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:256
              T32 = primitive_machine_word_logior(T31,1);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:256
              T33 = primitive_machine_word_less_thanQ(T32,257);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:256
              if (T33 != &KPfalseVKi) {
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:256
                T35 = primitive_machine_word_shift_right(T31,2);
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:256
                T34 = primitive_machine_word_shift_right(mF68,T35);
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:256
                T36 = primitive_machine_word_logand(T34,-4);
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:256
                T37 = primitive_machine_word_logior(T36,1);
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:256
                T38 = primitive_cast_raw_as_integer(T37);
                T61 = T38;
              } else {
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:256
                T39 = primitive_machine_word_less_thanQ(mF68,1);
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:256
                if (T39 != &KPfalseVKi) {
                  T60 = (dylan_value) -3;
                } else {
                  T60 = (dylan_value) 1;
                }
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:256
                T61 = T60;
              }
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:256
              T62 = T61;
            } else {
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:256
              T48 = primitive_machine_word_less_thanQ(iF69,257);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:256
              if (T48 != &KPfalseVKi) {
                T47 = T73;
              } else {
                T47 = (dylan_value) 257;
              }
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:256
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:256
              shiftF40 = T47;
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:256
              T49 = primitive_machine_word_logxor(mF68,1);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:256
              mx_ = T49;
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:256
              T43 = shiftF40;
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:256
              T50 = primitive_cast_integer_as_raw(T43);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:256
              T51 = primitive_machine_word_equalQ(T50,257);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:256
              if (T51 != &KPfalseVKi) {
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:256
                shiftF40 = (dylan_value) 129;
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:256
                T42 = shiftF40;
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:256
                T46 = mx_;
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:256
                T54 = primitive_cast_integer_as_raw(T42);
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:256
                T53 = primitive_machine_word_shift_right(T54,2);
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:256
                T52 = primitive_machine_word_shift_left_signal_overflow(T46,T53);
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:256
                mx_ = T52;
              }
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:256
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:256
              T41 = shiftF40;
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:256
              T45 = mx_;
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:256
              T57 = primitive_cast_integer_as_raw(T41);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:256
              T56 = primitive_machine_word_shift_right(T57,2);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:256
              T55 = primitive_machine_word_shift_left_signal_overflow(T45,T56);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:256
              T58 = primitive_machine_word_logior(T55,1);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:256
              T59 = primitive_cast_raw_as_integer(T58);
              T62 = T59;
            }
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:256
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:256
            SLOT_VALUE_SETTER(T62, T8, 0);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:257
            T22 = T73;
            MV_SET_ELT(0, T73);
            MV_SET_COUNT(1);
            T23 = T22;
          } else {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:259
            T63 = primitive_machine_word_shift_right(mF68,1);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:259
            T64 = primitive_machine_word_logand(T63,-4);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:259
            T65 = primitive_machine_word_logior(T64,1);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:259
            T66 = primitive_machine_word_add_signal_overflow(iF69,4);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:259
            mF68T = T65;
            iF69T = T66;
            goto L1;
            T23 = T67;
          }
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:251
          T24 = T23;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:251
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:259
      T7 = T24;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:240
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:254
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:235
  return(T7);
}

dylan_value Kcompute_discriminator_for_argYdispatch_engine_internalVdylanI (dylan_value argnum_, dylan_value ds_) {
  dylan_value thisargclass_;
  dylan_value T4_0;
  dylan_value T5_0;
  dylan_value T5_1;
  dylan_value T5_2;
  dylan_value T5_3;
  dylan_value T5_4;
  dylan_value secondary_p_;
  dylan_value force_blowup_p_;
  dylan_value all_subtypes_p_;
  dylan_value some_subtypes_p_;
  dylan_value subtype_exception_;
  dylan_value T11;
  dylan_value T12_0;
  dylan_value T13;
  dylan_value T14;
  dylan_value T15;
  dylan_value nextdF16;
  dylan_value T17;
  dylan_value T18_0;
  dylan_value nextdF19;
  dylan_value T20;
  dylan_value T21_0;
  dylan_value T21_1;
  dylan_value thend_;
  dylan_value elsed_;
  dylan_value T24_0;
  dylan_value T25_0;
  dylan_value T26_0;
  dylan_value T27_0;
  dylan_value T28_0;
  dylan_value T29_0;
  dylan_value T30;
  dylan_value T31;
  DWORD T32;
  dylan_value T33;
  dylan_value T34;
  dylan_value T35;
  dylan_value T36;
  dylan_value T37;
  dylan_value T38;
  dylan_value T39;
  DADDR T40;
  dylan_value T41;
  DWORD T42;
  DWORD T43;
  dylan_value T44_0;
  dylan_value T44_1;
  dylan_value T45_0;
  dylan_value T45_1;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:527
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:529
  T30 = SLOT_VALUE(ds_, 2);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:529
  T32 = primitive_cast_integer_as_raw(argnum_);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:529
  T31 = REPEATED_DYLAN_VALUE_SLOT_VALUE_TAGGED(T30, 1, T32);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:530
  thisargclass_ = Kobject_classVKdI(T31);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:531
  T33 = SLOT_VALUE(ds_, 5);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:531
  T34 = SLOT_VALUE_INITD(T33, 1);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:531
  T35 = primitive_idQ(T34,&KPempty_listVKi);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:531
  if (T35 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:533
    T4_0 = KdispinapplicableYdispatch_engine_internalVdylanI(ds_);
    T29_0 = T4_0;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:538
    T5_0 = Kponder_this_argYdispatch_engine_internalVdylanI(ds_, T31, thisargclass_, argnum_);
    T5_1 = MV_GET_ELT(1);
    T5_2 = MV_GET_ELT(2);
    T5_3 = MV_GET_ELT(3);
    T5_4 = MV_GET_ELT(4);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:535
    secondary_p_ = T5_0;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:535
    force_blowup_p_ = T5_1;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:535
    all_subtypes_p_ = T5_2;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:535
    some_subtypes_p_ = T5_3;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:535
    subtype_exception_ = T5_4;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:539
    if (force_blowup_p_ != &KPfalseVKi) {
      T11 = &KPfalseVKi;
    } else {
      T11 = all_subtypes_p_;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:539
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:539
    if (T11 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:541
      Kconsider_arg_discriminatedYdispatch_engine_internalVdylanI(ds_, argnum_, T31);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:542
      T12_0 = Kcompute_more_dispatch_engineYdispatch_engine_internalVdylanI(ds_);
      T28_0 = T12_0;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:544
      T36 = SLOT_VALUE(ds_, 0);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:545
      if (force_blowup_p_ != &KPfalseVKi) {
        T13 = force_blowup_p_;
      } else {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:545
        T37 = primitive_not(subtype_exception_);
        T13 = T37;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:545
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:545
      if (T13 != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:547
        if (secondary_p_ != &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:548
          Kprune_methods_by_known_classYdispatch_engine_internalVdylanI(argnum_, thisargclass_, ds_);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:549
          T14 = Kcompute_subdiscriminator_for_argYdispatch_engine_internalVdylanI(ds_, argnum_, T31, thisargclass_);
          nextdF16 = T14;
        } else {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:551
          Kconsider_arg_discriminatedYdispatch_engine_internalVdylanI(ds_, argnum_, T31);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:552
          T15 = Kcompute_more_dispatch_engineYdispatch_engine_internalVdylanI(ds_);
          nextdF16 = T15;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:547
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:554
        T17 = Kmake_by_class_discriminatorYdispatch_engine_internalVdylanI(argnum_, T36, (dylan_value) 5);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:555
        T38 = SLOT_VALUE(thisargclass_, 2);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:555
        T39 = SLOT_VALUE_INITD(T38, 2);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:555
        T40 = primitive_cast_pointer_as_raw(T39);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:555
        T42 = primitive_machine_word_logand(T40,-4);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:555
        T43 = primitive_machine_word_logior(T42,1);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:555
        T41 = primitive_cast_raw_as_integer(T43);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:554
        T18_0 = Kckd_addXYdispatch_engine_internalVdylanI(T17, T41, nextdF16);
        T27_0 = T18_0;
      } else {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:557
        Kconsider_arg_discriminatedYdispatch_engine_internalVdylanI(ds_, argnum_, T31);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:558
        nextdF19 = Kcompute_more_dispatch_engineYdispatch_engine_internalVdylanI(ds_);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:559
        if (some_subtypes_p_ != &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:561
          T20 = primitive_instanceQ(T31,subtype_exception_);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:561
          if (T20 != &KPfalseVKi) {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:562
            T44_0 = nextdF19;
            T44_1 = Dabsent_engine_nodeVKg;
            T21_0 = T44_0;
            T21_1 = T44_1;
          } else {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:564
            T45_0 = Dabsent_engine_nodeVKg;
            T45_1 = nextdF19;
            T21_0 = T45_0;
            T21_1 = T45_1;
          }
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:561
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:561
          thend_ = T21_0;
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:561
          elsed_ = T21_1;
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:566
          T24_0 = Kmake_if_type_discriminatorVKgI(argnum_, T36, subtype_exception_, thend_, elsed_);
          T26_0 = T24_0;
        } else {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:569
          T25_0 = Kmake_typecheck_discriminatorVKgI(argnum_, T36, subtype_exception_, nextdF19);
          T26_0 = T25_0;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:559
        T27_0 = T26_0;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:545
      T28_0 = T27_0;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:539
    T29_0 = T28_0;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:531
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:527
  MV_SET_COUNT(1);
  return(T29_0);
}

dylan_value Kcompute_terminal_engine_nodeYdispatch_engine_internalVdylanI (dylan_value ds_) {
  dylan_value methlistF1;
  dylan_value keys_;
  dylan_value ordered_;
  dylan_value ambig_;
  dylan_value T5;
  dylan_value ans_;
  dylan_value profiling_parent_;
  dylan_value Utmp_;
  dylan_value T9;
  dylan_value T10;
  dylan_value new_;
  dylan_value T12_0;
  dylan_value T13_0;
  dylan_value T14_0;
  dylan_value T15;
  dylan_value T16;
  dylan_value T17;
  dylan_value T18;
  dylan_value T19;
  dylan_value T20_0;
  dylan_value T20_1;
  dylan_value T21;
  dylan_value T22;
  dylan_value T23;
  dylan_value T24;
  D T25;
  dylan_value T26;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:676
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:678
  T16 = SLOT_VALUE(ds_, 5);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:678
  T17 = SLOT_VALUE_INITD(T16, 1);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:678
  methlistF1 = T17;
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:679
  T18 = SLOT_VALUE(ds_, 0);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:679
  keys_ = Kdetermine_call_keywordsYdispatch_engine_internalVdylanI(T18, methlistF1);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:680
  T19 = SLOT_VALUE(ds_, 2);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:680
  T20_0 = Kcompute_sorted_applicable_methods_1Ydispatch_engine_internalVdylanI(methlistF1, T19, &KPorder_methodsYdispatch_engine_internalVdylan);
  T20_1 = MV_GET_ELT(1);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:680
  ordered_ = T20_0;
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:680
  ambig_ = T20_1;
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:684
  T5 = Tgracefully_dispatch_to_ambiguous_methodsTVKg;
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:682
  ans_ = Ktransmogrify_method_list_groundedYdispatch_engine_internalVdylanI(ds_, ordered_, ambig_, keys_, T5);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:687
  T21 = SLOT_VALUE(ds_, 1);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:689
  T22 = primitive_instanceQ(T21,&KLcache_header_engine_nodeGVKg);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:689
  if (T22 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:402
    T15 = T21;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:690
    T23 = SLOT_VALUE_INITD(T15, 4);
    profiling_parent_ = T23;
  } else {
    profiling_parent_ = T21;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:689
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:694
  Utmp_ = Tprofile_all_terminal_engine_nodesQTYdispatch_engine_internalVdylan;
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:694
  if (Utmp_ != &KPfalseVKi) {
    T9 = Utmp_;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:695
    T24 = primitive_instanceQ(profiling_parent_,&KLprofiling_call_site_cache_header_engine_nodeGVKg);
    T9 = T24;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:694
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:694
  if (T9 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:697
    T10 = Kbootstrap_typed_allocate_engine_nodeVKgI(&KLprofiling_call_site_cache_header_engine_nodeGVKg, (dylan_value) 53, (dylan_value) 1);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:696
    new_ = T10;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:700
    primitive_initialize_discriminator(new_);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:701
    T25 = primitive_cast_raw_as_pointer(0);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:701
    primitive_slot_value_setter(T25,new_,5);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:702
    primitive_slot_value_setter(T25,new_,6);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:703
    SLOT_VALUE_SETTER(T21, new_, 4);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:704
    T26 = SLOT_VALUE(ds_, 0);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:704
    Kinstall_cache_header_engine_node_nextYdispatch_engine_internalVdylanI(new_, ans_, T26);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:705
    T12_0 = new_;
    T14_0 = T12_0;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:707
    T13_0 = ans_;
    T14_0 = T13_0;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:694
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:676
  MV_SET_COUNT(1);
  return(T14_0);
}

dylan_value Kdetermine_call_keywordsYdispatch_engine_internalVdylanI (dylan_value gf_, dylan_value methods_) {
  dylan_value T2;
  dylan_value T3;
  dylan_value T4;
  dylan_value T5;
  dylan_value T6;
  dylan_value T7;
  DWORD T8;
  dylan_value T9;
  dylan_value T10;
  DWORD T11;
  dylan_value T12;
  DWORD iF13T, iF13;
  dylan_value T14T, T14;
  dylan_value T15;
  dylan_value m_;
  dylan_value T17;
  dylan_value T18;
  dylan_value T19;
  dylan_value keys_;
  dylan_value T21;
  dylan_value T22;
  dylan_value T23;
  dylan_value T24;
  dylan_value T25;
  dylan_value T26;
  DWORD T27;
  dylan_value T28_0;
  dylan_value T29;
  dylan_value T30_0;
  dylan_value T31;
  dylan_value T32;
  dylan_value T33;
  DWORD T34;
  dylan_value T35;
  dylan_value T36;
  dylan_value T37;
  dylan_value T38;
  dylan_value T39;
  dylan_value T40;
  dylan_value T41;
  dylan_value T42;
  DWORD T43;
  dylan_value T44;
  DWORD iF45;
  dylan_value ansF46;
  DWORD nansF47;
  DWORD T48;
  dylan_value T49;
  DWORD T50;
  dylan_value T51;
  DWORD iF52T, iF52;
  dylan_value ansF53T, ansF53;
  DWORD nansF54T, nansF54;
  dylan_value T55;
  dylan_value methsF56T, methsF56;
  dylan_value T57;
  dylan_value ansF58T, ansF58;
  DWORD nansF59T, nansF59;
  dylan_value T60;
  dylan_value T61;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:637
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:638
  T6 = SLOT_VALUE_INITD(gf_, 1);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:639
  T7 = SLOT_VALUE_INITD(T6, 0);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:639
  T8 = primitive_cast_integer_as_raw(T7);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:639
  T9 = primitive_machine_word_logbitQ(19,T8);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:639
  if (T9 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:640
    T2 = &KPtrueVKi;
    MV_SET_ELT(0, &KPtrueVKi);
    MV_SET_COUNT(1);
    T5 = T2;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:641
    T10 = SLOT_VALUE_INITD(T6, 0);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:641
    T11 = primitive_cast_integer_as_raw(T10);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:641
    T12 = primitive_machine_word_logbitQ(18,T11);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:639
    if (T12 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:656
      methsF56T = methods_;
      ansF58T = &KPempty_listVKi;
      nansF59T = 1;
    L0: ;
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:656
        methsF56 = methsF56T;
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:656
        T57 = methsF56;
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:656
        ansF58 = ansF58T;
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:656
        nansF59 = nansF59T;
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:662
        T61 = primitive_cast_raw_as_integer(nansF59);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:643
        T23 = primitive_idQ(T57,&KPempty_listVKi);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:643
        if (T23 != &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:644
          T24 = KmakeVKdMM13I(&KLsimple_object_vectorGVKd, &KPempty_vectorVKi, &KPfalseVKi, T61);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:645
          iF13T = 1;
          T14T = ansF58;
        L1: ;
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:645
            iF13 = iF13T;
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:645
            T14 = T14T;
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:645
            T25 = primitive_idQ(T14,&KPempty_listVKi);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:645
            if (T25 == &KPfalseVKi) {
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:645
              T26 = SLOT_VALUE_INITD(T14, 0);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:645
              REPEATED_DYLAN_VALUE_SLOT_VALUE_TAGGED_SETTER(T26, T24, 1, iF13);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:645
              T27 = primitive_machine_word_add_signal_overflow(iF13,4);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:645
              T29 = SLOT_VALUE_INITD(T14, 1);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:645
              T30_0 = T29;
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:645
              T28_0 = T30_0;
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:645
              T31 = T28_0;
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:645
              iF13T = T27;
              T14T = T31;
              goto L1;
            }
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:645
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:645
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:646
          T15 = T24;
          MV_SET_ELT(0, T24);
          MV_SET_COUNT(1);
          T22 = T15;
        } else {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:648
          T32 = SLOT_VALUE_INITD(T57, 0);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:648
          m_ = T32;
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:649
          CONGRUENT_CALL_PROLOG(&Kfunction_signatureVKe, 1);
          T17 = CONGRUENT_CALL1(m_);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:649
          T33 = SLOT_VALUE_INITD(T17, 0);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:649
          T34 = primitive_cast_integer_as_raw(T33);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:649
          T35 = primitive_machine_word_logbitQ(19,T34);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:649
          if (T35 != &KPfalseVKi) {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:650
            T18 = &KPtrueVKi;
            MV_SET_ELT(0, &KPtrueVKi);
            MV_SET_COUNT(1);
            T21 = T18;
          } else {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:652
            T19 = CALL1(&Kkeyword_specifiersVKe, m_);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:652
            keys_ = T19;
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:653
            T36 = SLOT_VALUE_INITD(keys_, 0);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:660
            iF52T = 1;
            ansF53T = ansF58;
            nansF54T = nansF59;
          L2: ;
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:662
              iF52 = iF52T;
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:662
              ansF53 = ansF53T;
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:662
              nansF54 = nansF54T;
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:660
              iF45 = iF52;
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:658
              T60 = primitive_cast_raw_as_integer(iF45);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:660
              ansF46 = ansF53;
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:660
              nansF47 = nansF54;
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:655
              T39 = primitive_idQ(T60,T36);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:655
              if (T39 != &KPfalseVKi) {
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:656
                T40 = SLOT_VALUE_INITD(T57, 1);
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:656
                methsF56T = T40;
                ansF58T = ansF46;
                nansF59T = nansF47;
                goto L0;
                T38 = T55;
              } else {
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:658
                T41 = REPEATED_DYLAN_VALUE_SLOT_VALUE_TAGGED(keys_, 1, iF45);
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:659
                T42 = KmemberQVKdMM4I(T41, ansF46, &KPempty_vectorVKi, &KEEVKd);
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:659
                if (T42 != &KPfalseVKi) {
                  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:660
                  T43 = primitive_machine_word_add_signal_overflow(iF45,8);
                  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:660
                  iF52T = T43;
                  ansF53T = ansF53;
                  nansF54T = nansF54;
                  goto L2;
                  T37 = T44;
                } else {
                  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:662
                  T48 = primitive_machine_word_add_signal_overflow(iF45,8);
                  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:662
                  T49 = primitive_object_allocate_filled(3,&KLpairGVKdW,2,&KPunboundVKi,0,0,&KPunboundVKi);
                  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:662
                  SLOT_VALUE_SETTER(T41, T49, 0);
                  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:662
                  SLOT_VALUE_SETTER(ansF46, T49, 1);
                  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:662
                  T50 = primitive_machine_word_add_signal_overflow(nansF47,4);
                  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:662
                  iF52T = T48;
                  ansF53T = T49;
                  nansF54T = T50;
                  goto L2;
                  T37 = T51;
                }
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:659
                T38 = T37;
              }
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:655
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:660
            T21 = T38;
          }
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:649
          T22 = T21;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:643
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:656
      T4 = T22;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:672
      T3 = &KPfalseVKi;
      MV_SET_ELT(0, &KPfalseVKi);
      MV_SET_COUNT(1);
      T4 = T3;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:639
    T5 = T4;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:639
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:637
  return(T5);
}

dylan_value Ktransmogrify_method_list_groundedYdispatch_engine_internalVdylanI (dylan_value ds_, dylan_value ordered_, dylan_value ambig_, dylan_value keyspec_, dylan_value kludgeQ_) {
  dylan_value T5_0;
  dylan_value nordered_;
  dylan_value nambig_;
  dylan_value argsF8;
  dylan_value T9;
  dylan_value T10_0;
  dylan_value T11_0;
  dylan_value T12_0;
  dylan_value mF13;
  dylan_value mF14;
  dylan_value T15_0;
  dylan_value moremeths_;
  dylan_value T17;
  dylan_value more_;
  dylan_value T19;
  dylan_value T20;
  dylan_value T21;
  dylan_value T22_0;
  dylan_value T23_0;
  dylan_value T24_0;
  dylan_value T25_0;
  dylan_value T26_0;
  dylan_value T27;
  dylan_value T28;
  dylan_value T29;
  dylan_value T30;
  dylan_value T31_0;
  dylan_value T31_1;
  dylan_value T32;
  _KLsimple_object_vectorGVKd_3 T33 = {&KLsimple_object_vectorGVKdW, (dylan_value) 13};
  dylan_value T34;
  _KLsimple_object_vectorGVKd_10 T35 = {&KLsimple_object_vectorGVKdW, (dylan_value) 41};
  dylan_value T36_0;
  dylan_value dsF37T, dsF37;
  dylan_value T38;
  dylan_value orderedF39T, orderedF39;
  dylan_value T40;
  dylan_value ambigF41T, ambigF41;
  dylan_value T42;
  dylan_value keyspecF43T, keyspecF43;
  dylan_value T44;
  dylan_value kludgeQF45T, kludgeQF45;
  dylan_value T46;
  dylan_value T47;
  dylan_value T48;
  dylan_value T49;
  dylan_value T50;
  DWORD T51;
  dylan_value T52;
  dylan_value T53;
  dylan_value T54;
  dylan_value T55;
  dylan_value T56;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:713
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:736
  dsF37T = ds_;
  orderedF39T = ordered_;
  ambigF41T = ambig_;
  keyspecF43T = keyspec_;
  kludgeQF45T = kludgeQ_;
L0: ;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:736
    dsF37 = dsF37T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:736
    T38 = dsF37;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:736
    orderedF39 = orderedF39T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:736
    T40 = orderedF39;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:736
    ambigF41 = ambigF41T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:736
    T42 = ambigF41;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:736
    keyspecF43 = keyspecF43T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:736
    T44 = keyspecF43;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:736
    kludgeQF45 = kludgeQF45T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:736
    T46 = kludgeQF45;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:716
    T27 = SLOT_VALUE(T38, 0);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:717
    T28 = SLOT_VALUE(T38, 2);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:718
    T29 = primitive_idQ(T40,&KPempty_listVKi);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:718
    if (T29 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:719
      T30 = primitive_idQ(T42,&KPempty_listVKi);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:719
      if (T30 != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:721
        T5_0 = KdispinapplicableYdispatch_engine_internalVdylanI(T38);
        T12_0 = T5_0;
      } else {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:719
        if (T46 != &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:725
          T31_0 = Kcompute_sorted_applicable_methods_1Ydispatch_engine_internalVdylanI(T42, T28, &KPorder_methods_desperatelyYdispatch_engine_internalVdylan);
          T31_1 = MV_GET_ELT(1);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:723
          nordered_ = T31_0;
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:723
          nambig_ = T31_1;
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:726
          T32 = primitive_idQ(nordered_,&KPempty_listVKi);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:726
          if (T32 == &KPfalseVKi) {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:727
            argsF8 = Kreconstruct_args_from_mepargsVKeI(T27, T28);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:733
            T33.vector_element_[0] = T42;
            T33.vector_element_[1] = T27;
            T33.vector_element_[2] = argsF8;
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:733
            T34 = primitive_copy_vector(&T33);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:728
            T35.vector_element_[0] = IKJgeneric_;
            T35.vector_element_[1] = T27;
            T35.vector_element_[2] = &KJarguments_;
            T35.vector_element_[3] = argsF8;
            T35.vector_element_[4] = IKJambiguous_;
            T35.vector_element_[5] = T42;
            T35.vector_element_[6] = &KJformat_string_;
            T35.vector_element_[7] = &K53;
            T35.vector_element_[8] = &KJformat_arguments_;
            T35.vector_element_[9] = T34;
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:728
            CONGRUENT_CALL_PROLOG(&KmakeVKd, 2);
            T9 = CONGRUENT_CALL2(&KLambiguous_methods_warningGVKg, &T35);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:728
            KdispwarnYdispatch_engine_internalVdylanI(T9, T38);
          }
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:726
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:736
          dsF37T = ds_;
          orderedF39T = nordered_;
          ambigF41T = nambig_;
          keyspecF43T = keyspec_;
          kludgeQF45T = &KPfalseVKi;
          goto L0;
          T11_0 = T36_0;
        } else {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:739
          T10_0 = Kmake_ambiguous_methods_engine_nodeVKgI(T40, T42);
          T11_0 = T10_0;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:719
        T12_0 = T11_0;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:719
      T26_0 = T12_0;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:742
      T47 = SLOT_VALUE_INITD(T40, 0);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:742
      mF13 = T47;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:743
      T48 = primitive_instanceQ(mF13,&KLaccessor_methodGVKe);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:743
      if (T48 != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:745
        mF14 = mF13;
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:746
        T15_0 = Kmake_slot_access_engine_nodeYdispatch_engine_internalVdylanI(mF14, T38);
        T25_0 = T15_0;
      } else {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:748
        T49 = SLOT_VALUE_INITD(mF13, 1);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:748
        T50 = SLOT_VALUE_INITD(T49, 0);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:748
        T51 = primitive_cast_integer_as_raw(T50);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:748
        T52 = primitive_machine_word_logbitQ(22,T51);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:750
        if (T52 != &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:751
          T53 = SLOT_VALUE_INITD(T40, 1);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:751
          moremeths_ = T53;
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:752
          T17 = Ktransmogrify_method_list_tail_groundedYdispatch_engine_internalVdylanI(T38, T40, moremeths_, T42, T46);
          more_ = T17;
        } else {
          more_ = &KPempty_listVKi;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:750
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:757
        if (T52 != &KPfalseVKi) {
          T19 = &KPfalseVKi;
        } else {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:757
          T54 = primitive_idQ(more_,&KPempty_listVKi);
          T19 = T54;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:757
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:757
        if (T19 != &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:757
          T55 = primitive_idQ(T44,&KPtrueVKi);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:757
          if (T55 != &KPfalseVKi) {
            T20 = T55;
          } else {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:757
            T56 = primitive_not(T44);
            T20 = T56;
          }
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:757
          T21 = T20;
        } else {
          T21 = &KPfalseVKi;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:757
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:755
        if (T21 != &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:758
          T22_0 = mF13;
          T24_0 = T22_0;
        } else {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:760
          T23_0 = Kmake_single_method_engine_nodeVKgI(mF13, &KPempty_vectorVKi, more_, T44);
          T24_0 = T23_0;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:755
        T25_0 = T24_0;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:743
      T26_0 = T25_0;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:718
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:736
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:713
  MV_SET_COUNT(1);
  return(T26_0);
}

dylan_value KPorder_methods_desperatelyYdispatch_engine_internalVdylanI (dylan_value m1_, dylan_value m2_, dylan_value args_) {
  dylan_value T3;
  dylan_value T4;
  dylan_value T5;
  dylan_value T6;
  dylan_value T7;
  dylan_value T8;
  dylan_value T9;
  dylan_value T10;
  dylan_value cmp_;
  dylan_value T12;
  dylan_value T13;
  dylan_value T14;
  dylan_value T15;
  dylan_value T16;
  dylan_value T17;
  dylan_value T18;
  dylan_value T19;
  dylan_value T20;
  dylan_value T21;
  DWORD T22;
  dylan_value T23;
  dylan_value T24;
  DWORD idxF25T, idxF25;
  dylan_value ambigpF26T, ambigpF26;
  dylan_value T27;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:949
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:952
  T3 = KPmethod_number_requiredVKgI(m1_);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:965
  idxF25T = 1;
  ambigpF26T = &KPfalseVKi;
L0: ;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:965
    idxF25 = idxF25T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:959
    T27 = primitive_cast_raw_as_integer(idxF25);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:965
    ambigpF26 = ambigpF26T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:954
    T17 = primitive_idQ(T27,T3);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:954
    if (T17 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:955
      if (ambigpF26 != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:955
        T4 = IKJLG_;
        MV_SET_ELT(0, IKJLG_);
        MV_SET_COUNT(1);
        T6 = T4;
      } else {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:955
        T5 = IKJE_;
        MV_SET_ELT(0, IKJE_);
        MV_SET_COUNT(1);
        T6 = T5;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:955
      T16 = T6;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:957
      T7 = KPmethod_specializerVKgI(m1_, T27);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:958
      T8 = KPmethod_specializerVKgI(m2_, T27);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:959
      T18 = REPEATED_DYLAN_VALUE_SLOT_VALUE_TAGGED(args_, 1, idxF25);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:960
      T9 = KPorder_specializersYdispatch_engine_internalVdylanI(T7, T8, T18);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:961
      T19 = primitive_idQ(T9,IKJLG_);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:961
      if (T19 != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:961
        T10 = KPorder_specializers_desperatelyYdispatch_engine_internalVdylanI(T7, T8, T18);
        cmp_ = T10;
      } else {
        cmp_ = T9;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:961
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:962
      T20 = primitive_idQ(cmp_,IKJL_);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:962
      if (T20 != &KPfalseVKi) {
        T12 = T20;
      } else {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:962
        T21 = primitive_idQ(cmp_,IKJG_);
        T12 = T21;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:962
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:962
      if (T12 != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:963
        T13 = cmp_;
        MV_SET_ELT(0, cmp_);
        MV_SET_COUNT(1);
        T15 = T13;
      } else {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:965
        T22 = primitive_machine_word_add_signal_overflow(idxF25,4);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:965
        if (ambigpF26 != &KPfalseVKi) {
          T14 = ambigpF26;
        } else {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:965
          T23 = primitive_idQ(cmp_,IKJLG_);
          T14 = T23;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:965
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:965
        idxF25T = T22;
        ambigpF26T = T14;
        goto L0;
        T15 = T24;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:962
      T16 = T15;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:954
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:965
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:949
  return(T16);
}

dylan_value Ktransmogrify_method_list_tail_groundedYdispatch_engine_internalVdylanI (dylan_value ds_, dylan_value ordered_, dylan_value subordered_, dylan_value ambig_, dylan_value kludgeQ_) {
  dylan_value T5_0;
  dylan_value nordered_;
  dylan_value nambig_;
  dylan_value argsF8;
  dylan_value T9;
  dylan_value T10_0;
  dylan_value T11_0;
  dylan_value mF12;
  dylan_value othermeths_;
  dylan_value T14;
  dylan_value more_;
  dylan_value mF16;
  dylan_value T17_0;
  dylan_value T18_0;
  dylan_value T19_0;
  dylan_value T20;
  dylan_value T21;
  dylan_value T22;
  dylan_value T23_0;
  dylan_value T23_1;
  dylan_value T24;
  dylan_value T25;
  _KLsimple_object_vectorGVKd_4 T26 = {&KLsimple_object_vectorGVKdW, (dylan_value) 17};
  dylan_value T27;
  _KLsimple_object_vectorGVKd_12 T28 = {&KLsimple_object_vectorGVKdW, (dylan_value) 49};
  dylan_value T29_0;
  dylan_value dsF30T, dsF30;
  dylan_value T31;
  dylan_value orderedF32T, orderedF32;
  dylan_value T33;
  dylan_value suborderedF34T, suborderedF34;
  dylan_value T35;
  dylan_value ambigF36T, ambigF36;
  dylan_value T37;
  dylan_value kludgeQF38T, kludgeQF38;
  dylan_value T39;
  dylan_value T40;
  dylan_value T41;
  dylan_value T42;
  dylan_value T43_0;
  dylan_value T44;
  dylan_value T45;
  dylan_value T46;
  DWORD T47;
  dylan_value T48;
  dylan_value T49;
  dylan_value T50;
  dylan_value T51;
  dylan_value T52_0;
  dylan_value T53_0;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:767
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:792
  dsF30T = ds_;
  orderedF32T = ordered_;
  suborderedF34T = subordered_;
  ambigF36T = ambig_;
  kludgeQF38T = kludgeQ_;
L0: ;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:792
    dsF30 = dsF30T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:792
    T31 = dsF30;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:792
    orderedF32 = orderedF32T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:792
    T33 = orderedF32;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:792
    suborderedF34 = suborderedF34T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:792
    T35 = suborderedF34;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:792
    ambigF36 = ambigF36T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:792
    T37 = ambigF36;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:792
    kludgeQF38 = kludgeQF38T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:792
    T39 = kludgeQF38;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:771
    T20 = primitive_idQ(T35,&KPempty_listVKi);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:771
    if (T20 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:772
      T21 = primitive_idQ(T37,&KPempty_listVKi);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:772
      if (T21 != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:773
        T5_0 = &KPempty_listVKi;
        T11_0 = T5_0;
      } else {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:772
        if (T39 != &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:776
          T22 = SLOT_VALUE(T31, 2);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:778
          T23_0 = Kcompute_sorted_applicable_methods_1Ydispatch_engine_internalVdylanI(T37, T22, &KPorder_methods_desperatelyYdispatch_engine_internalVdylan);
          T23_1 = MV_GET_ELT(1);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:777
          nordered_ = T23_0;
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:777
          nambig_ = T23_1;
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:779
          T24 = primitive_idQ(nordered_,&KPempty_listVKi);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:779
          if (T24 == &KPfalseVKi) {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:780
            T25 = SLOT_VALUE(T31, 0);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:781
            argsF8 = Kreconstruct_args_from_mepargsVKeI(T25, T22);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:789
            T26.vector_element_[0] = T25;
            T26.vector_element_[1] = argsF8;
            T26.vector_element_[2] = T37;
            T26.vector_element_[3] = T33;
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:789
            T27 = primitive_copy_vector(&T26);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:782
            T28.vector_element_[0] = IKJgeneric_;
            T28.vector_element_[1] = T25;
            T28.vector_element_[2] = &KJarguments_;
            T28.vector_element_[3] = argsF8;
            T28.vector_element_[4] = &KJordered_;
            T28.vector_element_[5] = T33;
            T28.vector_element_[6] = IKJambiguous_;
            T28.vector_element_[7] = T37;
            T28.vector_element_[8] = &KJformat_string_;
            T28.vector_element_[9] = &K57;
            T28.vector_element_[10] = &KJformat_arguments_;
            T28.vector_element_[11] = T27;
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:782
            CONGRUENT_CALL_PROLOG(&KmakeVKd, 2);
            T9 = CONGRUENT_CALL2(&KLambiguous_methods_warningGVKg, &T28);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:782
            KdispwarnYdispatch_engine_internalVdylanI(T9, T31);
          }
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:779
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:792
          dsF30T = ds_;
          orderedF32T = ordered_;
          suborderedF34T = nordered_;
          ambigF36T = nambig_;
          kludgeQF38T = &KPfalseVKi;
          goto L0;
          T10_0 = T29_0;
        } else {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:794
          T40 = SLOT_VALUE(T31, 0);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:794
          T41 = Kmake_ambiguous_methods_engine_nodeVKgI(T33, T37);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:794
          T42 = primitive_object_allocate_filled(3,&KLpairGVKdW,2,&KPunboundVKi,0,0,&KPunboundVKi);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:794
          SLOT_VALUE_SETTER(T41, T42, 0);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:794
          SLOT_VALUE_SETTER(T40, T42, 1);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:794
          T43_0 = T42;
          T10_0 = T43_0;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:772
        T11_0 = T10_0;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:772
      T19_0 = T11_0;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:797
      T44 = SLOT_VALUE_INITD(T35, 0);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:797
      mF12 = T44;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:799
      T45 = SLOT_VALUE_INITD(mF12, 1);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:799
      T46 = SLOT_VALUE_INITD(T45, 0);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:799
      T47 = primitive_cast_integer_as_raw(T46);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:799
      T48 = primitive_machine_word_logbitQ(22,T47);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:799
      if (T48 != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:800
        T49 = SLOT_VALUE_INITD(T35, 1);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:800
        othermeths_ = T49;
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:801
        T14 = Ktransmogrify_method_list_tail_groundedYdispatch_engine_internalVdylanI(T31, T33, othermeths_, T37, T39);
        more_ = T14;
      } else {
        more_ = &KPempty_listVKi;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:799
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:806
      T50 = primitive_instanceQ(mF12,&KLaccessor_methodGVKe);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:806
      if (T50 != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:808
        mF16 = mF12;
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:809
        T17_0 = Kmake_slot_accessing_next_method_chainVKgI(T31, mF16);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:809
        T53_0 = T17_0;
        T18_0 = T53_0;
      } else {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:810
        T51 = primitive_object_allocate_filled(3,&KLpairGVKdW,2,&KPunboundVKi,0,0,&KPunboundVKi);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:810
        SLOT_VALUE_SETTER(mF12, T51, 0);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:810
        SLOT_VALUE_SETTER(more_, T51, 1);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:810
        T52_0 = T51;
        T18_0 = T52_0;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:806
      T19_0 = T18_0;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:771
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:792
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:767
  MV_SET_COUNT(1);
  return(T19_0);
}

dylan_value KLambiguous_methods_warningGZ32ZconstructorYdispatch_engine_internalVdylanMM0I (dylan_value class_, dylan_value init_args_, dylan_value Uunique_condition_format_string_, dylan_value Uunique_condition_format_arguments_, dylan_value Uunique_ambiguous_methods_generic_, dylan_value Uunique_ambiguous_methods_ordered_, dylan_value Uunique_ambiguous_methods_ambiguous_, dylan_value Uunique_ambiguous_methods_arguments_) {
  dylan_value T9;
  dylan_value Uunique_ambiguous_methods_genericF10;
  dylan_value T11;
  dylan_value Uunique_ambiguous_methods_ambiguousF12;
  dylan_value T13;
  dylan_value Uunique_ambiguous_methods_argumentsF14;
  dylan_value T15;
  dylan_value Uunique_ambiguous_methods_genericF16;
  dylan_value Uunique_ambiguous_methods_orderedF17;
  dylan_value Uunique_ambiguous_methods_ambiguousF18;
  dylan_value Uunique_ambiguous_methods_argumentsF19;
  dylan_value T20_0;
  dylan_value T21;
  _KLsimple_object_vectorGVKd_1 T22 = {&KLsimple_object_vectorGVKdW, (dylan_value) 5};
  dylan_value T23;
  dylan_value T24;
  _KLsimple_object_vectorGVKd_1 T25 = {&KLsimple_object_vectorGVKdW, (dylan_value) 5};
  dylan_value T26;
  dylan_value T27;
  _KLsimple_object_vectorGVKd_1 T28 = {&KLsimple_object_vectorGVKdW, (dylan_value) 5};
  dylan_value T29;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:942
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:942
  T21 = primitive_idQ(Uunique_ambiguous_methods_generic_,&KPunboundVKi);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:942
  if (T21 != &KPfalseVKi) {
    T22.vector_element_[0] = IKJgeneric_;
    T23 = KerrorVKdMM1I(&K93, &T22);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:942
    T9 = T23;
    Uunique_ambiguous_methods_genericF10 = T9;
  } else {
    Uunique_ambiguous_methods_genericF10 = Uunique_ambiguous_methods_generic_;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:942
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:942
  T24 = primitive_idQ(Uunique_ambiguous_methods_ambiguous_,&KPunboundVKi);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:942
  if (T24 != &KPfalseVKi) {
    T25.vector_element_[0] = IKJambiguous_;
    T26 = KerrorVKdMM1I(&K93, &T25);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:942
    T11 = T26;
    Uunique_ambiguous_methods_ambiguousF12 = T11;
  } else {
    Uunique_ambiguous_methods_ambiguousF12 = Uunique_ambiguous_methods_ambiguous_;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:942
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:942
  T27 = primitive_idQ(Uunique_ambiguous_methods_arguments_,&KPunboundVKi);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:942
  if (T27 != &KPfalseVKi) {
    T28.vector_element_[0] = &KJarguments_;
    T29 = KerrorVKdMM1I(&K93, &T28);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:942
    T13 = T29;
    Uunique_ambiguous_methods_argumentsF14 = T13;
  } else {
    Uunique_ambiguous_methods_argumentsF14 = Uunique_ambiguous_methods_arguments_;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:942
  T15 = primitive_object_allocate_filled(7,&KLambiguous_methods_warningGVKgW,6,&KPunboundVKi,0,0,&KPunboundVKi);
  SLOT_VALUE_SETTER(Uunique_condition_format_string_, T15, 0);
  SLOT_VALUE_SETTER(Uunique_condition_format_arguments_, T15, 1);
  Uunique_ambiguous_methods_genericF16 = Uunique_ambiguous_methods_genericF10;
  SLOT_VALUE_SETTER(Uunique_ambiguous_methods_genericF16, T15, 2);
  Uunique_ambiguous_methods_orderedF17 = Uunique_ambiguous_methods_ordered_;
  SLOT_VALUE_SETTER(Uunique_ambiguous_methods_orderedF17, T15, 3);
  Uunique_ambiguous_methods_ambiguousF18 = Uunique_ambiguous_methods_ambiguousF12;
  SLOT_VALUE_SETTER(Uunique_ambiguous_methods_ambiguousF18, T15, 4);
  Uunique_ambiguous_methods_argumentsF19 = Uunique_ambiguous_methods_argumentsF14;
  SLOT_VALUE_SETTER(Uunique_ambiguous_methods_argumentsF19, T15, 5);
  APPLY2(&KinitializeVKd, T15, init_args_);
  T20_0 = T15;
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:942
  MV_SET_COUNT(1);
  return(T20_0);
}

dylan_value KPorder_specializers_desperatelyYdispatch_engine_internalVdylanI (dylan_value t1_, dylan_value t2_, dylan_value arg_) {
  dylan_value T3;
  dylan_value T4;
  dylan_value T5_0;
  dylan_value T5_1;
  dylan_value orderF6;
  dylan_value ntypeF7;
  dylan_value T8_0;
  dylan_value T8_1;
  dylan_value T9_0;
  dylan_value T9_1;
  dylan_value T10;
  dylan_value T11_0;
  dylan_value T11_1;
  dylan_value T12_0;
  dylan_value T12_1;
  dylan_value T13;
  dylan_value T14;
  dylan_value T15_0;
  dylan_value T15_1;
  dylan_value orderF16;
  dylan_value ntypeF17;
  dylan_value T18_0;
  dylan_value T18_1;
  dylan_value T19_0;
  dylan_value T19_1;
  dylan_value T20;
  dylan_value T21_0;
  dylan_value T21_1;
  dylan_value T22_0;
  dylan_value T22_1;
  dylan_value T23;
  dylan_value argF24;
  dylan_value T25;
  dylan_value T26_0;
  dylan_value T26_1;
  dylan_value T27_0;
  dylan_value T27_1;
  dylan_value T28;
  dylan_value T29;
  dylan_value T30;
  dylan_value T31_0;
  dylan_value T31_1;
  dylan_value T32_0;
  dylan_value T32_1;
  dylan_value T33_0;
  dylan_value T33_1;
  dylan_value T34;
  dylan_value T35;
  dylan_value T36;
  dylan_value T37_0;
  dylan_value T37_1;
  dylan_value T38_0;
  dylan_value T38_1;
  dylan_value T39;
  dylan_value T40;
  dylan_value T41_0;
  dylan_value T41_1;
  dylan_value T42_0;
  dylan_value T42_1;
  dylan_value T43_0;
  dylan_value T43_1;
  dylan_value T44_0;
  dylan_value T44_1;
  dylan_value T45_0;
  dylan_value T45_1;
  dylan_value T46_0;
  dylan_value T46_1;
  dylan_value T47_0;
  dylan_value T47_1;
  dylan_value T48_0;
  dylan_value T48_1;
  dylan_value T49_0;
  dylan_value T49_1;
  dylan_value T50_0;
  dylan_value T50_1;
  dylan_value T51_0;
  dylan_value T51_1;
  dylan_value T52_0;
  dylan_value T52_1;
  dylan_value T53;
  dylan_value T54;
  dylan_value T55;
  dylan_value T56;
  dylan_value T57;
  dylan_value T58;
  dylan_value T59;
  dylan_value T60;
  dylan_value T61;
  dylan_value T62;
  dylan_value T63;
  dylan_value T64;
  dylan_value T65_0;
  dylan_value T65_1;
  dylan_value T66;
  dylan_value T67;
  dylan_value T68;
  dylan_value T69;
  dylan_value T70_0;
  dylan_value T70_1;
  dylan_value t1F71;
  dylan_value T72;
  dylan_value t2F73;
  dylan_value T74;
  dylan_value argF75;
  dylan_value T76;
  dylan_value T77_0;
  dylan_value T77_1;
  dylan_value T78_0;
  dylan_value T78_1;
  dylan_value t1F79;
  dylan_value t2F80;
  dylan_value argF81;
  dylan_value T82_0;
  dylan_value T82_1;
  dylan_value t1F83;
  dylan_value t2F84;
  dylan_value argF85;
  dylan_value T86_0;
  dylan_value T86_1;
  dylan_value T87;
  dylan_value T88;
  dylan_value T89;
  dylan_value T90;
  dylan_value T91_0;
  dylan_value T91_1;
  dylan_value t1F92;
  dylan_value t2F93;
  dylan_value argF94;
  dylan_value T95_0;
  dylan_value T95_1;
  dylan_value T96_0;
  dylan_value T96_1;
  dylan_value t1F97;
  dylan_value t2F98;
  dylan_value argF99;
  dylan_value T100_0;
  dylan_value T100_1;
  dylan_value t1F101T, t1F101;
  dylan_value t2F102T, t2F102;
  dylan_value argF103T, argF103;
  dylan_value T104_0;
  dylan_value T104_1;
  dylan_value T105;
  dylan_value T106;
  dylan_value T107_0;
  dylan_value T107_1;
  dylan_value T108;
  dylan_value T109_0;
  dylan_value T109_1;
  dylan_value T110;
  dylan_value T111;
  dylan_value T112;
  dylan_value T113;
  dylan_value T114;
  dylan_value T115_0;
  dylan_value T115_1;
  dylan_value T116_0;
  dylan_value T116_1;
  dylan_value T117_0;
  dylan_value T117_1;
  dylan_value T118;
  dylan_value T119;
  dylan_value T120;
  dylan_value T121_0;
  dylan_value T121_1;
  dylan_value T122;
  dylan_value T123;
  dylan_value T124;
  dylan_value T125;
  dylan_value T126;
  dylan_value T127_0;
  dylan_value T127_1;
  dylan_value T128;
  dylan_value T129;
  dylan_value T130_0;
  dylan_value T130_1;
  dylan_value T131_0;
  dylan_value T131_1;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1046
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1058
  t1F101T = t1_;
  t2F102T = t2_;
  argF103T = arg_;
L0: ;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1086
    t1F101 = t1F101T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1086
    t2F102 = t2F102T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1086
    argF103 = argF103T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1083
    t1F97 = t1F101;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1083
    t2F98 = t2F102;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1083
    argF99 = argF103;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1078
    t1F92 = t1F97;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1078
    t2F93 = t2F98;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1078
    argF94 = argF99;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1066
    t1F83 = t1F92;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1066
    t2F84 = t2F93;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1066
    argF85 = argF94;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1063
    t1F79 = t1F83;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1063
    t2F80 = t2F84;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1063
    argF81 = argF85;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1058
    t1F71 = t1F79;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1058
    T72 = t1F71;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1058
    t2F73 = t2F80;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1058
    T74 = t2F73;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1058
    argF75 = argF81;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1058
    T76 = argF75;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1048
    T64 = primitive_idQ(T72,T74);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1048
    if (T64 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1049
      T65_0 = IKJE_;
      T65_1 = T72;
      T52_0 = T65_0;
      T52_1 = T65_1;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1050
      T66 = primitive_instanceQ(T72,&KLunionGVKe);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1048
      if (T66 != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:961
        T53 = T72;
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1052
        T67 = SLOT_VALUE_INITD(T53, 1);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1053
        T68 = SLOT_VALUE_INITD(T53, 2);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1054
        T3 = primitive_instanceQ(T76,T67);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1054
        if (T3 != &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1055
          T4 = primitive_instanceQ(T76,T68);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1055
          if (T4 != &KPfalseVKi) {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1056
            T5_0 = KPorder_specializers_desperatelyYdispatch_engine_internalVdylanI(T67, T68, T76);
            T5_1 = MV_GET_ELT(1);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1056
            orderF6 = T5_0;
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1056
            ntypeF7 = T5_1;
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1057
            T69 = primitive_idQ(orderF6,IKJLG_);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1057
            if (T69 != &KPfalseVKi) {
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1060
              T77_0 = orderF6;
              T77_1 = ntypeF7;
              T8_0 = T77_0;
              T8_1 = T77_1;
            } else {
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1058
              t1F101T = ntypeF7;
              t2F102T = t2F80;
              argF103T = argF81;
              goto L0;
              T8_0 = T70_0;
              T8_1 = T70_1;
            }
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1057
            T9_0 = T8_0;
            T9_1 = T8_1;
          } else {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1063
            t1F101T = T67;
            t2F102T = T74;
            argF103T = T76;
            goto L0;
            T9_0 = T78_0;
            T9_1 = T78_1;
          }
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1055
          T12_0 = T9_0;
          T12_1 = T9_1;
        } else {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1065
          T10 = primitive_instanceQ(T76,T68);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1054
          if (T10 != &KPfalseVKi) {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1066
            t1F101T = T68;
            t2F102T = T74;
            argF103T = T76;
            goto L0;
            T11_0 = T82_0;
            T11_1 = T82_1;
          } else {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1068
            T86_0 = KerrorVKdMM1I(&K102, &KPempty_vectorVKi);
            T86_1 = MV_GET_ELT(1);
            T11_0 = T86_0;
            T11_1 = T86_1;
          }
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1054
          T12_0 = T11_0;
          T12_1 = T11_1;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1054
        T51_0 = T12_0;
        T51_1 = T12_1;
      } else {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1070
        T87 = primitive_instanceQ(T74,&KLunionGVKe);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1048
        if (T87 != &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:961
          T54 = T74;
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1072
          T88 = SLOT_VALUE_INITD(T54, 1);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1073
          T89 = SLOT_VALUE_INITD(T54, 2);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1074
          T13 = primitive_instanceQ(T76,T88);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1074
          if (T13 != &KPfalseVKi) {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1075
            T14 = primitive_instanceQ(T76,T89);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1075
            if (T14 != &KPfalseVKi) {
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1076
              T15_0 = KPorder_specializers_desperatelyYdispatch_engine_internalVdylanI(T88, T89, T76);
              T15_1 = MV_GET_ELT(1);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1076
              orderF16 = T15_0;
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1076
              ntypeF17 = T15_1;
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1077
              T90 = primitive_idQ(orderF16,IKJLG_);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1077
              if (T90 != &KPfalseVKi) {
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1080
                T95_0 = orderF16;
                T95_1 = ntypeF17;
                T18_0 = T95_0;
                T18_1 = T95_1;
              } else {
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1078
                t1F101T = T72;
                t2F102T = ntypeF17;
                argF103T = T76;
                goto L0;
                T18_0 = T91_0;
                T18_1 = T91_1;
              }
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1077
              T19_0 = T18_0;
              T19_1 = T18_1;
            } else {
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1083
              t1F101T = T72;
              t2F102T = T88;
              argF103T = T76;
              goto L0;
              T19_0 = T96_0;
              T19_1 = T96_1;
            }
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1075
            T22_0 = T19_0;
            T22_1 = T19_1;
          } else {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1085
            T20 = primitive_instanceQ(T76,T89);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1074
            if (T20 != &KPfalseVKi) {
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1086
              t1F101T = T72;
              t2F102T = T89;
              argF103T = T76;
              goto L0;
              T21_0 = T100_0;
              T21_1 = T100_1;
            } else {
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1088
              T104_0 = KerrorVKdMM1I(&K103, &KPempty_vectorVKi);
              T104_1 = MV_GET_ELT(1);
              T21_0 = T104_0;
              T21_1 = T104_1;
            }
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1074
            T22_0 = T21_0;
            T22_1 = T21_1;
          }
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1074
          T50_0 = T22_0;
          T50_1 = T22_1;
        } else {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1090
          T105 = primitive_instanceQ(T72,&KLsingletonGVKd);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1048
          if (T105 != &KPfalseVKi) {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:961
            T55 = T72;
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1091
            T106 = primitive_instanceQ(T74,&KLsingletonGVKd);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1091
            if (T106 != &KPfalseVKi) {
              T23 = IKJE_;
            } else {
              T23 = IKJL_;
            }
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1091
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1091
            T107_0 = T23;
            T107_1 = T55;
            T49_0 = T107_0;
            T49_1 = T107_1;
          } else {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1092
            T108 = primitive_instanceQ(T74,&KLsingletonGVKd);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1048
            if (T108 != &KPfalseVKi) {
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:961
              T56 = T74;
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1093
              T109_0 = IKJG_;
              T109_1 = T56;
              T48_0 = T109_0;
              T48_1 = T109_1;
            } else {
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1094
              T110 = primitive_instanceQ(T72,&KLsubclassGVKe);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1048
              if (T110 != &KPfalseVKi) {
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:961
                T57 = T72;
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1096
                T111 = SLOT_VALUE_INITD(T57, 1);
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1097
                T112 = primitive_instanceQ(T74,&KLsubclassGVKe);
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1097
                if (T112 != &KPfalseVKi) {
                  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:961
                  T58 = T74;
                  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1098
                  argF24 = T76;
                  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1100
                  T113 = SLOT_VALUE_INITD(T58, 1);
                  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1102
                  T114 = primitive_idQ(T111,T113);
                  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1101
                  if (T114 != &KPfalseVKi) {
                    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1102
                    T115_0 = IKJE_;
                    T115_1 = T57;
                    T27_0 = T115_0;
                    T27_1 = T115_1;
                  } else {
                    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1103
                    T25 = KPclassLYdispatch_engine_internalVdylanI(T111, T113, argF24);
                    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1101
                    if (T25 != &KPfalseVKi) {
                      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1103
                      T116_0 = IKJL_;
                      T116_1 = T57;
                      T26_0 = T116_0;
                      T26_1 = T116_1;
                    } else {
                      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1104
                      T117_0 = IKJG_;
                      T117_1 = T58;
                      T26_0 = T117_0;
                      T26_1 = T117_1;
                    }
                    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1101
                    T27_0 = T26_0;
                    T27_1 = T26_1;
                  }
                  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1101
                  T33_0 = T27_0;
                  T33_1 = T27_1;
                } else {
                  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1106
                  T118 = primitive_instanceQ(T74,&KLclassGVKd);
                  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1097
                  if (T118 != &KPfalseVKi) {
                    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:961
                    T59 = T74;
                    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1108
                    T119 = KsubtypeQVKdMM11I(&KLclassGVKd, T59);
                    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1108
                    if (T119 != &KPfalseVKi) {
                      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1109
                      T120 = primitive_idQ(T111,&KLobjectGVKd);
                      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1109
                      if (T120 != &KPfalseVKi) {
                        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1109
                        T28 = KPorder_specializersYdispatch_engine_internalVdylanI(&KLclassGVKd, T59, T76);
                        T29 = T28;
                      } else {
                        T29 = IKJL_;
                      }
                      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1109
                      T30 = T29;
                    } else {
                      T30 = IKJLG_;
                    }
                    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1108
                    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1108
                    T121_0 = T30;
                    T121_1 = T57;
                    T32_0 = T121_0;
                    T32_1 = T121_1;
                  } else {
                    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1114
                    T31_0 = KPorder_specializers_defaultYdispatch_engine_internalVdylanI(T57, T74);
                    T31_1 = MV_GET_ELT(1);
                    T32_0 = T31_0;
                    T32_1 = T31_1;
                  }
                  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1097
                  T33_0 = T32_0;
                  T33_1 = T32_1;
                }
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1097
                T47_0 = T33_0;
                T47_1 = T33_1;
              } else {
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1116
                T122 = primitive_instanceQ(T74,&KLsubclassGVKe);
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1048
                if (T122 != &KPfalseVKi) {
                  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:961
                  T60 = T74;
                  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1118
                  T123 = primitive_instanceQ(T72,&KLclassGVKd);
                  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1118
                  if (T123 != &KPfalseVKi) {
                    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:961
                    T61 = T72;
                    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1119
                    T124 = SLOT_VALUE_INITD(T60, 1);
                    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1121
                    T125 = KsubtypeQVKdMM11I(&KLclassGVKd, T61);
                    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1121
                    if (T125 != &KPfalseVKi) {
                      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1122
                      T126 = primitive_idQ(T124,&KLobjectGVKd);
                      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1122
                      if (T126 != &KPfalseVKi) {
                        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1122
                        T34 = KPorder_specializersYdispatch_engine_internalVdylanI(T61, &KLclassGVKd, T76);
                        T35 = T34;
                      } else {
                        T35 = IKJG_;
                      }
                      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1122
                      T36 = T35;
                    } else {
                      T36 = IKJLG_;
                    }
                    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1121
                    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1121
                    T127_0 = T36;
                    T127_1 = T60;
                    T38_0 = T127_0;
                    T38_1 = T127_1;
                  } else {
                    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1127
                    T37_0 = KPorder_specializers_defaultYdispatch_engine_internalVdylanI(T72, T60);
                    T37_1 = MV_GET_ELT(1);
                    T38_0 = T37_0;
                    T38_1 = T37_1;
                  }
                  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1118
                  T46_0 = T38_0;
                  T46_1 = T38_1;
                } else {
                  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1129
                  T128 = primitive_instanceQ(T72,&KLclassGVKd);
                  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1048
                  if (T128 != &KPfalseVKi) {
                    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:961
                    T62 = T72;
                    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1131
                    T129 = primitive_instanceQ(T74,&KLclassGVKd);
                    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1131
                    if (T129 != &KPfalseVKi) {
                      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:961
                      T63 = T74;
                      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1133
                      T39 = Kobject_classVKdI(T76);
                      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1133
                      T40 = KPclassLYdispatch_engine_internalVdylanI(T62, T63, T39);
                      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1133
                      if (T40 != &KPfalseVKi) {
                        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1133
                        T130_0 = IKJL_;
                        T130_1 = T62;
                        T41_0 = T130_0;
                        T41_1 = T130_1;
                      } else {
                        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1133
                        T131_0 = IKJG_;
                        T131_1 = T63;
                        T41_0 = T131_0;
                        T41_1 = T131_1;
                      }
                      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1133
                      T43_0 = T41_0;
                      T43_1 = T41_1;
                    } else {
                      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1135
                      T42_0 = KPorder_specializers_defaultYdispatch_engine_internalVdylanI(T62, T74);
                      T42_1 = MV_GET_ELT(1);
                      T43_0 = T42_0;
                      T43_1 = T42_1;
                    }
                    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1131
                    T45_0 = T43_0;
                    T45_1 = T43_1;
                  } else {
                    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1138
                    T44_0 = KPorder_specializers_defaultYdispatch_engine_internalVdylanI(T72, T74);
                    T44_1 = MV_GET_ELT(1);
                    T45_0 = T44_0;
                    T45_1 = T44_1;
                  }
                  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1048
                  T46_0 = T45_0;
                  T46_1 = T45_1;
                }
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1048
                T47_0 = T46_0;
                T47_1 = T46_1;
              }
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1048
              T48_0 = T47_0;
              T48_1 = T47_1;
            }
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1048
            T49_0 = T48_0;
            T49_1 = T48_1;
          }
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1048
          T50_0 = T49_0;
          T50_1 = T49_1;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1048
        T51_0 = T50_0;
        T51_1 = T50_1;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1048
      T52_0 = T51_0;
      T52_1 = T51_1;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1048
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1058
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1046
  MV_SET_ELT(1, T52_1);
  MV_SET_COUNT(2);
  return(T52_0);
}

dylan_value Kponder_this_argYdispatch_engine_internalVdylanI (dylan_value ds_, dylan_value thisarg_, dylan_value thisargclass_, dylan_value argnum_) {
  dylan_value methodsF4;
  dylan_value knownargtype_;
  dylan_value T6_0;
  dylan_value T6_1;
  dylan_value T6_2;
  dylan_value T6_3;
  dylan_value T6_4;
  dylan_value T7;
  dylan_value T8;
  dylan_value T9;
  dylan_value T10;
  dylan_value T11;
  dylan_value T12;
  dylan_value T13;
  dylan_value meth_;
  dylan_value T15;
  dylan_value T16;
  dylan_value T17;
  dylan_value T18;
  dylan_value methodsF19;
  dylan_value T20;
  dylan_value T21;
  dylan_value T22;
  dylan_value T23;
  dylan_value T24;
  dylan_value T25;
  dylan_value T26;
  dylan_value T27;
  dylan_value T28;
  dylan_value T29;
  dylan_value T30;
  dylan_value T31;
  dylan_value T32;
  dylan_value mF33;
  dylan_value sd_;
  dylan_value T35;
  dylan_value T36;
  dylan_value T37;
  dylan_value T38;
  dylan_value T39;
  dylan_value T40;
  dylan_value T41;
  dylan_value T42;
  DWORD T43;
  dylan_value T44;
  dylan_value T45;
  dylan_value T46;
  dylan_value T47;
  dylan_value T48;
  dylan_value methodsF49;
  dylan_value secondary_pF50;
  dylan_value force_blowup_pF51;
  dylan_value all_subtypes_pF52;
  dylan_value some_subtypes_pF53;
  dylan_value subtype_exceptionF54;
  dylan_value T55;
  dylan_value T56;
  dylan_value T57;
  dylan_value methodsF58T, methodsF58;
  dylan_value secondary_pF59T, secondary_pF59;
  dylan_value force_blowup_pF60T, force_blowup_pF60;
  dylan_value all_subtypes_pF61T, all_subtypes_pF61;
  dylan_value some_subtypes_pF62T, some_subtypes_pF62;
  dylan_value subtype_exceptionF63T, subtype_exceptionF63;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:590
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:596
  T7 = SLOT_VALUE(ds_, 5);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:596
  T8 = SLOT_VALUE_INITD(T7, 1);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:596
  methodsF4 = T8;
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:597
  T9 = SLOT_VALUE(ds_, 0);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:598
  T10 = SLOT_VALUE_INITD(ds_, 9);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:598
  T11 = KelementVKdMM3I(T10, argnum_, &KPempty_vectorVKi, &KLobjectGVKd);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:598
  T12 = T11;
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:598
  knownargtype_ = T12;
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:617
  methodsF58T = methodsF4;
  secondary_pF59T = &KPfalseVKi;
  force_blowup_pF60T = &KPfalseVKi;
  all_subtypes_pF61T = &KPtrueVKi;
  some_subtypes_pF62T = &KPfalseVKi;
  subtype_exceptionF63T = &KPfalseVKi;
L0: ;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:619
    methodsF58 = methodsF58T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:619
    secondary_pF59 = secondary_pF59T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:619
    force_blowup_pF60 = force_blowup_pF60T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:619
    all_subtypes_pF61 = all_subtypes_pF61T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:619
    some_subtypes_pF62 = some_subtypes_pF62T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:619
    subtype_exceptionF63 = subtype_exceptionF63T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:617
    methodsF49 = methodsF58;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:617
    secondary_pF50 = secondary_pF59;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:617
    force_blowup_pF51 = force_blowup_pF60;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:617
    all_subtypes_pF52 = all_subtypes_pF61;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:617
    some_subtypes_pF53 = some_subtypes_pF62;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:617
    subtype_exceptionF54 = subtype_exceptionF63;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:605
    T27 = primitive_idQ(methodsF49,&KPempty_listVKi);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:605
    if (T27 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:607
      T28 = primitive_idQ(subtype_exceptionF54,&KPtrueVKi);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:607
      if (T28 != &KPfalseVKi) {
        T13 = &KPfalseVKi;
      } else {
        T13 = subtype_exceptionF54;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:607
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:606
      T29 = secondary_pF50;
      MV_SET_ELT(0, secondary_pF50);
      MV_SET_ELT(1, force_blowup_pF51);
      MV_SET_ELT(2, all_subtypes_pF52);
      MV_SET_ELT(3, some_subtypes_pF53);
      MV_SET_ELT(4, T13);
      MV_SET_COUNT(5);
      T26 = T29;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:609
      T30 = SLOT_VALUE_INITD(methodsF49, 0);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:609
      meth_ = T30;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:610
      T15 = KPmethod_specializerVKgI(meth_, argnum_);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:612
      if (secondary_pF50 != &KPfalseVKi) {
        T17 = secondary_pF50;
      } else {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:612
        T16 = Ksecondary_dispatch_specializerQYdispatch_engine_internalVdylanI(T15, thisargclass_);
        T17 = T16;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:612
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:614
      if (force_blowup_pF51 != &KPfalseVKi) {
        T18 = force_blowup_pF51;
      } else {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:614
        T35 = primitive_idQ(argnum_,(dylan_value) 1);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:614
        if (T35 != &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:614
          T36 = primitive_instanceQ(meth_,&KLgetter_accessor_methodGVKe);
          T32 = T36;
        } else {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:614
          T37 = primitive_idQ(argnum_,(dylan_value) 5);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:614
          if (T37 != &KPfalseVKi) {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:614
            T38 = primitive_instanceQ(meth_,&KLsetter_accessor_methodGVKe);
            T31 = T38;
          } else {
            T31 = &KPfalseVKi;
          }
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:614
          T32 = T31;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:614
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:614
        if (T32 != &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:614
          mF33 = meth_;
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:614
          T39 = SLOT_VALUE_INITD(mF33, 1);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:614
          sd_ = T39;
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:614
          T40 = SLOT_VALUE_INITD(sd_, 2);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:614
          T41 = SLOT_VALUE(T40, 2);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:614
          T42 = SLOT_VALUE_INITD(T41, 0);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:614
          T43 = primitive_cast_integer_as_raw(T42);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:614
          T44 = primitive_machine_word_logbitQ(19,T43);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:614
          T45 = primitive_not(T44);
          T46 = T45;
        } else {
          T46 = &KPfalseVKi;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:614
        T18 = T46;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:614
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:615
      T47 = SLOT_VALUE_INITD(methodsF49, 1);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:615
      methodsF19 = T47;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:616
      T20 = Kconcrete_subtypeQVKeI(knownargtype_, T15, T9);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:616
      if (T20 != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:617
        methodsF58T = methodsF19;
        secondary_pF59T = T17;
        force_blowup_pF60T = T18;
        all_subtypes_pF61T = all_subtypes_pF61;
        some_subtypes_pF62T = &KPtrueVKi;
        subtype_exceptionF63T = subtype_exceptionF63;
        goto L0;
        T25 = T48;
      } else {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:620
        if (subtype_exceptionF54 != &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:621
          T55 = primitive_idQ(subtype_exceptionF54,&KPtrueVKi);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:621
          if (T55 != &KPfalseVKi) {
            T22 = T55;
          } else {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:621
            T21 = Ksame_specializerQVKgI(subtype_exceptionF54, T15);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:621
            T56 = primitive_not(T21);
            T22 = T56;
          }
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:621
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:621
          if (T22 != &KPfalseVKi) {
            T23 = &KPtrueVKi;
          } else {
            T23 = T15;
          }
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:621
          T24 = T23;
        } else {
          T24 = T15;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:620
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:619
        methodsF58T = methodsF19;
        secondary_pF59T = T17;
        force_blowup_pF60T = T18;
        all_subtypes_pF61T = &KPfalseVKi;
        some_subtypes_pF62T = some_subtypes_pF53;
        subtype_exceptionF63T = T24;
        goto L0;
        T25 = T57;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:616
      T26 = T25;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:605
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:617
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:590
  T6_0 = T26;
  T6_1 = MV_GET_ELT(1);
  T6_2 = MV_GET_ELT(2);
  T6_3 = MV_GET_ELT(3);
  T6_4 = MV_GET_ELT(4);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:590
  MV_SET_ELT(1, T6_1);
  MV_SET_ELT(2, T6_2);
  MV_SET_ELT(3, T6_3);
  MV_SET_ELT(4, T6_4);
  MV_SET_COUNT(5);
  return(T6_0);
}

dylan_value Ksecondary_dispatch_specializerQYdispatch_engine_internalVdylanI (dylan_value spec_, dylan_value thisargclass_) {
  dylan_value Utmp_;
  dylan_value T4_0;
  dylan_value T5_0;
  dylan_value T6_0;
  dylan_value T6_1;
  dylan_value someQ_;
  dylan_value allQ_;
  dylan_value T9_0;
  dylan_value T10_0;
  dylan_value T11_0;
  dylan_value T12;
  dylan_value T13;
  dylan_value T14;
  dylan_value T15;
  dylan_value T16_0;
  dylan_value specF17T, specF17;
  dylan_value T18;
  dylan_value thisargclassF19T, thisargclassF19;
  dylan_value T20;
  dylan_value T21_0;
  dylan_value T22;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:577
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:582
  specF17T = spec_;
  thisargclassF19T = thisargclass_;
L0: ;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:582
    specF17 = specF17T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:582
    T18 = specF17;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:582
    thisargclassF19 = thisargclassF19T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:582
    T20 = thisargclassF19;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:579
    T13 = primitive_instanceQ(T18,&KLunionGVKe);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:579
    if (T13 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:612
      T12 = T18;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:581
      T14 = SLOT_VALUE_INITD(T12, 1);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:581
      Utmp_ = Ksecondary_dispatch_specializerQYdispatch_engine_internalVdylanI(T14, T20);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:581
      if (Utmp_ != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:581
        T4_0 = Utmp_;
        T5_0 = T4_0;
      } else {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:582
        T15 = SLOT_VALUE_INITD(T12, 2);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:582
        specF17T = T15;
        thisargclassF19T = thisargclass_;
        goto L0;
        T5_0 = T16_0;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:581
      T11_0 = T5_0;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:584
      T6_0 = Kgrounded_has_instancesQVKeI(T20, T18);
      T6_1 = MV_GET_ELT(1);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:584
      someQ_ = T6_0;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:584
      allQ_ = T6_1;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:585
      if (someQ_ != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:585
        T22 = primitive_not(allQ_);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:585
        T21_0 = T22;
        T10_0 = T21_0;
      } else {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:585
        T9_0 = &KPfalseVKi;
        T10_0 = T9_0;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:585
      T11_0 = T10_0;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:579
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:582
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:577
  MV_SET_COUNT(1);
  return(T11_0);
}

dylan_value Kcompute_default_subdiscriminatorYdispatch_engine_internalVdylanI (dylan_value argnum_, dylan_value gf_, dylan_value thisarg_, dylan_value specs_, dylan_value nextd_) {
  dylan_value T5;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:487
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:522
  T5 = KfooF111I(thisarg_, gf_, argnum_, specs_, &KPempty_listVKi, &KPempty_listVKi, nextd_);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:487
  return(T5);
}

dylan_value Kponder_a_specializerYdispatch_engine_internalVdylanI (dylan_value spec_, dylan_value thisargclass_, dylan_value subclass_p_, dylan_value singletons_, dylan_value others_) {
  dylan_value specF5;
  dylan_value T6;
  dylan_value T7;
  dylan_value specF8;
  dylan_value T9_0;
  dylan_value T9_1;
  dylan_value T9_2;
  dylan_value subclass_pF10;
  dylan_value singletonsF11;
  dylan_value othersF12;
  dylan_value T13;
  dylan_value T14;
  dylan_value T15_0;
  dylan_value T15_1;
  dylan_value T15_2;
  dylan_value T16_0;
  dylan_value T16_1;
  dylan_value T16_2;
  dylan_value T17_0;
  dylan_value T17_1;
  dylan_value T17_2;
  dylan_value T18_0;
  dylan_value T18_1;
  dylan_value T18_2;
  dylan_value T19_0;
  dylan_value T19_1;
  dylan_value T19_2;
  dylan_value T20;
  dylan_value T21_0;
  dylan_value T21_1;
  dylan_value T21_2;
  dylan_value T22;
  dylan_value T23;
  dylan_value T24;
  dylan_value T25;
  dylan_value T26_0;
  dylan_value T26_1;
  dylan_value T26_2;
  dylan_value T27;
  dylan_value T28_0;
  dylan_value T28_1;
  dylan_value T28_2;
  dylan_value T29;
  dylan_value T30;
  dylan_value T31;
  dylan_value T32_0;
  dylan_value T32_1;
  dylan_value T32_2;
  dylan_value specF33T, specF33;
  dylan_value T34;
  dylan_value thisargclassF35T, thisargclassF35;
  dylan_value T36;
  dylan_value subclass_pF37T, subclass_pF37;
  dylan_value T38;
  dylan_value singletonsF39T, singletonsF39;
  dylan_value T40;
  dylan_value othersF41T, othersF41;
  dylan_value T42;
  dylan_value T43;
  dylan_value T44;
  dylan_value T45_0;
  dylan_value T45_1;
  dylan_value T45_2;
  _KLsimple_object_vectorGVKd_1 T46 = {&KLsimple_object_vectorGVKdW, (dylan_value) 5};
  dylan_value T47_0;
  dylan_value T47_1;
  dylan_value T47_2;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:456
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:479
  specF33T = spec_;
  thisargclassF35T = thisargclass_;
  subclass_pF37T = subclass_p_;
  singletonsF39T = singletons_;
  othersF41T = others_;
L0: ;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:479
    specF33 = specF33T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:479
    T34 = specF33;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:479
    thisargclassF35 = thisargclassF35T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:479
    T36 = thisargclassF35;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:479
    subclass_pF37 = subclass_pF37T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:479
    T38 = subclass_pF37;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:479
    singletonsF39 = singletonsF39T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:479
    T40 = singletonsF39;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:479
    othersF41 = othersF41T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:479
    T42 = othersF41;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:459
    T20 = primitive_instanceQ(T34,&KLclassGVKd);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:459
    if (T20 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:461
      T21_0 = T38;
      T21_1 = T40;
      T21_2 = T42;
      T19_0 = T21_0;
      T19_1 = T21_1;
      T19_2 = T21_2;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:459
      T22 = primitive_instanceQ(T34,&KLsingletonGVKd);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:459
      if (T22 != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:463
        specF5 = T34;
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:464
        T23 = SLOT_VALUE_INITD(specF5, 1);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:466
        T6 = Kobject_classVKdI(T23);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:466
        T24 = primitive_idQ(T6,T36);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:466
        if (T24 != &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:466
          T25 = primitive_object_allocate_filled(3,&KLpairGVKdW,2,&KPunboundVKi,0,0,&KPunboundVKi);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:466
          SLOT_VALUE_SETTER(T23, T25, 0);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:466
          SLOT_VALUE_SETTER(T40, T25, 1);
          T7 = T25;
        } else {
          T7 = T40;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:466
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:467
        T26_0 = T38;
        T26_1 = T7;
        T26_2 = T42;
        T18_0 = T26_0;
        T18_1 = T26_1;
        T18_2 = T26_2;
      } else {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:459
        T27 = primitive_instanceQ(T34,&KLsubclassGVKe);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:459
        if (T27 != &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:474
          T28_0 = &KPtrueVKi;
          T28_1 = T40;
          T28_2 = T42;
          T17_0 = T28_0;
          T17_1 = T28_1;
          T17_2 = T28_2;
        } else {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:459
          T29 = primitive_instanceQ(T34,&KLunionGVKe);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:459
          if (T29 != &KPfalseVKi) {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:476
            specF8 = T34;
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:478
            T30 = SLOT_VALUE_INITD(specF8, 1);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:478
            T9_0 = Kponder_a_specializerYdispatch_engine_internalVdylanI(T30, T36, T38, T40, T42);
            T9_1 = MV_GET_ELT(1);
            T9_2 = MV_GET_ELT(2);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:477
            subclass_pF10 = T9_0;
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:477
            singletonsF11 = T9_1;
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:477
            othersF12 = T9_2;
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:479
            T31 = SLOT_VALUE_INITD(specF8, 2);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:479
            specF33T = T31;
            thisargclassF35T = thisargclass_;
            subclass_pF37T = subclass_pF10;
            singletonsF39T = singletonsF11;
            othersF41T = othersF12;
            goto L0;
            T16_0 = T32_0;
            T16_1 = T32_1;
            T16_2 = T32_2;
          } else {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:459
            T43 = primitive_instanceQ(T34,&KLlimited_typeGVKe);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:459
            if (T43 != &KPfalseVKi) {
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:482
              T13 = Kgrounded_has_instancesQVKeI(T36, T34);
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:482
              if (T13 != &KPfalseVKi) {
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:482
                T44 = primitive_object_allocate_filled(3,&KLpairGVKdW,2,&KPunboundVKi,0,0,&KPunboundVKi);
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:482
                SLOT_VALUE_SETTER(T34, T44, 0);
                // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:482
                SLOT_VALUE_SETTER(T42, T44, 1);
                T14 = T44;
              } else {
                T14 = T42;
              }
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:482
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:481
              T45_0 = T38;
              T45_1 = T40;
              T45_2 = T14;
              T15_0 = T45_0;
              T15_1 = T45_1;
              T15_2 = T45_2;
            } else {
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:459
              T46.vector_element_[0] = T34;
              // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:459
              T47_0 = KerrorVKdMM1I(&K42, &T46);
              T47_1 = MV_GET_ELT(1);
              T47_2 = MV_GET_ELT(2);
              T15_0 = T47_0;
              T15_1 = T47_1;
              T15_2 = T47_2;
            }
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:459
            T16_0 = T15_0;
            T16_1 = T15_1;
            T16_2 = T15_2;
          }
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:459
          T17_0 = T16_0;
          T17_1 = T16_1;
          T17_2 = T16_2;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:459
        T18_0 = T17_0;
        T18_1 = T17_1;
        T18_2 = T17_2;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:459
      T19_0 = T18_0;
      T19_1 = T18_1;
      T19_2 = T18_2;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:459
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:479
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:456
  MV_SET_ELT(1, T19_1);
  MV_SET_ELT(2, T19_2);
  MV_SET_COUNT(3);
  return(T19_0);
}

static dylan_value KfooF111I (dylan_value thisarg_, dylan_value gf_, dylan_value argnum_, dylan_value specs_, dylan_value truelist_, dylan_value falselist_, dylan_value nextd_) {
  dylan_value T7;
  dylan_value spec_;
  dylan_value nextspecs_;
  dylan_value T10;
  dylan_value T11_0;
  dylan_value T11_1;
  dylan_value T12_0;
  dylan_value T12_1;
  dylan_value thend_;
  dylan_value elsed_;
  dylan_value T15;
  dylan_value T16;
  dylan_value T17;
  dylan_value T18;
  dylan_value T19;
  dylan_value T20;
  dylan_value T21;
  dylan_value T22;
  dylan_value T23;
  dylan_value T24;
  dylan_value T25;
  dylan_value T26;
  dylan_value T27_0;
  dylan_value T27_1;
  dylan_value T28_0;
  dylan_value T28_1;
  dylan_value T29_0;
  dylan_value T29_1;
  dylan_value T30;
  dylan_value specsF31;
  dylan_value T32;
  dylan_value truelistF33;
  dylan_value T34;
  dylan_value falselistF35;
  dylan_value T36;
  dylan_value nextdF37;
  dylan_value T38;
  dylan_value specsF39T, specsF39;
  dylan_value truelistF40T, truelistF40;
  dylan_value falselistF41T, falselistF41;
  dylan_value nextdF42T, nextdF42;
  dylan_value T43;
  dylan_value T44;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:498
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:512
  specsF39T = specs_;
  truelistF40T = truelist_;
  falselistF41T = falselist_;
  nextdF42T = nextd_;
L0: ;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:514
    specsF39 = specsF39T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:514
    truelistF40 = truelistF40T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:514
    falselistF41 = falselistF41T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:514
    nextdF42 = nextdF42T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:512
    specsF31 = specsF39;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:512
    T32 = specsF31;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:512
    truelistF33 = truelistF40;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:512
    T34 = truelistF33;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:512
    falselistF35 = falselistF41;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:512
    T36 = falselistF35;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:512
    nextdF37 = nextdF42;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:499
    T23 = primitive_idQ(T32,&KPempty_listVKi);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:499
    if (T23 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:500
      T7 = nextdF37;
      MV_SET_ELT(0, nextdF37);
      MV_SET_COUNT(1);
      T22 = T7;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:502
      T24 = SLOT_VALUE_INITD(T32, 0);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:502
      spec_ = T24;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:503
      T25 = SLOT_VALUE_INITD(T32, 1);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:503
      nextspecs_ = T25;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:504
      T26 = primitive_idQ(nextdF37,Dabsent_engine_nodeVKg);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:504
      if (T26 != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:505
        T27_0 = nextdF37;
        T27_1 = nextdF37;
        T12_0 = T27_0;
        T12_1 = T27_1;
      } else {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:506
        T10 = primitive_instanceQ(thisarg_,spec_);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:504
        if (T10 != &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:507
          T28_0 = nextdF37;
          T28_1 = Dabsent_engine_nodeVKg;
          T11_0 = T28_0;
          T11_1 = T28_1;
        } else {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:509
          T29_0 = Dabsent_engine_nodeVKg;
          T29_1 = nextdF37;
          T11_0 = T29_0;
          T11_1 = T29_1;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:504
        T12_0 = T11_0;
        T12_1 = T11_1;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:504
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:504
      thend_ = T12_0;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:504
      elsed_ = T12_1;
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:511
      T15 = KsubsumedQF113I(spec_, T34);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:511
      if (T15 != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:512
        specsF39T = nextspecs_;
        truelistF40T = truelistF40;
        falselistF41T = falselistF41;
        nextdF42T = thend_;
        goto L0;
        T21 = T30;
      } else {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:513
        T16 = KsubsumedQF113I(spec_, T36);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:511
        if (T16 != &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:514
          specsF39T = nextspecs_;
          truelistF40T = T34;
          falselistF41T = T36;
          nextdF42T = elsed_;
          goto L0;
          T20 = T38;
        } else {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:517
          T43 = primitive_object_allocate_filled(3,&KLpairGVKdW,2,&KPunboundVKi,0,0,&KPunboundVKi);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:517
          SLOT_VALUE_SETTER(spec_, T43, 0);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:517
          SLOT_VALUE_SETTER(T34, T43, 1);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:517
          T17 = KfooF111I(thisarg_, gf_, argnum_, nextspecs_, T43, T36, thend_);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:518
          T44 = primitive_object_allocate_filled(3,&KLpairGVKdW,2,&KPunboundVKi,0,0,&KPunboundVKi);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:518
          SLOT_VALUE_SETTER(spec_, T44, 0);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:518
          SLOT_VALUE_SETTER(T36, T44, 1);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:518
          T18 = KfooF111I(thisarg_, gf_, argnum_, nextspecs_, T34, T44, elsed_);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:516
          T19 = Kmake_if_type_discriminatorVKgI(argnum_, gf_, spec_, T17, T18);
          T20 = T19;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:511
        T21 = T20;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:511
      T22 = T21;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:499
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:512
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:498
  return(T22);
}

static dylan_value KsubsumedQF113I (dylan_value t_, dylan_value l_) {
  dylan_value T2;
  dylan_value T3;
  dylan_value T4;
  dylan_value T5;
  dylan_value T6;
  dylan_value T7;
  dylan_value T8;
  dylan_value T9;
  dylan_value T10;
  dylan_value tF11T, tF11;
  dylan_value T12;
  dylan_value lF13T, lF13;
  dylan_value T14;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:489
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:495
  tF11T = t_;
  lF13T = l_;
L0: ;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:495
    tF11 = tF11T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:495
    T12 = tF11;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:495
    lF13 = lF13T;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:495
    T14 = lF13;
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:490
    T7 = primitive_idQ(T14,&KPempty_listVKi);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:490
    if (T7 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:491
      T2 = &KPfalseVKi;
      MV_SET_ELT(0, &KPfalseVKi);
      MV_SET_COUNT(1);
      T6 = T2;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:492
      T8 = SLOT_VALUE_INITD(T14, 0);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:492
      T3 = Kgrounded_subtypeQVKeI(T12, T8);
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:490
      if (T3 != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:493
        T4 = &KPtrueVKi;
        MV_SET_ELT(0, &KPtrueVKi);
        MV_SET_COUNT(1);
        T5 = T4;
      } else {
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:495
        T9 = SLOT_VALUE_INITD(T14, 1);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:495
        tF11T = t_;
        lF13T = T9;
        goto L0;
        T5 = T10;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:490
      T6 = T5;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:490
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:495
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:489
  return(T6);
}

dylan_value Khandle_standard_dispatch_missYdispatch_engine_internalVdylanI (dylan_value ds_, dylan_value cache_, dylan_value parent_) {
  dylan_value T3_0;
  dylan_value T4;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:111
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:113
  Kcompute_headed_methodsYdispatch_engine_internalVdylanI(ds_);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:114
  Kcompute_argument_precheck_maskYdispatch_engine_internalVdylanI(ds_, cache_);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:115
  T4 = SLOT_VALUE(ds_, 1);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:116
  T3_0 = Kcompute_dispatch_from_rootYdispatch_engine_internalVdylanI(ds_, T4);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:111
  MV_SET_COUNT(1);
  return(T3_0);
}

dylan_value Ksame_specializersQVKgI (dylan_value sig1_, dylan_value sig2_) {
  dylan_value T2;
  dylan_value T3;
  DWORD T4;
  DWORD T5;
  DWORD T6;
  dylan_value T7;
  dylan_value T8;
  dylan_value T9;
  DWORD T10;
  DWORD T11;
  DWORD T12;
  dylan_value T13;
  dylan_value T14_0;
  dylan_value T15_0;
  dylan_value T16_0;
  dylan_value T17_0;
  dylan_value T18;
  dylan_value T19;
  dylan_value T20;
  dylan_value T21;
  dylan_value T22;
  dylan_value T23;
  dylan_value T24;
  dylan_value T25;
  dylan_value T26;
  dylan_value T27;
  DWORD T28;
  dylan_value T29;
  DWORD iF30T, iF30;
  dylan_value T31;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1248
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1251
  T2 = SLOT_VALUE_INITD(sig1_, 1);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1251
  T3 = SLOT_VALUE_INITD(sig1_, 0);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1251
  T4 = primitive_cast_integer_as_raw(T3);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1251
  T5 = primitive_machine_word_logand(T4,1020);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1251
  T6 = primitive_machine_word_logior(T5,1);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1251
  T7 = primitive_cast_raw_as_integer(T6);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1252
  T8 = SLOT_VALUE_INITD(sig2_, 1);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1252
  T9 = SLOT_VALUE_INITD(sig2_, 0);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1252
  T10 = primitive_cast_integer_as_raw(T9);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1252
  T11 = primitive_machine_word_logand(T10,1020);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1252
  T12 = primitive_machine_word_logior(T11,1);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1252
  T13 = primitive_cast_raw_as_integer(T12);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1250
  T18 = primitive_idQ(T7,T13);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1250
  if (T18 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1250
    T19 = primitive_idQ(T2,T8);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1250
    if (T19 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1250
      T14_0 = T19;
      T15_0 = T14_0;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1250
      iF30T = 1;
    L0: ;
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1250
        iF30 = iF30T;
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1250
        T31 = primitive_cast_raw_as_integer(iF30);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1250
        T25 = primitive_idQ(T31,T7);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1250
        if (T25 != &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1250
          T20 = &KPtrueVKi;
          MV_SET_ELT(0, &KPtrueVKi);
          MV_SET_COUNT(1);
          T24 = T20;
        } else {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1250
          T26 = REPEATED_DYLAN_VALUE_SLOT_VALUE_TAGGED(T2, 1, iF30);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1250
          T27 = REPEATED_DYLAN_VALUE_SLOT_VALUE_TAGGED(T8, 1, iF30);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1250
          T21 = Ksame_specializerQVKgI(T26, T27);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1250
          if (T21 != &KPfalseVKi) {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1250
            T28 = primitive_machine_word_add_signal_overflow(iF30,4);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1250
            iF30T = T28;
            goto L0;
            T23 = T29;
          } else {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1250
            T22 = &KPfalseVKi;
            MV_SET_ELT(0, &KPfalseVKi);
            MV_SET_COUNT(1);
            T23 = T22;
          }
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1250
          T24 = T23;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1250
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1250
      T15_0 = T24;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1250
    T17_0 = T15_0;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1250
    T16_0 = &KPfalseVKi;
    T17_0 = T16_0;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1250
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1248
  MV_SET_COUNT(1);
  return(T17_0);
}

dylan_value Ksame_specializers_spreadQVKgI (dylan_value req1_, dylan_value nreq1_, dylan_value req2_, dylan_value nreq2_) {
  dylan_value T5_0;
  dylan_value T6_0;
  dylan_value T7_0;
  dylan_value T8_0;
  dylan_value T9;
  dylan_value T10;
  dylan_value T11;
  dylan_value T12;
  dylan_value T13;
  dylan_value T14;
  dylan_value T15;
  dylan_value T16;
  dylan_value T17;
  dylan_value T18;
  DWORD T19;
  dylan_value T20;
  DWORD iF21T, iF21;
  dylan_value T22;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1226
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1230
  T9 = primitive_idQ(nreq1_,nreq2_);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1230
  if (T9 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1231
    T10 = primitive_idQ(req1_,req2_);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1231
    if (T10 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1231
      T5_0 = T10;
      T6_0 = T5_0;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1239
      iF21T = 1;
    L0: ;
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1239
        iF21 = iF21T;
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1237
        T22 = primitive_cast_raw_as_integer(iF21);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1234
        T16 = primitive_idQ(T22,nreq1_);
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1234
        if (T16 != &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1235
          T11 = &KPtrueVKi;
          MV_SET_ELT(0, &KPtrueVKi);
          MV_SET_COUNT(1);
          T15 = T11;
        } else {
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1237
          T17 = REPEATED_DYLAN_VALUE_SLOT_VALUE_TAGGED(req1_, 1, iF21);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1238
          T18 = REPEATED_DYLAN_VALUE_SLOT_VALUE_TAGGED(req2_, 1, iF21);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1236
          T12 = Ksame_specializerQVKgI(T17, T18);
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1234
          if (T12 != &KPfalseVKi) {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1239
            T19 = primitive_machine_word_add_signal_overflow(iF21,4);
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1239
            iF21T = T19;
            goto L0;
            T14 = T20;
          } else {
            // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1241
            T13 = &KPfalseVKi;
            MV_SET_ELT(0, &KPfalseVKi);
            MV_SET_COUNT(1);
            T14 = T13;
          }
          // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1234
          T15 = T14;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1234
        // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1239
      T6_0 = T15;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1231
    T8_0 = T6_0;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1230
    T7_0 = &KPfalseVKi;
    T8_0 = T7_0;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1230
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:1226
  MV_SET_COUNT(1);
  return(T8_0);
}

dylan_value KLambiguous_methods_errorGZ32ZconstructorYdispatch_engine_internalVdylanMM0I (dylan_value class_, dylan_value init_args_, dylan_value Uunique_condition_format_string_, dylan_value Uunique_condition_format_arguments_, dylan_value Uunique_ambiguous_methods_generic_, dylan_value Uunique_ambiguous_methods_ordered_, dylan_value Uunique_ambiguous_methods_ambiguous_, dylan_value Uunique_ambiguous_methods_arguments_) {
  dylan_value T9;
  dylan_value Uunique_ambiguous_methods_genericF10;
  dylan_value T11;
  dylan_value Uunique_ambiguous_methods_ambiguousF12;
  dylan_value T13;
  dylan_value Uunique_ambiguous_methods_argumentsF14;
  dylan_value T15;
  dylan_value Uunique_ambiguous_methods_genericF16;
  dylan_value Uunique_ambiguous_methods_orderedF17;
  dylan_value Uunique_ambiguous_methods_ambiguousF18;
  dylan_value Uunique_ambiguous_methods_argumentsF19;
  dylan_value T20_0;
  dylan_value T21;
  _KLsimple_object_vectorGVKd_1 T22 = {&KLsimple_object_vectorGVKdW, (dylan_value) 5};
  dylan_value T23;
  dylan_value T24;
  _KLsimple_object_vectorGVKd_1 T25 = {&KLsimple_object_vectorGVKdW, (dylan_value) 5};
  dylan_value T26;
  dylan_value T27;
  _KLsimple_object_vectorGVKd_1 T28 = {&KLsimple_object_vectorGVKdW, (dylan_value) 5};
  dylan_value T29;

  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:945
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:945
  T21 = primitive_idQ(Uunique_ambiguous_methods_generic_,&KPunboundVKi);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:945
  if (T21 != &KPfalseVKi) {
    T22.vector_element_[0] = IKJgeneric_;
    T23 = KerrorVKdMM1I(&K93, &T22);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:945
    T9 = T23;
    Uunique_ambiguous_methods_genericF10 = T9;
  } else {
    Uunique_ambiguous_methods_genericF10 = Uunique_ambiguous_methods_generic_;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:945
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:945
  T24 = primitive_idQ(Uunique_ambiguous_methods_ambiguous_,&KPunboundVKi);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:945
  if (T24 != &KPfalseVKi) {
    T25.vector_element_[0] = IKJambiguous_;
    T26 = KerrorVKdMM1I(&K93, &T25);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:945
    T11 = T26;
    Uunique_ambiguous_methods_ambiguousF12 = T11;
  } else {
    Uunique_ambiguous_methods_ambiguousF12 = Uunique_ambiguous_methods_ambiguous_;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:945
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:945
  T27 = primitive_idQ(Uunique_ambiguous_methods_arguments_,&KPunboundVKi);
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:945
  if (T27 != &KPfalseVKi) {
    T28.vector_element_[0] = &KJarguments_;
    T29 = KerrorVKdMM1I(&K93, &T28);
    // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:945
    T13 = T29;
    Uunique_ambiguous_methods_argumentsF14 = T13;
  } else {
    Uunique_ambiguous_methods_argumentsF14 = Uunique_ambiguous_methods_arguments_;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:945
  T15 = primitive_object_allocate_filled(7,&KLambiguous_methods_errorGVKgW,6,&KPunboundVKi,0,0,&KPunboundVKi);
  SLOT_VALUE_SETTER(Uunique_condition_format_string_, T15, 0);
  SLOT_VALUE_SETTER(Uunique_condition_format_arguments_, T15, 1);
  Uunique_ambiguous_methods_genericF16 = Uunique_ambiguous_methods_genericF10;
  SLOT_VALUE_SETTER(Uunique_ambiguous_methods_genericF16, T15, 2);
  Uunique_ambiguous_methods_orderedF17 = Uunique_ambiguous_methods_ordered_;
  SLOT_VALUE_SETTER(Uunique_ambiguous_methods_orderedF17, T15, 3);
  Uunique_ambiguous_methods_ambiguousF18 = Uunique_ambiguous_methods_ambiguousF12;
  SLOT_VALUE_SETTER(Uunique_ambiguous_methods_ambiguousF18, T15, 4);
  Uunique_ambiguous_methods_argumentsF19 = Uunique_ambiguous_methods_argumentsF14;
  SLOT_VALUE_SETTER(Uunique_ambiguous_methods_argumentsF19, T15, 5);
  APPLY2(&KinitializeVKd, T15, init_args_);
  T20_0 = T15;
  // /home/bruce/Development/dylan/opendylan/sources/dylan/discrimination.dylan:945
  MV_SET_COUNT(1);
  return(T20_0);
}


/* SYSTEM INIT CODE */

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

    T0 = KPresolve_symbolVKiI(&KJE_);
    if (T0 != &KJE_) {
      IKJE_ = T0;
    }
  }
  {
    dylan_value T0;

    T0 = KPresolve_symbolVKiI(&KJLG_);
    if (T0 != &KJLG_) {
      IKJLG_ = T0;
    }
  }
  {
    dylan_value T0;

    T0 = KPresolve_symbolVKiI(&KJL_);
    if (T0 != &KJL_) {
      IKJL_ = T0;
    }
  }
  {
    dylan_value T0;

    T0 = KPresolve_symbolVKiI(&KJG_);
    if (T0 != &KJG_) {
      IKJG_ = T0;
    }
  }
  {
    dylan_value T0;

    T0 = KPresolve_symbolVKiI(&KJgeneric_);
    if (T0 != &KJgeneric_) {
      IKJgeneric_ = T0;
      primitive_repeated_slot_value_setter(T0, &K96, 1, 2);
      primitive_repeated_slot_value_setter(T0, &K95, 1, 4);
      primitive_slot_value_setter(T0, &Kambiguous_methods_genericVKeHLambiguous_methodsG, 3);
    }
  }
  {
    dylan_value T0;

    T0 = KPresolve_symbolVKiI(&KJambiguous_);
    if (T0 != &KJambiguous_) {
      IKJambiguous_ = T0;
      primitive_repeated_slot_value_setter(T0, &K96, 1, 4);
      primitive_repeated_slot_value_setter(T0, &K95, 1, 8);
      primitive_slot_value_setter(T0, &Kambiguous_methods_ambiguousVKeHLambiguous_methodsG, 3);
    }
  }
  return;
}

/* USER INIT CODE */

void _Init_dylan__X_discrimination_for_user () {
  return;
}


/* eof */
