#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 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 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 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;
} _KLbooleanGVKd;

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

typedef struct {
  dylan_value wrapper;
  dylan_value element_type_;
  dylan_value table_vector_;
  dylan_value initial_entries_;
  dylan_value grow_size_function_;
  dylan_value weakQ_;
} _KLtableGVKd;

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

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

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 item_properties_;
  dylan_value computation_source_location_;
  dylan_value previous_computation_;
  dylan_value Pnext_computation_;
  dylan_value temporary_;
  dylan_value Penvironment_;
  dylan_value Pcomputation_type_;
  dylan_value Pnode_id_;
} _KLcomputationGVdfmc_flow_graph;

typedef struct {
  dylan_value wrapper;
} _KLobjectGVKd;

typedef struct {
  dylan_value wrapper;
  dylan_value users_;
  dylan_value Pgenerator_;
  dylan_value Penvironment_;
  dylan_value temporary_properties_;
  dylan_value Pnode_id_;
} _KLtemporaryGVdfmc_flow_graph;

typedef struct {
  dylan_value wrapper;
} _KLunboundGVKe;

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

#define  define__KLbyte_stringGVKd(nrepeated) \
  typedef struct { \
    dylan_value wrapper; \
    dylan_value size_; \
    char string_element_[nrepeated+1]; \
  } _KLbyte_stringGVKd_##nrepeated;
define__KLbyte_stringGVKd(16);
define__KLbyte_stringGVKd(36);
define__KLbyte_stringGVKd(26);
define__KLbyte_stringGVKd(29);
define__KLbyte_stringGVKd(27);
define__KLbyte_stringGVKd(28);
define__KLbyte_stringGVKd(15);
define__KLbyte_stringGVKd(2);
define__KLbyte_stringGVKd(1);
define__KLbyte_stringGVKd(11);
define__KLbyte_stringGVKd(8);
define__KLbyte_stringGVKd(6);
define__KLbyte_stringGVKd(7);
define__KLbyte_stringGVKd(9);
define__KLbyte_stringGVKd(21);
define__KLbyte_stringGVKd(38);
define__KLbyte_stringGVKd(4);
define__KLbyte_stringGVKd(10);
define__KLbyte_stringGVKd(31);
define__KLbyte_stringGVKd(24);
define__KLbyte_stringGVKd(3);
define__KLbyte_stringGVKd(17);
define__KLbyte_stringGVKd(22);
define__KLbyte_stringGVKd(18);
define__KLbyte_stringGVKd(19);
define__KLbyte_stringGVKd(20);
define__KLbyte_stringGVKd(23);
define__KLbyte_stringGVKd(13);

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 head_;
  dylan_value tail_;
} _KLpairGVKd;

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

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

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

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

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

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

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

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

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

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

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

typedef struct {
  dylan_value wrapper;
} _KLstreamGYcommon_extensionsVcommon_dylan;

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

#define  define__KLkeyword_closure_methodGVKe(nrepeated) \
  typedef struct { \
    dylan_value wrapper; \
    dylan_value xep_; \
    dylan_value function_signature_; \
    dylan_value mep_; \
    dylan_value iep_; \
    dylan_value keyword_specifiers_; \
    dylan_value environment_size_; \
    dylan_value environment_element_[nrepeated+1]; \
  } _KLkeyword_closure_methodGVKe_##nrepeated;
define__KLkeyword_closure_methodGVKe(0);

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

typedef struct {
  dylan_value wrapper;
  dylan_value type_estimate_to_be_normalizedQ_;
} _KLtype_estimate_bottomGVdfmc_typist;

typedef struct {
  dylan_value wrapper;
  dylan_value referenced_binding_;
  dylan_value users_;
} _KLdefined_constant_referenceGVdfmc_flow_graph;

typedef struct {
  dylan_value wrapper;
  dylan_value users_;
  dylan_value reference_value_;
  dylan_value Pnode_id_;
} _KLobject_referenceGVdfmc_flow_graph;

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 users_;
} _KLvalue_referenceGVdfmc_flow_graph;

typedef struct {
  dylan_value wrapper;
} _KLbindingGVdfmc_namespace;

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

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

typedef struct {
  dylan_value wrapper;
  dylan_value element_type_;
  dylan_value table_vector_;
  dylan_value initial_entries_;
  dylan_value grow_size_function_;
  dylan_value weakQ_;
} _KLtype_estimate_pair_match_tableGVdfmc_typist;

typedef struct {
  dylan_value wrapper;
  dylan_value element_type_;
  dylan_value table_vector_;
  dylan_value initial_entries_;
  dylan_value grow_size_function_;
  dylan_value weakQ_;
} _KLobject_tableGVKd;

typedef struct {
  dylan_value wrapper;
  dylan_value compiled_to_definitionsQ_;
  dylan_value compilation_from_definitions_startedQ_;
  dylan_value compilation_definitions_inconsistentQ_;
  dylan_value private_compilation_context_records_;
  dylan_value compilation_timings_;
} _KLcompilation_contextGVdfmc_common;

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

typedef struct {
  dylan_value wrapper;
  dylan_value emitted_name_;
  dylan_value private_model_definition_;
  dylan_value private_model_creator_;
  dylan_value private_Cfunction_signature_;
  dylan_value CPgf_cache_;
  dylan_value private_Cdebug_name_;
  dylan_value private_Pgeneric_function_methods_;
  dylan_value Cdiscriminator_;
  dylan_value Cgeneric_function_properties_;
  dylan_value private_signature_spec_;
  dylan_value private_Pgeneric_function_domains_;
  dylan_value parameters_dynamic_extent_;
  dylan_value Cgeneric_function_cache_info_;
} _KLBgeneric_functionGVdfmc_modeling;

typedef struct {
  dylan_value wrapper;
  dylan_value element_type_;
  dylan_value table_vector_;
  dylan_value initial_entries_;
  dylan_value grow_size_function_;
  dylan_value weakQ_;
} _KLtype_estimate_sequence_match_tableGVdfmc_typist;

typedef struct {
  dylan_value wrapper;
  dylan_value type_estimate_to_be_normalizedQ_;
  dylan_value type_estimate_unionees_variable_internal_;
  dylan_value type_estimate_unionees_cache_;
} _KLtype_estimate_unionGVdfmc_typist;

typedef struct {
  dylan_value wrapper;
  dylan_value type_estimate_to_be_normalizedQ_;
  dylan_value type_estimate_fixed_values_variable_internal_;
  dylan_value type_estimate_fixed_values_cache_;
  dylan_value type_estimate_rest_values_variable_internal_;
  dylan_value type_estimate_rest_values_cache_;
} _KLtype_estimate_valuesGVdfmc_typist;

typedef struct {
  dylan_value wrapper;
  dylan_value type_estimate_to_be_normalizedQ_;
  dylan_value type_estimate_raw_;
} _KLtype_estimate_rawGVdfmc_typist;

typedef struct {
  dylan_value wrapper;
  dylan_value type_estimate_to_be_normalizedQ_;
  dylan_value type_estimate_class_;
} _KLtype_estimate_classGVdfmc_typist;

typedef struct {
  dylan_value wrapper;
  dylan_value type_estimate_to_be_normalizedQ_;
} _KLtype_estimate_topGVdfmc_typist;


/* Typedefs for defined classes */

typedef struct {
  dylan_value wrapper;
  dylan_value type_estimate_to_be_normalizedQ_;
} _KLtype_estimateGVdfmc_typist;

typedef struct {
  dylan_value wrapper;
  dylan_value type_variable_contents_;
  dylan_value type_variable_supporters_;
  dylan_value type_variable_supportees_;
} _KLtype_variableGVdfmc_typist;

typedef struct {
  dylan_value wrapper;
  dylan_value justification_rule_;
  dylan_value justification_lhs_;
  dylan_value justification_rhs_;
} _KLjustificationGVdfmc_typist;


/* Referenced object declarations */

dylan_value KPadd_classVKeI (dylan_value);
dylan_value KPadd_nonsiblinged_domainVKnI (dylan_value, dylan_value);
extern _KLincremental_generic_functionGVKe KinitializeVKd;
extern _KLfunction_classGVKi KLincremental_generic_functionGVKe;
extern _KLclassGVKd KLfunction_classGVKi;
extern _KLclassGVKd KLclassGVKd;
extern _KLmm_wrapperGVKi_0 KLclassGVKdW;
extern _KLclassGVKd KLmm_wrapperGVKi;
extern _KLmm_wrapperGVKi_1 KLmm_wrapperGVKiW;
extern _KLmm_wrapperGVKi_0 KLfunction_classGVKiW;
extern _KLmm_wrapperGVKi_0 KLincremental_generic_functionGVKeW;
extern _KLbooleanGVKd KPfalseVKi;
extern _KLclassGVKd KLbooleanGVKd;
extern _KLmm_wrapperGVKi_0 KLbooleanGVKdW;
dylan_value KPadd_a_methodVKnI (dylan_value, dylan_value, dylan_value, dylan_value, dylan_value, dylan_value);
extern _KLincremental_generic_functionGVKe Kprint_objectYprintVio;
extern _KLlibraryGVKe Kdfmc_typist_libraryYdylan_userVdfmc_typist;
extern _KLclassGVKd KLlibraryGVKe;
extern _KLmm_wrapperGVKi_0 KLlibraryGVKeW;
dylan_value KlimitedVKdMM4I (dylan_value, dylan_value, dylan_value, dylan_value);
extern _KLclassGVKd KLtableGVKd;
extern _KLmm_wrapperGVKi_0 KLtableGVKdW;
extern _KLsimple_object_vectorGVKd_0 KPempty_vectorVKi;
extern _KLclassGVKd KLsimple_object_vectorGVKd;
extern _KLmm_wrapperGVKi_0 KLsimple_object_vectorGVKdW;
extern _KLempty_listGVKd KPempty_listVKi;
extern _KLclassGVKd KLempty_listGVKd;
extern _KLmm_wrapperGVKi_0 KLempty_listGVKdW;
extern _KLsealed_generic_functionGVKe Kinitialize_typist_library_cachesVdfmc_namespace;
extern _KLclassGVKd KLsealed_generic_functionGVKe;
extern _KLmm_wrapperGVKi_0 KLsealed_generic_functionGVKeW;
extern _KLsimple_methodGVKe Kimmutable_type_vectorVKe;
extern _KLfunction_classGVKi KLsimple_methodGVKe;
extern _KLmm_wrapperGVKi_0 KLsimple_methodGVKeW;
extern _KLsimple_methodGVKe Kmake_LsignatureGVKi;
extern _KLbooleanGVKd KPtrueVKi;
extern _KLsimple_methodGVKe KPdefine_genericVKn;
dylan_value KPadd_dynamic_methodVKnI (dylan_value, dylan_value);
extern _KLsimple_methodGVKe KPdefine_methodVKn;
extern _KLclassGVKd KLcomputationGVdfmc_flow_graph;
extern _KLmm_wrapperGVKi_0 KLcomputationGVdfmc_flow_graphW;
extern _KLclassGVKd KLobjectGVKd;
extern _KLmm_wrapperGVKi_0 KLobjectGVKdW;
extern _KLsimple_methodGVKe Kmake_Lkeyword_signatureGVKi;
extern _KLclassGVKd KLtemporaryGVdfmc_flow_graph;
extern _KLmm_wrapperGVKi_0 KLtemporaryGVdfmc_flow_graphW;
extern _KLunboundGVKe KPunboundVKi;
extern _KLclassGVKd KLunboundGVKe;
extern _KLmm_wrapperGVKi_0 KLunboundGVKeW;
extern _KLabsent_engine_nodeGVKg RSINGULAR_Labsent_engine_nodeG;
extern _KLclassGVKd KLabsent_engine_nodeGVKg;
extern _KLmm_wrapperGVKi_0 KLabsent_engine_nodeGVKgW;
extern _KLclassGVKd KLbyte_stringGVKd;
extern _KLmm_wrapperGVKi_0 KLbyte_stringGVKdW;
extern _KLclassGVKd KLsignatureAvaluesGVKi;
extern _KLmm_wrapperGVKi_0 KLsignatureAvaluesGVKiW;
extern _KLclassGVKd KLpairGVKd;
extern _KLmm_wrapperGVKi_0 KLpairGVKdW;
extern _KLclassGVKd KLfunctionGVKd;
extern _KLmm_wrapperGVKi_0 KLfunctionGVKdW;
extern _KLsealed_generic_functionGVKe Kcurrent_library_descriptionVdfmc_common;
extern _KLsealed_generic_functionGVKe Klibrary_type_cacheVdfmc_namespace;
extern _KLsimple_methodGVKe Ktype_estimate_normalizeVdfmc_typistMM0;
extern _KLsimple_methodGVKe Ktype_estimate_normalizeVdfmc_typistMM1;
extern _KLsimple_methodGVKe Ktype_estimate_normalizeVdfmc_typistMM2;
extern _KLsimple_methodGVKe Ktype_estimate_normalizeVdfmc_typistMM3;
extern _KLsimple_methodGVKe Ktype_estimate_normalizeVdfmc_typistMM4;
extern _KLsimple_methodGVKe Ktype_estimate_normalizeVdfmc_typistMM5;
extern _KLsimple_methodGVKe Ktype_estimate_normalizeVdfmc_typistMM6;
extern _KLsimple_methodGVKe Ktype_estimate_normalizeVdfmc_typistMM7;
extern _KLsimple_methodGVKe Ktype_estimate_normalizeVdfmc_typistMM8;
extern _KLsimple_methodGVKe Ktype_estimate_normalizeVdfmc_typistMM9;
extern _KLsimple_methodGVKe Ktype_estimate_normalizeVdfmc_typistMM10;
extern _KLsimple_methodGVKe Ktype_estimate_matchQVdfmc_typistMM0;
extern _KLsimple_methodGVKe Ktype_estimate_matchQVdfmc_typistMM1;
extern _KLsimple_methodGVKe Ktype_estimate_matchQVdfmc_typistMM2;
extern _KLsimple_methodGVKe Ktype_estimate_matchQVdfmc_typistMM3;
extern _KLsimple_methodGVKe Ktype_estimate_matchQVdfmc_typistMM4;
extern _KLsimple_methodGVKe Ktype_estimate_matchQVdfmc_typistMM5;
extern _KLsimple_methodGVKe Ktype_estimate_matchQVdfmc_typistMM6;
extern _KLsimple_methodGVKe Ktype_estimate_matchQVdfmc_typistMM7;
extern _KLsimple_methodGVKe Ktype_estimate_matchQVdfmc_typistMM8;
extern _KLsimple_methodGVKe Ktype_estimate_matchQVdfmc_typistMM9;
extern _KLsimple_methodGVKe Ktype_estimate_matchQVdfmc_typistMM10;
extern _KLsimple_methodGVKe Ktype_estimate_matchQVdfmc_typistMM11;
extern _KLsimple_methodGVKe Ktype_estimate_matchQVdfmc_typistMM12;
extern _KLsimple_methodGVKe Ktype_estimate_matchQVdfmc_typistMM13;
extern _KLsimple_methodGVKe Ktype_estimate_matchQVdfmc_typistMM14;
extern _KLsimple_methodGVKe Ktype_estimate_matchQVdfmc_typistMM15;
extern _KLsimple_methodGVKe Ktype_estimate_matchQVdfmc_typistMM16;
extern _KLsimple_methodGVKe Ktype_estimate_matchQVdfmc_typistMM17;
extern _KLsimple_methodGVKe Ktype_estimate_matchQVdfmc_typistMM18;
extern _KLsimple_object_vectorGVKd_256 KDsignature_LobjectG_typesVKi;
extern _KLsimple_object_vectorGVKd_16 KDsignature_LbooleanG_typesVKi;
extern _KLsimple_methodGVKe Ktype_estimate_disjointQVdfmc_typistMM0;
extern _KLsimple_methodGVKe Ktype_estimate_unionVdfmc_typistMM0;
extern _KLsimple_methodGVKe Ktype_estimate_baseVdfmc_typistMM0;
extern _KLsimple_methodGVKe Ktype_estimate_baseVdfmc_typistMM1;
extern _KLsimple_methodGVKe Ktype_estimate_baseVdfmc_typistMM2;
extern _KLsimple_methodGVKe Ktype_estimate_baseVdfmc_typistMM3;
extern _KLsimple_methodGVKe Ktype_estimate_baseVdfmc_typistMM4;
extern _KLsimple_methodGVKe Ktype_estimate_baseVdfmc_typistMM5;
extern _KLsimple_methodGVKe Ktype_estimate_baseVdfmc_typistMM6;
extern _KLsimple_methodGVKe Ktype_estimate_baseVdfmc_typistMM7;
extern _KLsimple_methodGVKe Ktype_estimate_baseVdfmc_typistMM8;
extern _KLsimple_methodGVKe Ktype_estimate_subtypeQVdfmc_typistMM0;
extern _KLsimple_methodGVKe Ktype_estimate_subtypeQVdfmc_typistMM1;
extern _KLsimple_methodGVKe Ktype_estimate_subtypeQVdfmc_typistMM2;
extern _KLsimple_methodGVKe Ktype_estimate_subtypeQVdfmc_typistMM3;
extern _KLsimple_methodGVKe Ktype_estimate_subtypeQVdfmc_typistMM4;
extern _KLsimple_methodGVKe Ktype_estimate_subtypeQVdfmc_typistMM5;
extern _KLsimple_methodGVKe Ktype_estimate_subtypeQVdfmc_typistMM6;
extern _KLsimple_methodGVKe Ktype_estimate_subtypeQVdfmc_typistMM7;
extern _KLsimple_methodGVKe Ktype_estimate_instanceQVdfmc_typistMM0;
extern _KLsimple_methodGVKe Ktype_estimate_instanceQVdfmc_typistMM1;
extern _KLsimple_methodGVKe Ktype_estimate_instanceQVdfmc_typistMM2;
extern _KLsimple_methodGVKe Ktype_estimate_instanceQVdfmc_typistMM3;
extern _KLsimple_methodGVKe Ktype_estimate_instanceQVdfmc_typistMM4;
extern _KLsimple_methodGVKe Ktype_estimate_instanceQVdfmc_typistMM5;
extern _KLsimple_methodGVKe Ktype_estimate_instanceQVdfmc_typistMM6;
extern _KLsimple_methodGVKe Ktype_estimate_instanceQVdfmc_typistMM7;
extern _KLsimple_methodGVKe Ktype_estimate_instanceQVdfmc_typistMM8;
extern _KLsimple_methodGVKe Ktype_estimate_instanceQVdfmc_typistMM9;
extern _KLsimple_methodGVKe Ktype_estimate_instanceQVdfmc_typistMM10;
extern _KLobject_signatureGVKe KDsignature_LobjectG_object_rest_value_1VKi;
extern _KLclassGVKd KLobject_signatureGVKe;
extern _KLmm_wrapperGVKi_0 KLobject_signatureGVKeW;
extern _KLclassGVKd KLgetter_methodGVKi;
extern _KLmm_wrapperGVKi_0 KLgetter_methodGVKiW;
extern _KLclassGVKd KLinstance_slot_descriptorGVKe;
extern _KLmm_wrapperGVKi_0 KLinstance_slot_descriptorGVKeW;
extern _KLclassGVKd KLsymbolGVKd;
extern _KLmm_wrapperGVKi_0 KLsymbolGVKdW;
extern _KLfunction_classGVKi KLsimple_closure_methodGVKi;
extern _KLmm_wrapperGVKi_0 KLsimple_closure_methodGVKiW;
extern _KLclassGVKd KLsignatureGVKe;
extern _KLmm_wrapperGVKi_0 KLsignatureGVKeW;
extern _KLclassGVKd KLlistGVKd;
extern _KLmm_wrapperGVKi_0 KLlistGVKdW;
extern _KLobject_signatureGVKe KDsignature_LobjectG_object_rest_value_2VKi;
extern _KLclassGVKd KLsetter_methodGVKi;
extern _KLmm_wrapperGVKi_0 KLsetter_methodGVKiW;
extern _KLkeyword_methodGVKe KmakeVdfmc_typistMM2;
extern _KLfunction_classGVKi KLkeyword_methodGVKe;
extern _KLmm_wrapperGVKi_0 KLkeyword_methodGVKeW;
extern _KLkeyword_methodGVKe KmakeVdfmc_typistMM3;
extern _KLkeyword_methodGVKe KmakeVdfmc_typistMM4;
extern _KLkeyword_methodGVKe KmakeVdfmc_typistMM5;
extern _KLkeyword_methodGVKe KmakeVdfmc_typistMM6;
extern _KLkeyword_methodGVKe KmakeVdfmc_typistMM7;
extern _KLkeyword_methodGVKe KmakeVdfmc_typistMM8;
extern _KLkeyword_methodGVKe KmakeVdfmc_typistMM9;
extern _KLkeyword_methodGVKe KmakeVdfmc_typistMM10;
extern _KLclassGVKd KLkeyword_signatureGVKe;
extern _KLmm_wrapperGVKi_0 KLkeyword_signatureGVKeW;
extern _KLsimple_object_vectorGVKd_2 KDsignature_LtypeG_typesVKi;
extern _KLincremental_generic_functionGVKe KmakeVKd;
extern _KLclassGVKd KLkeyword_signatureAvaluesGVKi;
extern _KLmm_wrapperGVKi_0 KLkeyword_signatureAvaluesGVKiW;
extern _KLclassGVKd KLsubclassGVKe;
extern _KLmm_wrapperGVKi_0 KLsubclassGVKeW;
dylan_value Ksubclass_instanceQVKiI (dylan_value, dylan_value);
extern _KLsimple_methodGVKe Ktype_estimate_retractVdfmc_typistMM0;
dylan_value Kfunction_required_typeVKiI (dylan_value, dylan_value);
extern _KLclassGVKd KLstreamGYcommon_extensionsVcommon_dylan;
extern _KLmm_wrapperGVKi_0 KLstreamGYcommon_extensionsVcommon_dylanW;
extern _KLclassGVKd KLintegerGVKd;
extern _KLmm_wrapperGVKi_0 KLintegerGVKdW;
dylan_value Kobject_classVKdI (dylan_value);
extern _KLsealed_generic_functionGVKe KformatYformatVio;
extern _KLkeyword_methodGVKe Kprint_separated_collectionVdfmc_typist;
extern _KLclassGVKd KLsimple_typechecked_cache_header_engine_nodeGVKg;
extern _KLmm_wrapperGVKi_0 KLsimple_typechecked_cache_header_engine_nodeGVKgW;
extern _KLsimple_methodGVKe KrcurryVKd;
extern _KLincremental_generic_functionGVKe KAVKd;
extern _KLincremental_generic_functionGVKe KLVKd;
extern _KLincremental_generic_functionGVKe KwriteYstreams_protocolVcommon_dylan;
extern _KLfunction_classGVKi KLkeyword_closure_methodGVKe;
extern _KLmm_wrapperGVKi_0 KLkeyword_closure_methodGVKeW;
dylan_value KgeneratorVdfmc_flow_graphMM1I (dylan_value);
extern _KLsealed_generic_functionGVKe KassignmentsVdfmc_flow_graph;
extern _KLincremental_generic_functionGVKe KemptyQVKd;
dylan_value KerrorVKdMM1I (dylan_value, dylan_value);
extern _KLmoduleGVKe Kdfmc_typist_moduleYdylan_userVdfmc_typist;
extern _KLclassGVKd KLmoduleGVKe;
extern _KLmm_wrapperGVKi_0 KLmoduleGVKeW;
extern _KLincremental_generic_functionGVKe Kremove_keyXVKd;
extern _KLincremental_generic_functionGVKe Kelement_setterVKd;
dylan_value Kfunction_value_typeVKiI (dylan_value, dylan_value);
extern _KLincremental_generic_functionGVKe KelementVKd;
extern _KLsymbolGVKd KJdefault_;
dylan_value Kcomputation_type_setterVdfmc_flow_graphMM0I (dylan_value, dylan_value);
extern _KLobject_signatureGVKe KDsignature_LobjectG_object_rest_value_3VKi;
dylan_value Kcomputation_typeVdfmc_flow_graphMM0I (dylan_value);
dylan_value KmakeVdfmc_typistMM10I (dylan_value cl_, dylan_value keys_);
extern _KLclassGVKd KLtype_estimate_bottomGVdfmc_typist;
extern _KLmm_wrapperGVKi_0 KLtype_estimate_bottomGVdfmc_typistW;
extern _KLclassGVKd KLdefined_constant_referenceGVdfmc_flow_graph;
extern _KLmm_wrapperGVKi_0 KLdefined_constant_referenceGVdfmc_flow_graphW;
extern _KLclassGVKd KLobject_referenceGVdfmc_flow_graph;
extern _KLmm_wrapperGVKi_0 KLobject_referenceGVdfmc_flow_graphW;
extern _KLclassGVKd KLunionGVKe;
extern _KLmm_wrapperGVKi_0 KLunionGVKeW;
dylan_value Kunion_instanceQVKiI (dylan_value, dylan_value);
dylan_value Kdebug_assertion_failureVKiI (dylan_value, dylan_value);
dylan_value KmemberQVKdMM4I (dylan_value, dylan_value, dylan_value, dylan_value);
extern _KLsimple_methodGVKe KEEVKd;
extern _KLincremental_generic_functionGVKe KaddXVKd;
extern _KLincremental_generic_functionGVKe Kforward_iteration_protocolVKd;
extern _KLclassGVKd KLvalue_referenceGVdfmc_flow_graph;
extern _KLmm_wrapperGVKi_0 KLvalue_referenceGVdfmc_flow_graphW;
extern _KLclassGVKd KLbindingGVdfmc_namespace;
extern _KLmm_wrapperGVKi_0 KLbindingGVdfmc_namespaceW;
extern _KLunionGVKe KLmodel_valueGVdfmc_modeling;
extern _KLclassGVKd KLimplementation_classGVKe;
extern _KLmm_wrapperGVKi_0 KLimplementation_classGVKeW;
extern _KLsimple_object_vectorGVKd_2 KDsignature_LclassG_typesVKi;
dylan_value Kclass_instanceQ_initialVKiI (dylan_value, dylan_value);
extern _KLclassGVKd KLsingletonGVKd;
extern _KLmm_wrapperGVKi_0 KLsingletonGVKdW;
dylan_value Ksingleton_pointer_idQ_instanceQVKiI (dylan_value, dylan_value);
extern _KLsealed_generic_functionGVKe Klibrary_type_cache_setterVdfmc_namespace;
extern _KLclassGVKd KLtype_estimate_pair_match_tableGVdfmc_typist;
extern _KLmm_wrapperGVKi_0 KLtype_estimate_pair_match_tableGVdfmc_typistW;
extern _KLsealed_generic_functionGVKe Klibrary_type_estimate_disjointQ_cache_setterVdfmc_namespace;
dylan_value KLobject_tableGZ32ZconstructorVKiMM0I (dylan_value, dylan_value, dylan_value, dylan_value, dylan_value, dylan_value);
extern _KLclassGVKd KLobject_tableGVKd;
extern _KLmm_wrapperGVKi_0 KLobject_tableGVKdW;
extern _KLsimple_methodGVKe Kdefault_grow_sizeVKe;
extern _KLsealed_generic_functionGVKe Klibrary_type_estimate_cons_cache_setterVdfmc_namespace;
extern _KLsealed_generic_functionGVKe Klibrary_type_estimate_dispatch_cache_setterVdfmc_namespace;
extern _KLclassGVKd KLcompilation_contextGVdfmc_common;
extern _KLmm_wrapperGVKi_0 KLcompilation_contextGVdfmc_commonW;
extern _KLclassGVKd KLstandalone_domainGVKe;
extern _KLmm_wrapperGVKi_0 KLstandalone_domainGVKeW;
dylan_value Ktype_estimate_disjointQVdfmc_typistMM0I (dylan_value t1_, dylan_value t2_);
extern _KLsimple_methodGVKe Ktype_estimate_differenceVdfmc_typistMM0;
extern _KLsimple_methodGVKe Ktype_estimate_intersectionVdfmc_typistMM0;
extern _KLincremental_generic_functionGVKe Kwrite_elementYstreams_protocolVcommon_dylan;
extern _KLkeyword_methodGVKe Kprint_type_estimate_internalsVdfmc_typistMM0;
extern _KLkeyword_methodGVKe Kprint_type_estimate_internalsVdfmc_typistMM1;
extern _KLkeyword_methodGVKe Kprint_type_estimate_internalsVdfmc_typistMM2;
extern _KLkeyword_methodGVKe Kprint_type_estimate_internalsVdfmc_typistMM3;
extern _KLkeyword_methodGVKe Kprint_type_estimate_internalsVdfmc_typistMM4;
extern _KLkeyword_methodGVKe Kprint_type_estimate_internalsVdfmc_typistMM5;
extern _KLkeyword_methodGVKe Kprint_type_estimate_internalsVdfmc_typistMM6;
extern _KLkeyword_methodGVKe Kprint_type_estimate_internalsVdfmc_typistMM7;
extern _KLkeyword_methodGVKe Kprint_type_estimate_internalsVdfmc_typistMM8;
extern _KLkeyword_methodGVKe Kprint_type_estimate_internalsVdfmc_typistMM9;
extern _KLkeyword_methodGVKe Kprint_type_estimate_internalsVdfmc_typistMM10;
extern _KLkeyword_methodGVKe Kdefault_class_constructorVKi;
dylan_value Kclass_instanceQ_rcpl_single_smallVKiI (dylan_value, dylan_value);
extern _KLsealed_generic_functionGVKe Klibrary_type_estimate_dispatch_cacheVdfmc_namespace;
extern _KLclassGVKd KLBgeneric_functionGVdfmc_modeling;
extern _KLmm_wrapperGVKi_0 KLBgeneric_functionGVdfmc_modelingW;
extern _KLclassGVKd KLtype_estimate_sequence_match_tableGVdfmc_typist;
extern _KLmm_wrapperGVKi_0 KLtype_estimate_sequence_match_tableGVdfmc_typistW;
extern _KLclassGVKd KLtype_estimate_unionGVdfmc_typist;
extern _KLclassGVKd KLtype_estimate_valuesGVdfmc_typist;
extern _KLclassGVKd KLtype_estimate_rawGVdfmc_typist;
extern _KLclassGVKd KLtype_estimate_classGVdfmc_typist;
extern _KLclassGVKd KLtype_estimate_topGVdfmc_typist;
extern dylan_value Tstandard_outputTYstandard_ioVio;
extern dylan_value TdebuggingQTVKi;

/* Defined object declarations */

extern _KLclassGVKd KLtype_estimateGVdfmc_typist;
extern _KLmm_wrapperGVKi_0 KLtype_estimateGVdfmc_typistW;
extern _KLstandalone_domainGVKe_1 KinitializeVKdRD_dfmc_typistRD_4;
extern _KLsimple_methodGVKe Kprint_objectYprintVioMdfmc_typistM0;
dylan_value Kprint_objectYprintVioMdfmc_typistM0I (dylan_value, dylan_value);
extern _KLclassGVKd KLtype_variableGVdfmc_typist;
extern _KLmm_wrapperGVKi_0 KLtype_variableGVdfmc_typistW;
extern _KLstandalone_domainGVKe_1 KinitializeVKdRD_dfmc_typistRD_3;
extern _KLsimple_methodGVKe Kprint_objectYprintVioMdfmc_typistM1;
dylan_value Kprint_objectYprintVioMdfmc_typistM1I (dylan_value, dylan_value);
static _KLunionGVKe K18;
extern _KLsimple_methodGVKe Kinitialize_typist_library_cachesVdfmc_namespaceMdfmc_typistM0;
dylan_value Kinitialize_typist_library_cachesVdfmc_namespaceMdfmc_typistM0I (dylan_value);
extern _KLclassGVKd KLjustificationGVdfmc_typist;
extern _KLmm_wrapperGVKi_0 KLjustificationGVdfmc_typistW;
extern _KLsimple_methodGVKe Kprint_objectYprintVioMdfmc_typistM2;
dylan_value Kprint_objectYprintVioMdfmc_typistM2I (dylan_value, dylan_value);
extern _KLunionGVKe KLdfm_refGVdfmc_typist;
static _KLsimple_object_vectorGVKd_1 K33;
extern _KLsimple_closure_methodGVKi_0 Ktype_estimate_update_cacheVdfmc_typistMM0;
dylan_value Ktype_estimate_update_cacheVdfmc_typistMM0I (dylan_value, dylan_value, dylan_value);
extern _KLsealed_generic_functionGVKe Ktype_estimate_update_cacheVdfmc_typist;
extern _KLsimple_closure_methodGVKi_0 Ktype_estimate_in_cacheVdfmc_typistMM0;
dylan_value Ktype_estimate_in_cacheVdfmc_typistMM0I (dylan_value, dylan_value);
extern _KLsimple_closure_methodGVKi_0 Kcached_type_variableVdfmc_typistMM0;
dylan_value Kcached_type_variableVdfmc_typistMM0I (dylan_value, dylan_value);
static _KLsimple_object_vectorGVKd_1 K46;
extern _KLsealed_generic_functionGVKe Kcached_type_variableVdfmc_typist;
extern _KLsimple_closure_methodGVKi_0 Kcached_type_variable_setterVdfmc_typistMM0;
dylan_value Kcached_type_variable_setterVdfmc_typistMM0I (dylan_value, dylan_value, dylan_value);
static _KLsimple_object_vectorGVKd_1 K51;
extern _KLsealed_generic_functionGVKe Kcached_type_variable_setterVdfmc_typist;
extern _KLsimple_closure_methodGVKi_0 Kretract_cached_type_variableVdfmc_typistMM0;
dylan_value Kretract_cached_type_variableVdfmc_typistMM0I (dylan_value, dylan_value);
extern _KLsealed_generic_functionGVKe Kretract_cached_type_variableVdfmc_typist;
extern _KLsimple_closure_methodGVKi_0 Kcached_type_variableVdfmc_typistMM1;
dylan_value Kcached_type_variableVdfmc_typistMM1I (dylan_value, dylan_value);
extern _KLsimple_closure_methodGVKi_0 Kcached_type_variable_setterVdfmc_typistMM1;
dylan_value Kcached_type_variable_setterVdfmc_typistMM1I (dylan_value, dylan_value, dylan_value);
extern _KLsimple_closure_methodGVKi_0 Kretract_cached_type_variableVdfmc_typistMM1;
dylan_value Kretract_cached_type_variableVdfmc_typistMM1I (dylan_value, dylan_value);
static _KLsimple_object_vectorGVKd_3 K67;
static _KLsimple_object_vectorGVKd_3 K68;
extern _KLkeyword_closure_methodGVKe_0 Ktype_estimate_explainVdfmc_typistMM0;
dylan_value Ktype_estimate_explainVdfmc_typistMM0I (dylan_value, dylan_value, dylan_value, dylan_value, dylan_value, dylan_value);
extern _KLkeyword_closure_methodGVKe_0 Ktype_estimate_explainVdfmc_typistMM1;
dylan_value Ktype_estimate_explainVdfmc_typistMM1I (dylan_value, dylan_value, dylan_value, dylan_value, dylan_value, dylan_value);
extern _KLinstance_slot_descriptorGVKe Ktype_estimate_to_be_normalizedQVdfmc_typistHLtype_estimateG;
extern _KLkeyword_methodGVKe KmakeVdfmc_typistMM0;
dylan_value KmakeVdfmc_typistMM0I (dylan_value type_, dylan_value init_args_);
extern _KLkeyword_methodGVKe KmakeVdfmc_typistMM1;
dylan_value KmakeVdfmc_typistMM1I (dylan_value, dylan_value, dylan_value);
extern _KLsealed_generic_functionGVKe KmakeVdfmc_typist;
extern _KLsealed_generic_functionGVKe Ktype_variable_supporteesVdfmc_typist;
extern _KLsealed_generic_functionGVKe Kjustification_lhsVdfmc_typist;
extern _KLsealed_generic_functionGVKe Ktype_estimate_instanceQVdfmc_typist;
extern _KLsimple_methodGVKe Ktype_estimateEQVdfmc_typist;
dylan_value Ktype_estimateEQVdfmc_typistI (dylan_value, dylan_value);
extern _KLsealed_generic_functionGVKe Ktype_estimate_subtypeQVdfmc_typist;
extern _KLsealed_generic_functionGVKe Ktype_estimate_baseVdfmc_typist;
extern _KLsealed_generic_functionGVKe Ktype_estimate_unionVdfmc_typist;
extern _KLsealed_generic_functionGVKe Ktype_estimate_disjointQVdfmc_typist;
extern _KLsealed_generic_functionGVKe Ktype_estimate_matchQVdfmc_typist;
extern _KLsealed_generic_functionGVKe Ktype_estimate_normalizeVdfmc_typist;
extern _KLsealed_generic_functionGVKe Ktype_estimateVdfmc_typist;
extern _KLsimple_methodGVKe Ktype_estimateVdfmc_typistMM0;
dylan_value Ktype_estimateVdfmc_typistMM0I (dylan_value ref_);
static _KLpairGVKd K95;
static _KLsignatureAvaluesGVKi K96;
static _KLbyte_stringGVKd_13 K97;
static _KLsimple_object_vectorGVKd_1 K98;
static _KLpairGVKd K99;
static _KLpairGVKd K100;
static _KLpairGVKd K101;
static _KLpairGVKd K102;
static _KLpairGVKd K103;
static _KLpairGVKd K104;
static _KLpairGVKd K105;
static _KLpairGVKd K106;
static _KLpairGVKd K107;
static _KLpairGVKd K108;
static _KLpairGVKd K109;
static _KLsignatureAvaluesGVKi K110;
static _KLbyte_stringGVKd_23 K111;
static _KLpairGVKd K112;
static _KLpairGVKd K113;
static _KLpairGVKd K114;
static _KLpairGVKd K115;
static _KLpairGVKd K116;
static _KLpairGVKd K117;
static _KLpairGVKd K118;
static _KLpairGVKd K119;
static _KLpairGVKd K120;
static _KLpairGVKd K121;
static _KLpairGVKd K122;
static _KLpairGVKd K123;
static _KLpairGVKd K124;
static _KLpairGVKd K125;
static _KLpairGVKd K126;
static _KLpairGVKd K127;
static _KLpairGVKd K128;
static _KLpairGVKd K129;
static _KLpairGVKd K130;
static _KLsignatureAvaluesGVKi K131;
static _KLbyte_stringGVKd_20 K132;
static _KLpairGVKd K133;
static _KLsignatureAvaluesGVKi K134;
static _KLbyte_stringGVKd_23 K135;
static _KLsimple_object_vectorGVKd_2 K136;
static _KLpairGVKd K137;
static _KLsignatureAvaluesGVKi K138;
static _KLbyte_stringGVKd_19 K139;
static _KLpairGVKd K140;
static _KLpairGVKd K141;
static _KLpairGVKd K142;
static _KLpairGVKd K143;
static _KLpairGVKd K144;
static _KLpairGVKd K145;
static _KLpairGVKd K146;
static _KLpairGVKd K147;
static _KLpairGVKd K148;
static _KLbyte_stringGVKd_18 K149;
static _KLpairGVKd K150;
static _KLpairGVKd K151;
static _KLpairGVKd K152;
static _KLpairGVKd K153;
static _KLpairGVKd K154;
static _KLpairGVKd K155;
static _KLpairGVKd K156;
static _KLpairGVKd K157;
static _KLbyte_stringGVKd_22 K158;
static _KLpairGVKd K159;
static _KLpairGVKd K160;
static _KLpairGVKd K161;
static _KLpairGVKd K162;
static _KLpairGVKd K163;
static _KLpairGVKd K164;
static _KLpairGVKd K165;
static _KLpairGVKd K166;
static _KLpairGVKd K167;
static _KLpairGVKd K168;
static _KLpairGVKd K169;
static _KLsignatureAvaluesGVKi K170;
static _KLbyte_stringGVKd_23 K171;
static _KLsimple_object_vectorGVKd_2 K172;
extern _KLgetter_methodGVKi Kjustification_lhsVdfmc_typistMM0;
static _KLpairGVKd K174;
static _KLbyte_stringGVKd_17 K175;
extern _KLinstance_slot_descriptorGVKe Kjustification_lhsVdfmc_typistHLjustificationG;
static _KLsimple_closure_methodGVKi_0 K181;
static dylan_value K181I ();
static _KLsymbolGVKd KJlhs_;
static _KLbyte_stringGVKd_3 K180;
static _KLsignatureGVKe K182;
extern _KLgetter_methodGVKi Ktype_variable_supporteesVdfmc_typistMM0;
static _KLpairGVKd K184;
static _KLbyte_stringGVKd_24 K185;
extern _KLinstance_slot_descriptorGVKe Ktype_variable_supporteesVdfmc_typistHLtype_variableG;
static _KLsymbolGVKd KJsupportees_;
extern _KLsealed_generic_functionGVKe Ktype_variable_supportees_setterVdfmc_typist;
extern _KLsetter_methodGVKi Ktype_variable_supportees_setterVdfmc_typistMM0;
static _KLpairGVKd K190;
static _KLbyte_stringGVKd_31 K191;
static _KLbyte_stringGVKd_10 K192;
static _KLpairGVKd K193;
static _KLpairGVKd K194;
static _KLpairGVKd K195;
static _KLpairGVKd K196;
static _KLpairGVKd K197;
static _KLpairGVKd K198;
static _KLpairGVKd K199;
static _KLpairGVKd K200;
static _KLpairGVKd K201;
static _KLpairGVKd K202;
static _KLpairGVKd K203;
static _KLkeyword_signatureGVKe K204;
static _KLbyte_stringGVKd_4 K205;
static _KLkeyword_signatureAvaluesGVKi K206;
static _KLsimple_object_vectorGVKd_2 K207;
static _KLsymbolGVKd KJnormalizeQ_;
static _KLbyte_stringGVKd_10 K209;
static _KLsimple_object_vectorGVKd_1 K210;
static _KLsimple_object_vectorGVKd_1 K211;
static _KLsubclassGVKe K212;
extern _KLsealed_generic_functionGVKe Ktype_estimate_to_be_normalizedQVdfmc_typist;
extern _KLsealed_generic_functionGVKe Ktype_estimate_to_be_normalizedQ_setterVdfmc_typist;
extern _KLsetter_methodGVKi Ktype_estimate_to_be_normalizedQ_setterVdfmc_typistMM0;
static _KLpairGVKd K216;
static _KLbyte_stringGVKd_38 K217;
extern _KLgetter_methodGVKi Ktype_estimate_to_be_normalizedQVdfmc_typistMM0;
static _KLpairGVKd K219;
static _KLbyte_stringGVKd_31 K220;
extern _KLsealed_generic_functionGVKe Ktype_estimate_retractVdfmc_typist;
static _KLpairGVKd K222;
static _KLsignatureAvaluesGVKi K223;
static _KLbyte_stringGVKd_21 K224;
static _KLkeyword_closure_methodGVKe_0 KindentifyF260;
static dylan_value KindentifyF260I (dylan_value, dylan_value, dylan_value, dylan_value);
static _KLsimple_closure_methodGVKi_0 Kanonymous_of_type_estimate_explainF248;
static dylan_value Kanonymous_of_type_estimate_explainF248I (dylan_value, dylan_value);
static _KLsimple_typechecked_cache_header_engine_nodeGVKg K229;
static _KLbyte_stringGVKd_22 K230;
static _KLsimple_typechecked_cache_header_engine_nodeGVKg K231;
static _KLbyte_stringGVKd_9 K232;
extern _KLsealed_generic_functionGVKe Ktype_variable_supportersVdfmc_typist;
static _KLsymbolGVKd KJstream_;
static _KLsymbolGVKd KJprinter_;
static _KLbyte_stringGVKd_7 K236;
static _KLbyte_stringGVKd_6 K237;
extern _KLgetter_methodGVKi Ktype_variable_supportersVdfmc_typistMM0;
static _KLpairGVKd K239;
static _KLbyte_stringGVKd_24 K240;
extern _KLinstance_slot_descriptorGVKe Ktype_variable_supportersVdfmc_typistHLtype_variableG;
static _KLsymbolGVKd KJsupporters_;
extern _KLsealed_generic_functionGVKe Ktype_variable_supporters_setterVdfmc_typist;
extern _KLsetter_methodGVKi Ktype_variable_supporters_setterVdfmc_typistMM0;
static _KLpairGVKd K245;
static _KLbyte_stringGVKd_31 K246;
static _KLbyte_stringGVKd_10 K247;
static _KLbyte_stringGVKd_7 K249;
static _KLbyte_stringGVKd_4 K250;
static _KLsymbolGVKd KJconjunction_;
static _KLbyte_stringGVKd_3 K252;
static _KLsymbolGVKd KJrecurseQ_;
static _KLsymbolGVKd KJindent_;
static _KLbyte_stringGVKd_6 K255;
static _KLbyte_stringGVKd_8 K256;
static _KLbyte_stringGVKd_11 K257;
static _KLsignatureGVKe K258;
static _KLsimple_object_vectorGVKd_2 K259;
static _KLsimple_typechecked_cache_header_engine_nodeGVKg K261;
static _KLbyte_stringGVKd_1 K262;
static _KLbyte_stringGVKd_2 K263;
static _KLkeyword_signatureGVKe K264;
static _KLsimple_object_vectorGVKd_2 K265;
static _KLsymbolGVKd KJlevels_;
static _KLbyte_stringGVKd_6 K267;
static _KLsimple_object_vectorGVKd_2 K268;
static _KLsimple_object_vectorGVKd_1 K269;
static _KLsimple_object_vectorGVKd_6 K270;
static _KLsimple_closure_methodGVKi_0 Kanonymous_of_type_estimate_explainF273;
static dylan_value Kanonymous_of_type_estimate_explainF273I (dylan_value);
static _KLbyte_stringGVKd_15 K274;
static _KLsignatureGVKe K275;
extern _KLincremental_generic_functionGVKe Ktype_estimate_explainVdfmc_typist;
static _KLbyte_stringGVKd_21 K277;
static _KLbyte_stringGVKd_28 K278;
static _KLbyte_stringGVKd_27 K279;
static _KLbyte_stringGVKd_20 K280;
extern _KLsealed_generic_functionGVKe Kcanonical_refVdfmc_typist;
extern _KLsealed_generic_functionGVKe Ktype_variable_contentsVdfmc_typist;
extern _KLgetter_methodGVKi Ktype_variable_contentsVdfmc_typistMM0;
static _KLpairGVKd K284;
static _KLbyte_stringGVKd_22 K285;
extern _KLinstance_slot_descriptorGVKe Ktype_variable_contentsVdfmc_typistHLtype_variableG;
static _KLsimple_closure_methodGVKi_0 K295;
static dylan_value K295I ();
static _KLsymbolGVKd KJcontents_;
extern _KLsealed_generic_functionGVKe Ktype_variable_contents_setterVdfmc_typist;
extern _KLsetter_methodGVKi Ktype_variable_contents_setterVdfmc_typistMM0;
static _KLpairGVKd K292;
static _KLbyte_stringGVKd_29 K293;
static _KLbyte_stringGVKd_8 K294;
static _KLpairGVKd K296;
static _KLpairGVKd K297;
extern _KLsimple_methodGVKe Kcanonical_refVdfmc_typistMM0;
dylan_value Kcanonical_refVdfmc_typistMM0I (dylan_value);
extern _KLsimple_methodGVKe Kcanonical_refVdfmc_typistMM1;
dylan_value Kcanonical_refVdfmc_typistMM1I (dylan_value);
extern _KLsimple_methodGVKe Kcanonical_refVdfmc_typistMM2;
dylan_value Kcanonical_refVdfmc_typistMM2I (dylan_value);
extern _KLsimple_methodGVKe Kcanonical_refVdfmc_typistMM3;
dylan_value Kcanonical_refVdfmc_typistMM3I (dylan_value);
static _KLpairGVKd K306;
static _KLpairGVKd K307;
static _KLpairGVKd K308;
static _KLpairGVKd K309;
static _KLsignatureGVKe K310;
static _KLbyte_stringGVKd_13 K311;
static _KLsignatureGVKe K312;
static _KLsimple_object_vectorGVKd_1 K313;
static _KLsignatureGVKe K314;
static _KLsimple_object_vectorGVKd_1 K315;
static _KLunionGVKe K316;
static _KLsignatureAvaluesGVKi K317;
static _KLsimple_object_vectorGVKd_1 K318;
static _KLsimple_object_vectorGVKd_1 K319;
static _KLsignatureAvaluesGVKi K320;
static _KLbyte_stringGVKd_26 K321;
static _KLbyte_stringGVKd_36 K322;
extern _KLincremental_generic_functionGVKe Ktype_estimate_inferVdfmc_typist;
static _KLbyte_stringGVKd_19 K324;
static _KLunionGVKe K325;
static _KLunionGVKe K326;
extern _KLincremental_generic_functionGVKe Ktype_estimate_in_cacheVdfmc_typist;
static _KLbyte_stringGVKd_22 K328;
static _KLsimple_typechecked_cache_header_engine_nodeGVKg K329;
static _KLbyte_stringGVKd_18 K330;
static _KLsimple_typechecked_cache_header_engine_nodeGVKg K331;
static _KLbyte_stringGVKd_7 K332;
static _KLsimple_typechecked_cache_header_engine_nodeGVKg K333;
static _KLbyte_stringGVKd_1 K334;
static _KLsignatureGVKe K335;
static _KLsimple_object_vectorGVKd_2 K336;
static _KLimplementation_classGVKe K337;
static _KLsimple_object_vectorGVKd_3 K338;
extern _KLkeyword_methodGVKe KLjustificationGZ32ZconstructorVdfmc_typistMM0;
dylan_value KLjustificationGZ32ZconstructorVdfmc_typistMM0I (dylan_value, dylan_value, dylan_value, dylan_value, dylan_value);
static _KLsimple_object_vectorGVKd_1 K341;
static _KLsimple_object_vectorGVKd_6 K342;
static dylan_value K348I ();
static dylan_value K347I ();
static dylan_value K346I ();
static _KLkeyword_signatureAvaluesGVKi K349;
static _KLsimple_object_vectorGVKd_6 K350;
static _KLsymbolGVKd KJrule_;
static _KLsymbolGVKd KJrhs_;
static _KLbyte_stringGVKd_3 K353;
static _KLbyte_stringGVKd_4 K354;
static _KLsimple_object_vectorGVKd_3 K355;
static _KLsimple_object_vectorGVKd_1 K356;
extern _KLinstance_slot_descriptorGVKe Kjustification_ruleVdfmc_typistHLjustificationG;
extern _KLinstance_slot_descriptorGVKe Kjustification_rhsVdfmc_typistHLjustificationG;
static _KLsimple_closure_methodGVKi_0 K365;
static dylan_value K365I ();
extern _KLsealed_generic_functionGVKe Kjustification_rhsVdfmc_typist;
extern _KLgetter_methodGVKi Kjustification_rhsVdfmc_typistMM0;
static _KLpairGVKd K363;
static _KLbyte_stringGVKd_17 K364;
static _KLsimple_closure_methodGVKi_0 K372;
static dylan_value K372I ();
extern _KLsealed_generic_functionGVKe Kjustification_ruleVdfmc_typist;
extern _KLgetter_methodGVKi Kjustification_ruleVdfmc_typistMM0;
static _KLpairGVKd K370;
static _KLbyte_stringGVKd_18 K371;
static _KLbyte_stringGVKd_15 K373;
static _KLunionGVKe K374;
static _KLsingletonGVKd K375;
static _KLunionGVKe K376;
static _KLsignatureGVKe K377;
static _KLsimple_object_vectorGVKd_1 K378;
static _KLsimple_typechecked_cache_header_engine_nodeGVKg K379;
static _KLbyte_stringGVKd_19 K380;
static _KLsignatureGVKe K381;
static _KLsimple_object_vectorGVKd_2 K382;
static _KLimplementation_classGVKe K383;
static _KLsimple_object_vectorGVKd_3 K384;
extern _KLkeyword_methodGVKe KLtype_variableGZ32ZconstructorVdfmc_typistMM0;
dylan_value KLtype_variableGZ32ZconstructorVdfmc_typistMM0I (dylan_value, dylan_value, dylan_value, dylan_value, dylan_value);
static _KLsimple_object_vectorGVKd_6 K387;
static dylan_value K389I ();
static _KLkeyword_signatureAvaluesGVKi K390;
static _KLsimple_object_vectorGVKd_6 K391;
static _KLsimple_object_vectorGVKd_3 K392;
static _KLbyte_stringGVKd_15 K393;
extern _KLsimple_methodGVKe Ktype_estimate_pseudosubtypeQVdfmc_typist;
dylan_value Ktype_estimate_pseudosubtypeQVdfmc_typistI (dylan_value, dylan_value);
extern _KLsealed_generic_functionGVKe Ktype_estimate_differenceVdfmc_typist;
static _KLpairGVKd K397;
static _KLbyte_stringGVKd_24 K398;
extern _KLsealed_generic_functionGVKe Ktype_estimate_intersectionVdfmc_typist;
static _KLpairGVKd K400;
static _KLbyte_stringGVKd_26 K401;
extern _KLsealed_generic_functionGVKe Kprint_type_estimate_internalsVdfmc_typist;
static _KLbyte_stringGVKd_16 K403;
static _KLpairGVKd K404;
static _KLpairGVKd K405;
static _KLpairGVKd K406;
static _KLpairGVKd K407;
static _KLpairGVKd K408;
static _KLpairGVKd K409;
static _KLpairGVKd K410;
static _KLpairGVKd K411;
static _KLpairGVKd K412;
static _KLpairGVKd K413;
static _KLpairGVKd K414;
static _KLkeyword_signatureGVKe K415;
static _KLbyte_stringGVKd_29 K416;
static _KLsimple_object_vectorGVKd_1 K417;
static _KLsignatureGVKe K418;
static _KLsimple_object_vectorGVKd_2 K419;
static _KLimplementation_classGVKe K420;
static _KLsimple_object_vectorGVKd_1 K421;
static _KLsimple_object_vectorGVKd_6 K422;
static _KLbyte_stringGVKd_15 K423;
extern _KLsimple_methodGVKe Ktype_estimate_dispatch_cache_lookupVdfmc_typistMM0;
dylan_value Ktype_estimate_dispatch_cache_lookupVdfmc_typistMM0I (dylan_value, dylan_value);
static _KLsignatureGVKe K426;
static _KLsimple_object_vectorGVKd_2 K427;
extern _KLsimple_methodGVKe Kadd_type_estimate_dispatch_cache_entryVdfmc_typistMM0;
dylan_value Kadd_type_estimate_dispatch_cache_entryVdfmc_typistMM0I (dylan_value, dylan_value, dylan_value);
static _KLsignatureGVKe K430;
static _KLsimple_object_vectorGVKd_3 K431;
static _KLpairGVKd K432;
static _KLpairGVKd K433;
static _KLpairGVKd K434;
static _KLpairGVKd K435;
static _KLpairGVKd K436;
static _KLpairGVKd K437;

/* Indirection variables */

static dylan_value IKJlhs_ = &KJlhs_;
static dylan_value IKJsupportees_ = &KJsupportees_;
static dylan_value IKJnormalizeQ_ = &KJnormalizeQ_;
static dylan_value IKJstream_ = &KJstream_;
static dylan_value IKJprinter_ = &KJprinter_;
static dylan_value IKJsupporters_ = &KJsupporters_;
static dylan_value IKJconjunction_ = &KJconjunction_;
static dylan_value IKJrecurseQ_ = &KJrecurseQ_;
static dylan_value IKJindent_ = &KJindent_;
static dylan_value IKJlevels_ = &KJlevels_;
static dylan_value IKJcontents_ = &KJcontents_;
static dylan_value IKJrule_ = &KJrule_;
static dylan_value IKJrhs_ = &KJrhs_;

/* Variables */

dylan_value add_type_estimate_dispatch_cache_entryVdfmc_typist = &Kadd_type_estimate_dispatch_cache_entryVdfmc_typistMM0;
dylan_value type_estimate_dispatch_cache_lookupVdfmc_typist = &Ktype_estimate_dispatch_cache_lookupVdfmc_typistMM0;
dylan_value retract_cached_type_variableVdfmc_typist = &Kretract_cached_type_variableVdfmc_typist;
dylan_value cached_type_variableVdfmc_typist = &Kcached_type_variableVdfmc_typist;
dylan_value type_estimate_update_cacheVdfmc_typist = &Ktype_estimate_update_cacheVdfmc_typist;
dylan_value justification_ruleVdfmc_typist = &Kjustification_ruleVdfmc_typist;
dylan_value justification_lhsVdfmc_typist = &Kjustification_lhsVdfmc_typist;
dylan_value justification_rhsVdfmc_typist = &Kjustification_rhsVdfmc_typist;
dylan_value type_variable_contentsVdfmc_typist = &Ktype_variable_contentsVdfmc_typist;
dylan_value type_variable_supportersVdfmc_typist = &Ktype_variable_supportersVdfmc_typist;
dylan_value type_variable_supporteesVdfmc_typist = &Ktype_variable_supporteesVdfmc_typist;
dylan_value makeVdfmc_typist = &KmakeVdfmc_typist;
dylan_value make_type_estimateVdfmc_typist = &KmakeVdfmc_typist;
dylan_value Ltype_estimateGVdfmc_typist = &KLtype_estimateGVdfmc_typist;
dylan_value Tprinting_a_type_estimateQTVdfmc_typist = &KPunboundVKi;
dylan_value print_type_estimate_internalsVdfmc_typist = &Kprint_type_estimate_internalsVdfmc_typist;
dylan_value type_estimate_normalizeVdfmc_typist = &Ktype_estimate_normalizeVdfmc_typist;
dylan_value type_estimate_unionVdfmc_typist = &Ktype_estimate_unionVdfmc_typist;
dylan_value type_estimate_intersectionVdfmc_typist = &Ktype_estimate_intersectionVdfmc_typist;
dylan_value type_estimate_differenceVdfmc_typist = &Ktype_estimate_differenceVdfmc_typist;
dylan_value type_estimate_baseVdfmc_typist = &Ktype_estimate_baseVdfmc_typist;
dylan_value type_estimate_matchQVdfmc_typist = &Ktype_estimate_matchQVdfmc_typist;
dylan_value type_estimate_instanceQVdfmc_typist = &Ktype_estimate_instanceQVdfmc_typist;
dylan_value type_estimate_disjointQVdfmc_typist = &Ktype_estimate_disjointQVdfmc_typist;
dylan_value type_estimate_subtypeQVdfmc_typist = &Ktype_estimate_subtypeQVdfmc_typist;
dylan_value type_estimateEQVdfmc_typist = &Ktype_estimateEQVdfmc_typist;
dylan_value type_estimate_pseudosubtypeQVdfmc_typist = &Ktype_estimate_pseudosubtypeQVdfmc_typist;
dylan_value Ltype_variableGVdfmc_typist = &KLtype_variableGVdfmc_typist;
dylan_value Ltype_cacheGVdfmc_typist = &KPunboundVKi;
dylan_value Tcurrent_ruleTVdfmc_typist = &KPunboundVKi;
dylan_value Tcurrent_lhsTVdfmc_typist = &KPunboundVKi;
dylan_value Tcurrent_rhsTVdfmc_typist = &KPunboundVKi;
dylan_value LjustificationGVdfmc_typist = &KLjustificationGVdfmc_typist;
dylan_value type_estimate_in_cacheVdfmc_typist = &Ktype_estimate_in_cacheVdfmc_typist;
dylan_value type_estimateVdfmc_typist = &Ktype_estimateVdfmc_typist;
dylan_value type_estimate_inferVdfmc_typist = &Ktype_estimate_inferVdfmc_typist;
dylan_value Ttype_vars_propagatingTVdfmc_typist = &KPunboundVKi;
dylan_value type_estimate_explainVdfmc_typist = &Ktype_estimate_explainVdfmc_typist;
dylan_value type_estimate_retractVdfmc_typist = &Ktype_estimate_retractVdfmc_typist;

/* Objects */

_KLclassGVKd KLtype_estimateGVdfmc_typist = {
  &KLclassGVKdW /* wrapper */,
  &Kclass_instanceQ_rcpl_single_smallVKiI,
  &K423,
  &K420,
  (dylan_value) 1,
  &Kdfmc_typist_moduleYdylan_userVdfmc_typist
};

_KLmm_wrapperGVKi_0 KLtype_estimateGVdfmc_typistW = {
  &KLmm_wrapperGVKiW /* wrapper */,
  &K420,
  (dylan_value) 1,
  5,
  33554439,
  (dylan_value) 1
};

_KLstandalone_domainGVKe_1 KinitializeVKdRD_dfmc_typistRD_4 = {
  &KLstandalone_domainGVKeW /* wrapper */,
  &Kdfmc_typist_libraryYdylan_userVdfmc_typist,
  &KPfalseVKi,
  (dylan_value) 5,
  &KLtype_estimateGVdfmc_typist
};

_KLsimple_methodGVKe Kprint_objectYprintVioMdfmc_typistM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K418,
  &Kprint_objectYprintVioMdfmc_typistM0I
};

_KLclassGVKd KLtype_variableGVdfmc_typist = {
  &KLclassGVKdW /* wrapper */,
  &Kclass_instanceQ_initialVKiI,
  &K393,
  &K383,
  (dylan_value) 1,
  &Kdfmc_typist_moduleYdylan_userVdfmc_typist
};

_KLmm_wrapperGVKi_0 KLtype_variableGVdfmc_typistW = {
  &KLmm_wrapperGVKiW /* wrapper */,
  &K383,
  (dylan_value) 1,
  13,
  33554439,
  (dylan_value) 1
};

_KLstandalone_domainGVKe_1 KinitializeVKdRD_dfmc_typistRD_3 = {
  &KLstandalone_domainGVKeW /* wrapper */,
  &Kdfmc_typist_libraryYdylan_userVdfmc_typist,
  &KPfalseVKi,
  (dylan_value) 5,
  &KLtype_variableGVdfmc_typist
};

_KLsimple_methodGVKe Kprint_objectYprintVioMdfmc_typistM1 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K381,
  &Kprint_objectYprintVioMdfmc_typistM1I
};

static _KLunionGVKe K18 = {
  &KLunionGVKeW /* wrapper */,
  &Kunion_instanceQVKiI,
  &K375,
  &KLtype_variableGVdfmc_typist
};

_KLsimple_methodGVKe Kinitialize_typist_library_cachesVdfmc_namespaceMdfmc_typistM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K377,
  &Kinitialize_typist_library_cachesVdfmc_namespaceMdfmc_typistM0I
};

_KLclassGVKd KLjustificationGVdfmc_typist = {
  &KLclassGVKdW /* wrapper */,
  &Kclass_instanceQ_initialVKiI,
  &K373,
  &K337,
  (dylan_value) 1,
  &Kdfmc_typist_moduleYdylan_userVdfmc_typist
};

_KLmm_wrapperGVKi_0 KLjustificationGVdfmc_typistW = {
  &KLmm_wrapperGVKiW /* wrapper */,
  &K337,
  (dylan_value) 1,
  13,
  33554439,
  (dylan_value) 1
};

_KLsimple_methodGVKe Kprint_objectYprintVioMdfmc_typistM2 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K335,
  &Kprint_objectYprintVioMdfmc_typistM2I
};

_KLunionGVKe KLdfm_refGVdfmc_typist = {
  &KLunionGVKeW /* wrapper */,
  &Kunion_instanceQVKiI,
  &K325,
  &KLvalue_referenceGVdfmc_flow_graph
};

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

_KLsimple_closure_methodGVKi_0 Ktype_estimate_update_cacheVdfmc_typistMM0 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_3,
  &KPfalseVKi,
  &Ktype_estimate_update_cacheVdfmc_typistMM0I,
  (dylan_value) 1
};

_KLsealed_generic_functionGVKe Ktype_estimate_update_cacheVdfmc_typist = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_3,
  &KDsignature_LobjectG_object_rest_value_3VKi,
  (dylan_value) 1,
  &K321,
  &KPempty_listVKi,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsimple_closure_methodGVKi_0 Ktype_estimate_in_cacheVdfmc_typistMM0 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_2,
  &KPfalseVKi,
  &Ktype_estimate_in_cacheVdfmc_typistMM0I,
  (dylan_value) 1
};

_KLsimple_closure_methodGVKi_0 Kcached_type_variableVdfmc_typistMM0 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_2,
  &KPfalseVKi,
  &Kcached_type_variableVdfmc_typistMM0I,
  (dylan_value) 1
};

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

_KLsealed_generic_functionGVKe Kcached_type_variableVdfmc_typist = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &KDsignature_LobjectG_object_rest_value_2VKi,
  (dylan_value) 1,
  &K280,
  &KPempty_listVKi,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsimple_closure_methodGVKi_0 Kcached_type_variable_setterVdfmc_typistMM0 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_3,
  &KPfalseVKi,
  &Kcached_type_variable_setterVdfmc_typistMM0I,
  (dylan_value) 1
};

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

_KLsealed_generic_functionGVKe Kcached_type_variable_setterVdfmc_typist = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_3,
  &KDsignature_LobjectG_object_rest_value_3VKi,
  (dylan_value) 1,
  &K279,
  &KPempty_listVKi,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsimple_closure_methodGVKi_0 Kretract_cached_type_variableVdfmc_typistMM0 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_2,
  &KPfalseVKi,
  &Kretract_cached_type_variableVdfmc_typistMM0I,
  (dylan_value) 1
};

_KLsealed_generic_functionGVKe Kretract_cached_type_variableVdfmc_typist = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &KDsignature_LobjectG_object_rest_value_2VKi,
  (dylan_value) 1,
  &K278,
  &KPempty_listVKi,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsimple_closure_methodGVKi_0 Kcached_type_variableVdfmc_typistMM1 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_2,
  &KPfalseVKi,
  &Kcached_type_variableVdfmc_typistMM1I,
  (dylan_value) 1
};

_KLsimple_closure_methodGVKi_0 Kcached_type_variable_setterVdfmc_typistMM1 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_3,
  &KPfalseVKi,
  &Kcached_type_variable_setterVdfmc_typistMM1I,
  (dylan_value) 1
};

_KLsimple_closure_methodGVKi_0 Kretract_cached_type_variableVdfmc_typistMM1 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_2,
  &KPfalseVKi,
  &Kretract_cached_type_variableVdfmc_typistMM1I,
  (dylan_value) 1
};

static _KLsimple_object_vectorGVKd_3 K67 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 13,
  &KJstream_,
  &KJrecurseQ_,
  &KJindent_
};

static _KLsimple_object_vectorGVKd_3 K68 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 13,
  &KLstreamGYcommon_extensionsVcommon_dylan,
  &KLbooleanGVKd,
  &KLintegerGVKd
};

_KLkeyword_closure_methodGVKe_0 Ktype_estimate_explainVdfmc_typistMM0 = {
  &KLkeyword_closure_methodGVKeW /* wrapper */,
  &rest_key_xep_6,
  &KPfalseVKi,
  &key_mep_6,
  &Ktype_estimate_explainVdfmc_typistMM0I,
  &K270,
  (dylan_value) 1
};

_KLkeyword_closure_methodGVKe_0 Ktype_estimate_explainVdfmc_typistMM1 = {
  &KLkeyword_closure_methodGVKeW /* wrapper */,
  &rest_key_xep_6,
  &KPfalseVKi,
  &key_mep_6,
  &Ktype_estimate_explainVdfmc_typistMM1I,
  &K270,
  (dylan_value) 1
};

_KLinstance_slot_descriptorGVKe Ktype_estimate_to_be_normalizedQVdfmc_typistHLtype_estimateG = {
  &KLinstance_slot_descriptorGVKeW /* wrapper */,
  (dylan_value) 157,
  &KPtrueVKi,
  &KLtype_estimateGVdfmc_typist,
  &KJnormalizeQ_,
  &Ktype_estimate_to_be_normalizedQVdfmc_typist,
  &Ktype_estimate_to_be_normalizedQ_setterVdfmc_typist,
  &KLbooleanGVKd
};

_KLkeyword_methodGVKe KmakeVdfmc_typistMM0 = {
  &KLkeyword_methodGVKeW /* wrapper */,
  &rest_key_xep_2,
  &K204,
  &key_mep_2,
  &KmakeVdfmc_typistMM0I,
  &KPempty_vectorVKi
};

_KLkeyword_methodGVKe KmakeVdfmc_typistMM1 = {
  &KLkeyword_methodGVKeW /* wrapper */,
  &rest_key_xep_3,
  &K206,
  &key_mep_3,
  &KmakeVdfmc_typistMM1I,
  &K207
};

_KLsealed_generic_functionGVKe KmakeVdfmc_typist = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_optional_xep_1,
  &K204,
  &KPfalseVKi,
  &K205,
  &K193,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsealed_generic_functionGVKe Ktype_variable_supporteesVdfmc_typist = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &KPfalseVKi,
  &K185,
  &K184,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsealed_generic_functionGVKe Kjustification_lhsVdfmc_typist = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &KPfalseVKi,
  &K175,
  &K174,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsealed_generic_functionGVKe Ktype_estimate_instanceQVdfmc_typist = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &K170,
  (dylan_value) 5,
  &K171,
  &K159,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsimple_methodGVKe Ktype_estimateEQVdfmc_typist = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K134,
  &Ktype_estimateEQVdfmc_typistI
};

_KLsealed_generic_functionGVKe Ktype_estimate_subtypeQVdfmc_typist = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &K134,
  (dylan_value) 1,
  &K158,
  &K150,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsealed_generic_functionGVKe Ktype_estimate_baseVdfmc_typist = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &K110,
  (dylan_value) 1,
  &K149,
  &K140,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsealed_generic_functionGVKe Ktype_estimate_unionVdfmc_typist = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &K138,
  &KPfalseVKi,
  &K139,
  &K137,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsealed_generic_functionGVKe Ktype_estimate_disjointQVdfmc_typist = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &K134,
  &KPfalseVKi,
  &K135,
  &K133,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsealed_generic_functionGVKe Ktype_estimate_matchQVdfmc_typist = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &K131,
  (dylan_value) 1,
  &K132,
  &K112,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsealed_generic_functionGVKe Ktype_estimate_normalizeVdfmc_typist = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &K110,
  (dylan_value) 1,
  &K111,
  &K99,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsealed_generic_functionGVKe Ktype_estimateVdfmc_typist = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &K96,
  &KPfalseVKi,
  &K97,
  &K95,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsimple_methodGVKe Ktype_estimateVdfmc_typistMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K96,
  &Ktype_estimateVdfmc_typistMM0I
};

static _KLpairGVKd K95 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimateVdfmc_typistMM0,
  &KPempty_listVKi
};

static _KLsignatureAvaluesGVKi K96 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (dylan_value) 33555461,
  &K98,
  &K33
};

static _KLbyte_stringGVKd_13 K97 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 53,
  "type-estimate"
};

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

static _KLpairGVKd K99 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_normalizeVdfmc_typistMM0,
  &K100
};

static _KLpairGVKd K100 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_normalizeVdfmc_typistMM1,
  &K101
};

static _KLpairGVKd K101 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_normalizeVdfmc_typistMM2,
  &K102
};

static _KLpairGVKd K102 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_normalizeVdfmc_typistMM3,
  &K103
};

static _KLpairGVKd K103 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_normalizeVdfmc_typistMM4,
  &K104
};

static _KLpairGVKd K104 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_normalizeVdfmc_typistMM5,
  &K105
};

static _KLpairGVKd K105 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_normalizeVdfmc_typistMM6,
  &K106
};

static _KLpairGVKd K106 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_normalizeVdfmc_typistMM7,
  &K107
};

static _KLpairGVKd K107 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_normalizeVdfmc_typistMM8,
  &K108
};

static _KLpairGVKd K108 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_normalizeVdfmc_typistMM9,
  &K109
};

static _KLpairGVKd K109 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_normalizeVdfmc_typistMM10,
  &KPempty_listVKi
};

static _KLsignatureAvaluesGVKi K110 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (dylan_value) 33555461,
  &K33,
  &K33
};

static _KLbyte_stringGVKd_23 K111 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 93,
  "type-estimate-normalize"
};

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

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

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

static _KLpairGVKd K115 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_matchQVdfmc_typistMM3,
  &K116
};

static _KLpairGVKd K116 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_matchQVdfmc_typistMM4,
  &K117
};

static _KLpairGVKd K117 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_matchQVdfmc_typistMM5,
  &K118
};

static _KLpairGVKd K118 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_matchQVdfmc_typistMM6,
  &K119
};

static _KLpairGVKd K119 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_matchQVdfmc_typistMM7,
  &K120
};

static _KLpairGVKd K120 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_matchQVdfmc_typistMM8,
  &K121
};

static _KLpairGVKd K121 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_matchQVdfmc_typistMM9,
  &K122
};

static _KLpairGVKd K122 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_matchQVdfmc_typistMM10,
  &K123
};

static _KLpairGVKd K123 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_matchQVdfmc_typistMM11,
  &K124
};

static _KLpairGVKd K124 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_matchQVdfmc_typistMM12,
  &K125
};

static _KLpairGVKd K125 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_matchQVdfmc_typistMM13,
  &K126
};

static _KLpairGVKd K126 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_matchQVdfmc_typistMM14,
  &K127
};

static _KLpairGVKd K127 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_matchQVdfmc_typistMM15,
  &K128
};

static _KLpairGVKd K128 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_matchQVdfmc_typistMM16,
  &K129
};

static _KLpairGVKd K129 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_matchQVdfmc_typistMM17,
  &K130
};

static _KLpairGVKd K130 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_matchQVdfmc_typistMM18,
  &KPempty_listVKi
};

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

static _KLbyte_stringGVKd_20 K132 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 81,
  "type-estimate-match?"
};

static _KLpairGVKd K133 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_disjointQVdfmc_typistMM0,
  &KPempty_listVKi
};

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

static _KLbyte_stringGVKd_23 K135 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 93,
  "type-estimate-disjoint?"
};

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

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

static _KLsignatureAvaluesGVKi K138 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (dylan_value) 33555465,
  &K136,
  &K33
};

static _KLbyte_stringGVKd_19 K139 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 77,
  "type-estimate-union"
};

static _KLpairGVKd K140 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_baseVdfmc_typistMM0,
  &K141
};

static _KLpairGVKd K141 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_baseVdfmc_typistMM1,
  &K142
};

static _KLpairGVKd K142 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_baseVdfmc_typistMM2,
  &K143
};

static _KLpairGVKd K143 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_baseVdfmc_typistMM3,
  &K144
};

static _KLpairGVKd K144 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_baseVdfmc_typistMM4,
  &K145
};

static _KLpairGVKd K145 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_baseVdfmc_typistMM5,
  &K146
};

static _KLpairGVKd K146 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_baseVdfmc_typistMM6,
  &K147
};

static _KLpairGVKd K147 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_baseVdfmc_typistMM7,
  &K148
};

static _KLpairGVKd K148 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_baseVdfmc_typistMM8,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_18 K149 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 73,
  "type-estimate-base"
};

static _KLpairGVKd K150 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_subtypeQVdfmc_typistMM0,
  &K151
};

static _KLpairGVKd K151 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_subtypeQVdfmc_typistMM1,
  &K152
};

static _KLpairGVKd K152 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_subtypeQVdfmc_typistMM2,
  &K153
};

static _KLpairGVKd K153 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_subtypeQVdfmc_typistMM3,
  &K154
};

static _KLpairGVKd K154 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_subtypeQVdfmc_typistMM4,
  &K155
};

static _KLpairGVKd K155 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_subtypeQVdfmc_typistMM5,
  &K156
};

static _KLpairGVKd K156 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_subtypeQVdfmc_typistMM6,
  &K157
};

static _KLpairGVKd K157 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_subtypeQVdfmc_typistMM7,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_22 K158 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 89,
  "type-estimate-subtype?"
};

static _KLpairGVKd K159 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_instanceQVdfmc_typistMM0,
  &K160
};

static _KLpairGVKd K160 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_instanceQVdfmc_typistMM1,
  &K161
};

static _KLpairGVKd K161 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_instanceQVdfmc_typistMM2,
  &K162
};

static _KLpairGVKd K162 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_instanceQVdfmc_typistMM3,
  &K163
};

static _KLpairGVKd K163 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_instanceQVdfmc_typistMM4,
  &K164
};

static _KLpairGVKd K164 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_instanceQVdfmc_typistMM5,
  &K165
};

static _KLpairGVKd K165 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_instanceQVdfmc_typistMM6,
  &K166
};

static _KLpairGVKd K166 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_instanceQVdfmc_typistMM7,
  &K167
};

static _KLpairGVKd K167 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_instanceQVdfmc_typistMM8,
  &K168
};

static _KLpairGVKd K168 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_instanceQVdfmc_typistMM9,
  &K169
};

static _KLpairGVKd K169 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_instanceQVdfmc_typistMM10,
  &KPempty_listVKi
};

static _KLsignatureAvaluesGVKi K170 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (dylan_value) 33556489,
  &K172,
  &KDsignature_LbooleanG_typesVKi
};

static _KLbyte_stringGVKd_23 K171 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 93,
  "type-estimate-instance?"
};

static _KLsimple_object_vectorGVKd_2 K172 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 9,
  &KLdfm_refGVdfmc_typist,
  &KLtype_estimateGVdfmc_typist
};

_KLgetter_methodGVKi Kjustification_lhsVdfmc_typistMM0 = {
  &KLgetter_methodGVKiW /* wrapper */,
  &slotacc_single_q_instance_getter_xep,
  &Kjustification_lhsVdfmc_typistHLjustificationG
};

static _KLpairGVKd K174 = {
  &KLpairGVKdW /* wrapper */,
  &Kjustification_lhsVdfmc_typistMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_17 K175 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 69,
  "justification-lhs"
};

_KLinstance_slot_descriptorGVKe Kjustification_lhsVdfmc_typistHLjustificationG = {
  &KLinstance_slot_descriptorGVKeW /* wrapper */,
  (dylan_value) 149,
  &K181,
  &KLjustificationGVdfmc_typist,
  &KJlhs_,
  &Kjustification_lhsVdfmc_typist,
  &KPfalseVKi,
  &KLdfm_refGVdfmc_typist
};

static _KLsimple_closure_methodGVKi_0 K181 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_0,
  &K182,
  &K181I,
  (dylan_value) 1
};

static _KLsymbolGVKd KJlhs_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K180
};

static _KLbyte_stringGVKd_3 K180 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 13,
  "lhs"
};

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

_KLgetter_methodGVKi Ktype_variable_supporteesVdfmc_typistMM0 = {
  &KLgetter_methodGVKiW /* wrapper */,
  &slotacc_single_q_instance_getter_xep,
  &Ktype_variable_supporteesVdfmc_typistHLtype_variableG
};

static _KLpairGVKd K184 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_variable_supporteesVdfmc_typistMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_24 K185 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 97,
  "type-variable-supportees"
};

_KLinstance_slot_descriptorGVKe Ktype_variable_supporteesVdfmc_typistHLtype_variableG = {
  &KLinstance_slot_descriptorGVKeW /* wrapper */,
  (dylan_value) 157,
  &KPempty_listVKi,
  &KLtype_variableGVdfmc_typist,
  &KJsupportees_,
  &Ktype_variable_supporteesVdfmc_typist,
  &Ktype_variable_supportees_setterVdfmc_typist,
  &KLlistGVKd
};

static _KLsymbolGVKd KJsupportees_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K192
};

_KLsealed_generic_functionGVKe Ktype_variable_supportees_setterVdfmc_typist = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &KDsignature_LobjectG_object_rest_value_2VKi,
  &KPfalseVKi,
  &K191,
  &K190,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsetter_methodGVKi Ktype_variable_supportees_setterVdfmc_typistMM0 = {
  &KLsetter_methodGVKiW /* wrapper */,
  &slotacc_single_q_instance_setter_xep,
  &Ktype_variable_supporteesVdfmc_typistHLtype_variableG
};

static _KLpairGVKd K190 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_variable_supportees_setterVdfmc_typistMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_31 K191 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 125,
  "type-variable-supportees-setter"
};

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

static _KLpairGVKd K193 = {
  &KLpairGVKdW /* wrapper */,
  &KmakeVdfmc_typistMM0,
  &K194
};

static _KLpairGVKd K194 = {
  &KLpairGVKdW /* wrapper */,
  &KmakeVdfmc_typistMM1,
  &K195
};

static _KLpairGVKd K195 = {
  &KLpairGVKdW /* wrapper */,
  &KmakeVdfmc_typistMM2,
  &K196
};

static _KLpairGVKd K196 = {
  &KLpairGVKdW /* wrapper */,
  &KmakeVdfmc_typistMM3,
  &K197
};

static _KLpairGVKd K197 = {
  &KLpairGVKdW /* wrapper */,
  &KmakeVdfmc_typistMM4,
  &K198
};

static _KLpairGVKd K198 = {
  &KLpairGVKdW /* wrapper */,
  &KmakeVdfmc_typistMM5,
  &K199
};

static _KLpairGVKd K199 = {
  &KLpairGVKdW /* wrapper */,
  &KmakeVdfmc_typistMM6,
  &K200
};

static _KLpairGVKd K200 = {
  &KLpairGVKdW /* wrapper */,
  &KmakeVdfmc_typistMM7,
  &K201
};

static _KLpairGVKd K201 = {
  &KLpairGVKdW /* wrapper */,
  &KmakeVdfmc_typistMM8,
  &K202
};

static _KLpairGVKd K202 = {
  &KLpairGVKdW /* wrapper */,
  &KmakeVdfmc_typistMM9,
  &K203
};

static _KLpairGVKd K203 = {
  &KLpairGVKdW /* wrapper */,
  &KmakeVdfmc_typistMM10,
  &KPempty_listVKi
};

static _KLkeyword_signatureGVKe K204 = {
  &KLkeyword_signatureGVKeW /* wrapper */,
  (dylan_value) 43779077,
  &KDsignature_LtypeG_typesVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi
};

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

static _KLkeyword_signatureAvaluesGVKi K206 = {
  &KLkeyword_signatureAvaluesGVKiW /* wrapper */,
  (dylan_value) 38011909,
  &K210,
  &K211,
  &KDsignature_LobjectG_typesVKi,
  &K33
};

static _KLsimple_object_vectorGVKd_2 K207 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 9,
  &KJnormalizeQ_,
  &KPtrueVKi
};

static _KLsymbolGVKd KJnormalizeQ_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K209
};

static _KLbyte_stringGVKd_10 K209 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 41,
  "normalize?"
};

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

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

static _KLsubclassGVKe K212 = {
  &KLsubclassGVKeW /* wrapper */,
  &Ksubclass_instanceQVKiI,
  &KLtype_estimateGVdfmc_typist
};

_KLsealed_generic_functionGVKe Ktype_estimate_to_be_normalizedQVdfmc_typist = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &KPfalseVKi,
  &K220,
  &K219,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsealed_generic_functionGVKe Ktype_estimate_to_be_normalizedQ_setterVdfmc_typist = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &KDsignature_LobjectG_object_rest_value_2VKi,
  &KPfalseVKi,
  &K217,
  &K216,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsetter_methodGVKi Ktype_estimate_to_be_normalizedQ_setterVdfmc_typistMM0 = {
  &KLsetter_methodGVKiW /* wrapper */,
  &slotacc_single_q_instance_setter_xep,
  &Ktype_estimate_to_be_normalizedQVdfmc_typistHLtype_estimateG
};

static _KLpairGVKd K216 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_to_be_normalizedQ_setterVdfmc_typistMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_38 K217 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 153,
  "type-estimate-to-be-normalized?-setter"
};

_KLgetter_methodGVKi Ktype_estimate_to_be_normalizedQVdfmc_typistMM0 = {
  &KLgetter_methodGVKiW /* wrapper */,
  &slotacc_single_q_instance_getter_xep,
  &Ktype_estimate_to_be_normalizedQVdfmc_typistHLtype_estimateG
};

static _KLpairGVKd K219 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_to_be_normalizedQVdfmc_typistMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_31 K220 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 125,
  "type-estimate-to-be-normalized?"
};

_KLsealed_generic_functionGVKe Ktype_estimate_retractVdfmc_typist = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &K223,
  &KPfalseVKi,
  &K224,
  &K222,
  &RSINGULAR_Labsent_engine_nodeG
};

static _KLpairGVKd K222 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_retractVdfmc_typistMM0,
  &KPempty_listVKi
};

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

static _KLbyte_stringGVKd_21 K224 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 85,
  "type-estimate-retract"
};

static _KLkeyword_closure_methodGVKe_0 KindentifyF260 = {
  &KLkeyword_closure_methodGVKeW /* wrapper */,
  &rest_key_xep_4,
  &K264,
  &key_mep_2,
  &KindentifyF260I,
  &K265,
  (dylan_value) 1
};

static _KLsimple_closure_methodGVKi_0 Kanonymous_of_type_estimate_explainF248 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_2,
  &K258,
  &Kanonymous_of_type_estimate_explainF248I,
  (dylan_value) 1
};

static _KLsimple_typechecked_cache_header_engine_nodeGVKg K229 = {
  &KLsimple_typechecked_cache_header_engine_nodeGVKgW /* wrapper */,
  (dylan_value) 131129,
  &KPfalseVKi,
  &cache_header_engine_3,
  &RSINGULAR_Labsent_engine_nodeG,
  &KformatYformatVio
};

static _KLbyte_stringGVKd_22 K230 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 89,
  "Object %= (a %=) :: %="
};

static _KLsimple_typechecked_cache_header_engine_nodeGVKg K231 = {
  &KLsimple_typechecked_cache_header_engine_nodeGVKgW /* wrapper */,
  (dylan_value) 131129,
  &KPfalseVKi,
  &cache_header_engine_3,
  &RSINGULAR_Labsent_engine_nodeG,
  &KformatYformatVio
};

static _KLbyte_stringGVKd_9 K232 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 37,
  "because: "
};

_KLsealed_generic_functionGVKe Ktype_variable_supportersVdfmc_typist = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &KPfalseVKi,
  &K240,
  &K239,
  &RSINGULAR_Labsent_engine_nodeG
};

static _KLsymbolGVKd KJstream_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K237
};

static _KLsymbolGVKd KJprinter_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K236
};

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

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

_KLgetter_methodGVKi Ktype_variable_supportersVdfmc_typistMM0 = {
  &KLgetter_methodGVKiW /* wrapper */,
  &slotacc_single_q_instance_getter_xep,
  &Ktype_variable_supportersVdfmc_typistHLtype_variableG
};

static _KLpairGVKd K239 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_variable_supportersVdfmc_typistMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_24 K240 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 97,
  "type-variable-supporters"
};

_KLinstance_slot_descriptorGVKe Ktype_variable_supportersVdfmc_typistHLtype_variableG = {
  &KLinstance_slot_descriptorGVKeW /* wrapper */,
  (dylan_value) 157,
  &KPempty_listVKi,
  &KLtype_variableGVdfmc_typist,
  &KJsupporters_,
  &Ktype_variable_supportersVdfmc_typist,
  &Ktype_variable_supporters_setterVdfmc_typist,
  &KLlistGVKd
};

static _KLsymbolGVKd KJsupporters_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K247
};

_KLsealed_generic_functionGVKe Ktype_variable_supporters_setterVdfmc_typist = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &KDsignature_LobjectG_object_rest_value_2VKi,
  &KPfalseVKi,
  &K246,
  &K245,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsetter_methodGVKi Ktype_variable_supporters_setterVdfmc_typistMM0 = {
  &KLsetter_methodGVKiW /* wrapper */,
  &slotacc_single_q_instance_setter_xep,
  &Ktype_variable_supportersVdfmc_typistHLtype_variableG
};

static _KLpairGVKd K245 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_variable_supporters_setterVdfmc_typistMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_31 K246 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 125,
  "type-variable-supporters-setter"
};

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

static _KLbyte_stringGVKd_7 K249 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 29,
  "Rule %="
};

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

static _KLsymbolGVKd KJconjunction_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K257
};

static _KLbyte_stringGVKd_3 K252 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 13,
  "and"
};

static _KLsymbolGVKd KJrecurseQ_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K256
};

static _KLsymbolGVKd KJindent_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K255
};

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

static _KLbyte_stringGVKd_8 K256 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 33,
  "recurse?"
};

static _KLbyte_stringGVKd_11 K257 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 45,
  "conjunction"
};

static _KLsignatureGVKe K258 = {
  &KLsignatureGVKeW /* wrapper */,
  (dylan_value) 44040201,
  &K259
};

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

static _KLsimple_typechecked_cache_header_engine_nodeGVKg K261 = {
  &KLsimple_typechecked_cache_header_engine_nodeGVKgW /* wrapper */,
  (dylan_value) 131129,
  &KPfalseVKi,
  &cache_header_engine_3,
  &RSINGULAR_Labsent_engine_nodeG,
  &KformatYformatVio
};

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

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

static _KLkeyword_signatureGVKe K264 = {
  &KLkeyword_signatureGVKeW /* wrapper */,
  (dylan_value) 44302345,
  &K268,
  &K269,
  &KDsignature_LobjectG_typesVKi
};

static _KLsimple_object_vectorGVKd_2 K265 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 9,
  &KJlevels_,
  (dylan_value) 1
};

static _KLsymbolGVKd KJlevels_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K267
};

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

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

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

static _KLsimple_object_vectorGVKd_6 K270 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 25,
  &KJstream_,
  &KPunboundVKi,
  &KJrecurseQ_,
  &KPfalseVKi,
  &KJindent_,
  (dylan_value) 1
};

static _KLsimple_closure_methodGVKi_0 Kanonymous_of_type_estimate_explainF273 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &rest_xep_0,
  &K275,
  &Kanonymous_of_type_estimate_explainF273I,
  (dylan_value) 1
};

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

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

_KLincremental_generic_functionGVKe Ktype_estimate_explainVdfmc_typist = {
  &KLincremental_generic_functionGVKeW /* wrapper */,
  &gf_optional_xep_2,
  &KPfalseVKi,
  &KPfalseVKi,
  &K277,
  &KPempty_listVKi,
  &RSINGULAR_Labsent_engine_nodeG,
  &Kdfmc_typist_moduleYdylan_userVdfmc_typist,
  &KPfalseVKi,
  &KPempty_vectorVKi,
  (dylan_value) 13
};

static _KLbyte_stringGVKd_21 K277 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 85,
  "type-estimate-explain"
};

static _KLbyte_stringGVKd_28 K278 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 113,
  "retract-cached-type-variable"
};

static _KLbyte_stringGVKd_27 K279 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 109,
  "cached-type-variable-setter"
};

static _KLbyte_stringGVKd_20 K280 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 81,
  "cached-type-variable"
};

_KLsealed_generic_functionGVKe Kcanonical_refVdfmc_typist = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &K310,
  (dylan_value) 1,
  &K311,
  &K306,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsealed_generic_functionGVKe Ktype_variable_contentsVdfmc_typist = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &KPfalseVKi,
  &K285,
  &K284,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLgetter_methodGVKi Ktype_variable_contentsVdfmc_typistMM0 = {
  &KLgetter_methodGVKiW /* wrapper */,
  &slotacc_single_q_instance_getter_xep,
  &Ktype_variable_contentsVdfmc_typistHLtype_variableG
};

static _KLpairGVKd K284 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_variable_contentsVdfmc_typistMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_22 K285 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 89,
  "type-variable-contents"
};

_KLinstance_slot_descriptorGVKe Ktype_variable_contentsVdfmc_typistHLtype_variableG = {
  &KLinstance_slot_descriptorGVKeW /* wrapper */,
  (dylan_value) 149,
  &K295,
  &KLtype_variableGVdfmc_typist,
  &KJcontents_,
  &Ktype_variable_contentsVdfmc_typist,
  &Ktype_variable_contents_setterVdfmc_typist,
  &KLtype_estimateGVdfmc_typist
};

static _KLsimple_closure_methodGVKi_0 K295 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_0,
  &K182,
  &K295I,
  (dylan_value) 1
};

static _KLsymbolGVKd KJcontents_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K294
};

_KLsealed_generic_functionGVKe Ktype_variable_contents_setterVdfmc_typist = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &KDsignature_LobjectG_object_rest_value_2VKi,
  &KPfalseVKi,
  &K293,
  &K292,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsetter_methodGVKi Ktype_variable_contents_setterVdfmc_typistMM0 = {
  &KLsetter_methodGVKiW /* wrapper */,
  &slotacc_single_q_instance_setter_xep,
  &Ktype_variable_contentsVdfmc_typistHLtype_variableG
};

static _KLpairGVKd K292 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_variable_contents_setterVdfmc_typistMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_29 K293 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 117,
  "type-variable-contents-setter"
};

static _KLbyte_stringGVKd_8 K294 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 33,
  "contents"
};

static _KLpairGVKd K296 = {
  &KLpairGVKdW /* wrapper */,
  &KmakeVdfmc_typistMM1,
  &K297
};

static _KLpairGVKd K297 = {
  &KLpairGVKdW /* wrapper */,
  &KmakeVdfmc_typistMM0,
  &KPempty_listVKi
};

_KLsimple_methodGVKe Kcanonical_refVdfmc_typistMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K320,
  &Kcanonical_refVdfmc_typistMM0I
};

_KLsimple_methodGVKe Kcanonical_refVdfmc_typistMM1 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K317,
  &Kcanonical_refVdfmc_typistMM1I
};

_KLsimple_methodGVKe Kcanonical_refVdfmc_typistMM2 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K314,
  &Kcanonical_refVdfmc_typistMM2I
};

_KLsimple_methodGVKe Kcanonical_refVdfmc_typistMM3 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K312,
  &Kcanonical_refVdfmc_typistMM3I
};

static _KLpairGVKd K306 = {
  &KLpairGVKdW /* wrapper */,
  &Kcanonical_refVdfmc_typistMM0,
  &K307
};

static _KLpairGVKd K307 = {
  &KLpairGVKdW /* wrapper */,
  &Kcanonical_refVdfmc_typistMM1,
  &K308
};

static _KLpairGVKd K308 = {
  &KLpairGVKdW /* wrapper */,
  &Kcanonical_refVdfmc_typistMM2,
  &K309
};

static _KLpairGVKd K309 = {
  &KLpairGVKdW /* wrapper */,
  &Kcanonical_refVdfmc_typistMM3,
  &KPempty_listVKi
};

static _KLsignatureGVKe K310 = {
  &KLsignatureGVKeW /* wrapper */,
  (dylan_value) 41944069,
  &KDsignature_LobjectG_typesVKi
};

static _KLbyte_stringGVKd_13 K311 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 53,
  "canonical-ref"
};

static _KLsignatureGVKe K312 = {
  &KLsignatureGVKeW /* wrapper */,
  (dylan_value) 41944069,
  &K313
};

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

static _KLsignatureGVKe K314 = {
  &KLsignatureGVKeW /* wrapper */,
  (dylan_value) 41944069,
  &K315
};

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

static _KLunionGVKe K316 = {
  &KLunionGVKeW /* wrapper */,
  &Kunion_instanceQVKiI,
  &KLcomputationGVdfmc_flow_graph,
  &KLtemporaryGVdfmc_flow_graph
};

static _KLsignatureAvaluesGVKi K317 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (dylan_value) 33555461,
  &K318,
  &K319
};

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

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

static _KLsignatureAvaluesGVKi K320 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (dylan_value) 33555461,
  &K98,
  &K98
};

static _KLbyte_stringGVKd_26 K321 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 105,
  "type-estimate-update-cache"
};

static _KLbyte_stringGVKd_36 K322 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 145,
  "Can\'t find type variable for ref %s."
};

_KLincremental_generic_functionGVKe Ktype_estimate_inferVdfmc_typist = {
  &KLincremental_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &KPfalseVKi,
  &KPfalseVKi,
  &K324,
  &KPempty_listVKi,
  &RSINGULAR_Labsent_engine_nodeG,
  &Kdfmc_typist_moduleYdylan_userVdfmc_typist,
  &KPfalseVKi,
  &KPempty_vectorVKi,
  (dylan_value) 13
};

static _KLbyte_stringGVKd_19 K324 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 77,
  "type-estimate-infer"
};

static _KLunionGVKe K325 = {
  &KLunionGVKeW /* wrapper */,
  &Kunion_instanceQVKiI,
  &K326,
  &KLbindingGVdfmc_namespace
};

static _KLunionGVKe K326 = {
  &KLunionGVKeW /* wrapper */,
  &Kunion_instanceQVKiI,
  &KLcomputationGVdfmc_flow_graph,
  &KLmodel_valueGVdfmc_modeling
};

_KLincremental_generic_functionGVKe Ktype_estimate_in_cacheVdfmc_typist = {
  &KLincremental_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &KPfalseVKi,
  &KPfalseVKi,
  &K328,
  &KPempty_listVKi,
  &RSINGULAR_Labsent_engine_nodeG,
  &Kdfmc_typist_moduleYdylan_userVdfmc_typist,
  &KPfalseVKi,
  &KPempty_vectorVKi,
  (dylan_value) 13
};

static _KLbyte_stringGVKd_22 K328 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 89,
  "type-estimate-in-cache"
};

static _KLsimple_typechecked_cache_header_engine_nodeGVKg K329 = {
  &KLsimple_typechecked_cache_header_engine_nodeGVKgW /* wrapper */,
  (dylan_value) 131129,
  &KPfalseVKi,
  &cache_header_engine_3,
  &RSINGULAR_Labsent_engine_nodeG,
  &KformatYformatVio
};

static _KLbyte_stringGVKd_18 K330 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 73,
  "{Rule: %=, LHS: %="
};

static _KLsimple_typechecked_cache_header_engine_nodeGVKg K331 = {
  &KLsimple_typechecked_cache_header_engine_nodeGVKgW /* wrapper */,
  (dylan_value) 131129,
  &KPfalseVKi,
  &cache_header_engine_3,
  &RSINGULAR_Labsent_engine_nodeG,
  &KformatYformatVio
};

static _KLbyte_stringGVKd_7 K332 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 29,
  ", RHS: "
};

static _KLsimple_typechecked_cache_header_engine_nodeGVKg K333 = {
  &KLsimple_typechecked_cache_header_engine_nodeGVKgW /* wrapper */,
  (dylan_value) 131129,
  &KPfalseVKi,
  &cache_header_engine_3,
  &RSINGULAR_Labsent_engine_nodeG,
  &KformatYformatVio
};

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

static _KLsignatureGVKe K335 = {
  &KLsignatureGVKeW /* wrapper */,
  (dylan_value) 41943049,
  &K336
};

static _KLsimple_object_vectorGVKd_2 K336 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 9,
  &KLjustificationGVdfmc_typist,
  &KLstreamGYcommon_extensionsVcommon_dylan
};

static _KLimplementation_classGVKe K337 = {
  &KLimplementation_classGVKeW /* wrapper */,
  (dylan_value) 527433741,
  &KLjustificationGVdfmc_typist,
  &KLjustificationGVdfmc_typistW,
  &KPfalseVKi,
  &K338,
  (dylan_value) -3,
  &KLjustificationGZ32ZconstructorVdfmc_typistMM0,
  &K341,
  &K342,
  (dylan_value) 5,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_listVKi,
  &KPempty_listVKi,
  &KPempty_listVKi,
  &KPempty_vectorVKi,
  &K338,
  &K338,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi
};

static _KLsimple_object_vectorGVKd_3 K338 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 13,
  &Kjustification_ruleVdfmc_typistHLjustificationG,
  &Kjustification_lhsVdfmc_typistHLjustificationG,
  &Kjustification_rhsVdfmc_typistHLjustificationG
};

_KLkeyword_methodGVKe KLjustificationGZ32ZconstructorVdfmc_typistMM0 = {
  &KLkeyword_methodGVKeW /* wrapper */,
  &rest_key_xep_5,
  &K349,
  &key_mep_2,
  &KLjustificationGZ32ZconstructorVdfmc_typistMM0I,
  &K350
};

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

static _KLsimple_object_vectorGVKd_6 K342 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 25,
  &KLobjectGVKd,
  &KLjustificationGVdfmc_typist,
  &KPfalseVKi,
  &KPfalseVKi,
  &KPfalseVKi,
  &KPfalseVKi
};

static _KLkeyword_signatureAvaluesGVKi K349 = {
  &KLkeyword_signatureAvaluesGVKiW /* wrapper */,
  (dylan_value) 35390469,
  &KDsignature_LclassG_typesVKi,
  &K355,
  &KDsignature_LobjectG_typesVKi,
  &K356
};

static _KLsimple_object_vectorGVKd_6 K350 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 25,
  &KJrule_,
  &KPunboundVKi,
  &KJlhs_,
  &KPunboundVKi,
  &KJrhs_,
  &KPunboundVKi
};

static _KLsymbolGVKd KJrule_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K354
};

static _KLsymbolGVKd KJrhs_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K353
};

static _KLbyte_stringGVKd_3 K353 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 13,
  "rhs"
};

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

static _KLsimple_object_vectorGVKd_3 K355 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 13,
  &KJrule_,
  &KJlhs_,
  &KJrhs_
};

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

_KLinstance_slot_descriptorGVKe Kjustification_ruleVdfmc_typistHLjustificationG = {
  &KLinstance_slot_descriptorGVKeW /* wrapper */,
  (dylan_value) 149,
  &K372,
  &KLjustificationGVdfmc_typist,
  &KJrule_,
  &Kjustification_ruleVdfmc_typist,
  &KPfalseVKi,
  &KLsymbolGVKd
};

_KLinstance_slot_descriptorGVKe Kjustification_rhsVdfmc_typistHLjustificationG = {
  &KLinstance_slot_descriptorGVKeW /* wrapper */,
  (dylan_value) 149,
  &K365,
  &KLjustificationGVdfmc_typist,
  &KJrhs_,
  &Kjustification_rhsVdfmc_typist,
  &KPfalseVKi,
  &KLlistGVKd
};

static _KLsimple_closure_methodGVKi_0 K365 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_0,
  &K182,
  &K365I,
  (dylan_value) 1
};

_KLsealed_generic_functionGVKe Kjustification_rhsVdfmc_typist = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &KPfalseVKi,
  &K364,
  &K363,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLgetter_methodGVKi Kjustification_rhsVdfmc_typistMM0 = {
  &KLgetter_methodGVKiW /* wrapper */,
  &slotacc_single_q_instance_getter_xep,
  &Kjustification_rhsVdfmc_typistHLjustificationG
};

static _KLpairGVKd K363 = {
  &KLpairGVKdW /* wrapper */,
  &Kjustification_rhsVdfmc_typistMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_17 K364 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 69,
  "justification-rhs"
};

static _KLsimple_closure_methodGVKi_0 K372 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_0,
  &K182,
  &K372I,
  (dylan_value) 1
};

_KLsealed_generic_functionGVKe Kjustification_ruleVdfmc_typist = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &KPfalseVKi,
  &K371,
  &K370,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLgetter_methodGVKi Kjustification_ruleVdfmc_typistMM0 = {
  &KLgetter_methodGVKiW /* wrapper */,
  &slotacc_single_q_instance_getter_xep,
  &Kjustification_ruleVdfmc_typistHLjustificationG
};

static _KLpairGVKd K370 = {
  &KLpairGVKdW /* wrapper */,
  &Kjustification_ruleVdfmc_typistMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_18 K371 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 73,
  "justification-rule"
};

static _KLbyte_stringGVKd_15 K373 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 61,
  "<justification>"
};

static _KLunionGVKe K374 = {
  &KLunionGVKeW /* wrapper */,
  &Kunion_instanceQVKiI,
  &K375,
  &KLlistGVKd
};

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

static _KLunionGVKe K376 = {
  &KLunionGVKeW /* wrapper */,
  &Kunion_instanceQVKiI,
  &K375,
  &KLsymbolGVKd
};

static _KLsignatureGVKe K377 = {
  &KLsignatureGVKeW /* wrapper */,
  (dylan_value) 41943045,
  &K378
};

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

static _KLsimple_typechecked_cache_header_engine_nodeGVKg K379 = {
  &KLsimple_typechecked_cache_header_engine_nodeGVKgW /* wrapper */,
  (dylan_value) 131129,
  &KPfalseVKi,
  &cache_header_engine_3,
  &RSINGULAR_Labsent_engine_nodeG,
  &KformatYformatVio
};

static _KLbyte_stringGVKd_19 K380 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 77,
  "{Type-Variable: %=}"
};

static _KLsignatureGVKe K381 = {
  &KLsignatureGVKeW /* wrapper */,
  (dylan_value) 41943049,
  &K382
};

static _KLsimple_object_vectorGVKd_2 K382 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 9,
  &KLtype_variableGVdfmc_typist,
  &KLstreamGYcommon_extensionsVcommon_dylan
};

static _KLimplementation_classGVKe K383 = {
  &KLimplementation_classGVKeW /* wrapper */,
  (dylan_value) 527433741,
  &KLtype_variableGVdfmc_typist,
  &KLtype_variableGVdfmc_typistW,
  &KPfalseVKi,
  &K384,
  (dylan_value) -3,
  &KLtype_variableGZ32ZconstructorVdfmc_typistMM0,
  &K341,
  &K387,
  (dylan_value) 5,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_listVKi,
  &KPempty_listVKi,
  &KPempty_listVKi,
  &KPempty_vectorVKi,
  &K384,
  &K384,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi
};

static _KLsimple_object_vectorGVKd_3 K384 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 13,
  &Ktype_variable_contentsVdfmc_typistHLtype_variableG,
  &Ktype_variable_supportersVdfmc_typistHLtype_variableG,
  &Ktype_variable_supporteesVdfmc_typistHLtype_variableG
};

_KLkeyword_methodGVKe KLtype_variableGZ32ZconstructorVdfmc_typistMM0 = {
  &KLkeyword_methodGVKeW /* wrapper */,
  &rest_key_xep_5,
  &K390,
  &key_mep_2,
  &KLtype_variableGZ32ZconstructorVdfmc_typistMM0I,
  &K391
};

static _KLsimple_object_vectorGVKd_6 K387 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 25,
  &KLobjectGVKd,
  &KLtype_variableGVdfmc_typist,
  &KPfalseVKi,
  &KPfalseVKi,
  &KPfalseVKi,
  &KPfalseVKi
};

static _KLkeyword_signatureAvaluesGVKi K390 = {
  &KLkeyword_signatureAvaluesGVKiW /* wrapper */,
  (dylan_value) 35390469,
  &KDsignature_LclassG_typesVKi,
  &K392,
  &KDsignature_LobjectG_typesVKi,
  &K51
};

static _KLsimple_object_vectorGVKd_6 K391 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 25,
  &KJcontents_,
  &KPunboundVKi,
  &KJsupporters_,
  &KPempty_listVKi,
  &KJsupportees_,
  &KPempty_listVKi
};

static _KLsimple_object_vectorGVKd_3 K392 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 13,
  &KJcontents_,
  &KJsupporters_,
  &KJsupportees_
};

static _KLbyte_stringGVKd_15 K393 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 61,
  "<type-variable>"
};

_KLsimple_methodGVKe Ktype_estimate_pseudosubtypeQVdfmc_typist = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K134,
  &Ktype_estimate_pseudosubtypeQVdfmc_typistI
};

_KLsealed_generic_functionGVKe Ktype_estimate_differenceVdfmc_typist = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &K138,
  &KPfalseVKi,
  &K398,
  &K397,
  &RSINGULAR_Labsent_engine_nodeG
};

static _KLpairGVKd K397 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_differenceVdfmc_typistMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_24 K398 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 97,
  "type-estimate-difference"
};

_KLsealed_generic_functionGVKe Ktype_estimate_intersectionVdfmc_typist = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &K138,
  &KPfalseVKi,
  &K401,
  &K400,
  &RSINGULAR_Labsent_engine_nodeG
};

static _KLpairGVKd K400 = {
  &KLpairGVKdW /* wrapper */,
  &Ktype_estimate_intersectionVdfmc_typistMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_26 K401 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 105,
  "type-estimate-intersection"
};

_KLsealed_generic_functionGVKe Kprint_type_estimate_internalsVdfmc_typist = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_optional_xep_1,
  &K415,
  (dylan_value) 1,
  &K416,
  &K404,
  &RSINGULAR_Labsent_engine_nodeG
};

static _KLbyte_stringGVKd_16 K403 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 65,
  "{Type Estimate: "
};

static _KLpairGVKd K404 = {
  &KLpairGVKdW /* wrapper */,
  &Kprint_type_estimate_internalsVdfmc_typistMM0,
  &K405
};

static _KLpairGVKd K405 = {
  &KLpairGVKdW /* wrapper */,
  &Kprint_type_estimate_internalsVdfmc_typistMM1,
  &K406
};

static _KLpairGVKd K406 = {
  &KLpairGVKdW /* wrapper */,
  &Kprint_type_estimate_internalsVdfmc_typistMM2,
  &K407
};

static _KLpairGVKd K407 = {
  &KLpairGVKdW /* wrapper */,
  &Kprint_type_estimate_internalsVdfmc_typistMM3,
  &K408
};

static _KLpairGVKd K408 = {
  &KLpairGVKdW /* wrapper */,
  &Kprint_type_estimate_internalsVdfmc_typistMM4,
  &K409
};

static _KLpairGVKd K409 = {
  &KLpairGVKdW /* wrapper */,
  &Kprint_type_estimate_internalsVdfmc_typistMM5,
  &K410
};

static _KLpairGVKd K410 = {
  &KLpairGVKdW /* wrapper */,
  &Kprint_type_estimate_internalsVdfmc_typistMM6,
  &K411
};

static _KLpairGVKd K411 = {
  &KLpairGVKdW /* wrapper */,
  &Kprint_type_estimate_internalsVdfmc_typistMM7,
  &K412
};

static _KLpairGVKd K412 = {
  &KLpairGVKdW /* wrapper */,
  &Kprint_type_estimate_internalsVdfmc_typistMM8,
  &K413
};

static _KLpairGVKd K413 = {
  &KLpairGVKdW /* wrapper */,
  &Kprint_type_estimate_internalsVdfmc_typistMM9,
  &K414
};

static _KLpairGVKd K414 = {
  &KLpairGVKdW /* wrapper */,
  &Kprint_type_estimate_internalsVdfmc_typistMM10,
  &KPempty_listVKi
};

static _KLkeyword_signatureGVKe K415 = {
  &KLkeyword_signatureGVKeW /* wrapper */,
  (dylan_value) 42205189,
  &K33,
  &K417,
  &KDsignature_LobjectG_typesVKi
};

static _KLbyte_stringGVKd_29 K416 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 117,
  "print-type-estimate-internals"
};

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

static _KLsignatureGVKe K418 = {
  &KLsignatureGVKeW /* wrapper */,
  (dylan_value) 41943049,
  &K419
};

static _KLsimple_object_vectorGVKd_2 K419 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 9,
  &KLtype_estimateGVdfmc_typist,
  &KLstreamGYcommon_extensionsVcommon_dylan
};

static _KLimplementation_classGVKe K420 = {
  &KLimplementation_classGVKeW /* wrapper */,
  (dylan_value) 460587013,
  &KLtype_estimateGVdfmc_typist,
  &KLtype_estimateGVdfmc_typistW,
  &KPfalseVKi,
  &K421,
  (dylan_value) -3,
  &Kdefault_class_constructorVKi,
  &K341,
  &K422,
  (dylan_value) 5,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_listVKi,
  &KPempty_listVKi,
  &K432,
  &KPempty_vectorVKi,
  &K421,
  &K421,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi
};

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

static _KLsimple_object_vectorGVKd_6 K422 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 25,
  &KLobjectGVKd,
  &KLtype_estimateGVdfmc_typist,
  &KPfalseVKi,
  &KPfalseVKi,
  &KPfalseVKi,
  &KPfalseVKi
};

static _KLbyte_stringGVKd_15 K423 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 61,
  "<type-estimate>"
};

_KLsimple_methodGVKe Ktype_estimate_dispatch_cache_lookupVdfmc_typistMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K426,
  &Ktype_estimate_dispatch_cache_lookupVdfmc_typistMM0I
};

static _KLsignatureGVKe K426 = {
  &KLsignatureGVKeW /* wrapper */,
  (dylan_value) 41944073,
  &K427
};

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

_KLsimple_methodGVKe Kadd_type_estimate_dispatch_cache_entryVdfmc_typistMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_3,
  &K430,
  &Kadd_type_estimate_dispatch_cache_entryVdfmc_typistMM0I
};

static _KLsignatureGVKe K430 = {
  &KLsignatureGVKeW /* wrapper */,
  (dylan_value) 41943053,
  &K431
};

static _KLsimple_object_vectorGVKd_3 K431 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 13,
  &KLBgeneric_functionGVdfmc_modeling,
  &KLobjectGVKd,
  &KLobjectGVKd
};

static _KLpairGVKd K432 = {
  &KLpairGVKdW /* wrapper */,
  &KLtype_estimate_bottomGVdfmc_typist,
  &K433
};

static _KLpairGVKd K433 = {
  &KLpairGVKdW /* wrapper */,
  &KLtype_estimate_unionGVdfmc_typist,
  &K434
};

static _KLpairGVKd K434 = {
  &KLpairGVKdW /* wrapper */,
  &KLtype_estimate_valuesGVdfmc_typist,
  &K435
};

static _KLpairGVKd K435 = {
  &KLpairGVKdW /* wrapper */,
  &KLtype_estimate_rawGVdfmc_typist,
  &K436
};

static _KLpairGVKd K436 = {
  &KLpairGVKdW /* wrapper */,
  &KLtype_estimate_classGVdfmc_typist,
  &K437
};

static _KLpairGVKd K437 = {
  &KLpairGVKdW /* wrapper */,
  &KLtype_estimate_topGVdfmc_typist,
  &KPempty_listVKi
};

/* Code */

dylan_value Kprint_objectYprintVioMdfmc_typistM0I (dylan_value te_, dylan_value stream_) {
  dylan_value T3;
  dylan_value T4;
  dylan_value Pold_valueP_;
  dylan_value T6;
  dylan_value T7;
  dylan_value T8;
  _KLsimple_object_vectorGVKd_2 T9 = {&KLsimple_object_vectorGVKdW, (dylan_value) 9};
  _KLsimple_object_vectorGVKd_2 T10 = {&KLsimple_object_vectorGVKdW, (dylan_value) 9};

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:85
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:87
  T3 = primitive_read_thread_variable(Tprinting_a_type_estimateQTVdfmc_typist);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:87
  if (T3 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:88
    T9.vector_element_[0] = IKJstream_;
    T9.vector_element_[1] = stream_;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:88
    CONGRUENT_CALL_PROLOG(&Kprint_type_estimate_internalsVdfmc_typist, 2);
    T4 = CONGRUENT_CALL2(te_, &T9);
    T8 = T4;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:90
    Pold_valueP_ = primitive_read_thread_variable(Tprinting_a_type_estimateQTVdfmc_typist);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:90
    ENTER_UNWIND_FRAME(T6);
    if (!nlx_setjmp(FRAME_DEST(T6))) {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:90
      primitive_write_thread_variable(Tprinting_a_type_estimateQTVdfmc_typist, &KPtrueVKi);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:91
      CONGRUENT_CALL_PROLOG(&KwriteYstreams_protocolVcommon_dylan, 3);
      CONGRUENT_CALL3(stream_, &K403, &KPempty_vectorVKi);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:92
      T10.vector_element_[0] = IKJstream_;
      T10.vector_element_[1] = stream_;
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:92
      CONGRUENT_CALL_PROLOG(&Kprint_type_estimate_internalsVdfmc_typist, 2);
      CONGRUENT_CALL2(te_, &T10);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:93
      CONGRUENT_CALL_PROLOG(&Kwrite_elementYstreams_protocolVcommon_dylan, 2);
      T7 = CONGRUENT_CALL2(stream_, C('}'));
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:90
      FALL_THROUGH_UNWIND(T7);
    }
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:90
    primitive_write_thread_variable(Tprinting_a_type_estimateQTVdfmc_typist, Pold_valueP_);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:90
    CONTINUE_UNWIND();
    T8 = T7;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:87
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:85
  MV_SET_COUNT(0);
  return(T8);
}

dylan_value Kprint_objectYprintVioMdfmc_typistM1I (dylan_value v_, dylan_value stream_) {
  dylan_value T3;
  _KLsimple_object_vectorGVKd_1 T4 = {&KLsimple_object_vectorGVKdW, (dylan_value) 5};
  dylan_value T5;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:242
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:244
  T3 = SLOT_VALUE_INITD(v_, 0);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:244
  T4.vector_element_[0] = T3;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:244
  ENGINE_NODE_CALL_PROLOG(&KformatYformatVio, &K379, 3);
  T5 = ENGINE_NODE_CALL3(&K379, stream_, &K380, &T4);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:242
  MV_SET_COUNT(0);
  return(T5);
}

dylan_value Kinitialize_typist_library_cachesVdfmc_namespaceMdfmc_typistM0I (dylan_value ld_) {
  dylan_value T2;
  dylan_value T3;
  dylan_value T4;
  dylan_value T5_0;
  dylan_value T6;
  dylan_value T7_0;
  dylan_value T8;
  dylan_value T9_0;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:266
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:273
  T2 = CALL1(&KmakeVdfmc_typist, Ltype_cacheGVdfmc_typist);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:272
  CONGRUENT_CALL_PROLOG(&Klibrary_type_cache_setterVdfmc_namespace, 2);
  CONGRUENT_CALL2(T2, ld_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:275
  CONGRUENT_CALL_PROLOG(&KmakeVKd, 2);
  T5_0 = CONGRUENT_CALL2(&KLtype_estimate_pair_match_tableGVdfmc_typist, &KPempty_vectorVKi);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:275
  T4 = T5_0;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:274
  CONGRUENT_CALL_PROLOG(&Klibrary_type_estimate_disjointQ_cache_setterVdfmc_namespace, 2);
  CONGRUENT_CALL2(T4, ld_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:277
  T7_0 = KLobject_tableGZ32ZconstructorVKiMM0I(&KLobject_tableGVKd, &KPempty_vectorVKi, &KLobjectGVKd, (dylan_value) 41, &Kdefault_grow_sizeVKe, &KPfalseVKi);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:277
  T6 = T7_0;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:276
  CONGRUENT_CALL_PROLOG(&Klibrary_type_estimate_cons_cache_setterVdfmc_namespace, 2);
  CONGRUENT_CALL2(T6, ld_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:279
  T9_0 = KLobject_tableGZ32ZconstructorVKiMM0I(&KLobject_tableGVKd, &KPempty_vectorVKi, &KLobjectGVKd, (dylan_value) 41, &Kdefault_grow_sizeVKe, &KPfalseVKi);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:279
  T8 = T9_0;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:278
  CONGRUENT_CALL_PROLOG(&Klibrary_type_estimate_dispatch_cache_setterVdfmc_namespace, 2);
  CONGRUENT_CALL2(T8, ld_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:278
  T3 = &KPfalseVKi;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:266
  MV_SET_COUNT(0);
  return(T3);
}

dylan_value Kprint_objectYprintVioMdfmc_typistM2I (dylan_value j_, dylan_value stream_) {
  dylan_value T3;
  dylan_value T4;
  _KLsimple_object_vectorGVKd_2 T5 = {&KLsimple_object_vectorGVKdW, (dylan_value) 9};
  dylan_value T6;
  dylan_value T7;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:298
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:301
  T3 = SLOT_VALUE_INITD(j_, 0);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:301
  T4 = SLOT_VALUE_INITD(j_, 1);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:300
  T5.vector_element_[0] = T3;
  T5.vector_element_[1] = T4;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:300
  ENGINE_NODE_CALL_PROLOG(&KformatYformatVio, &K329, 3);
  ENGINE_NODE_CALL3(&K329, stream_, &K330, &T5);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:303
  ENGINE_NODE_CALL_PROLOG(&KformatYformatVio, &K331, 3);
  ENGINE_NODE_CALL3(&K331, stream_, &K332, &KPempty_vectorVKi);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:304
  T6 = SLOT_VALUE_INITD(j_, 2);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:304
  CALL5(&Kprint_separated_collectionVdfmc_typist, T6, IKJstream_, stream_, IKJconjunction_, &K252);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:308
  ENGINE_NODE_CALL_PROLOG(&KformatYformatVio, &K333, 3);
  T7 = ENGINE_NODE_CALL3(&K333, stream_, &K334, &KPempty_vectorVKi);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:298
  MV_SET_COUNT(0);
  return(T7);
}

dylan_value Ktype_estimate_update_cacheVdfmc_typistMM0I (dylan_value ref_, dylan_value cache_, dylan_value new_type_) {
  dylan_value T4;
  dylan_value cacheF5;
  dylan_value refF6;
  dylan_value ref_variable_;
  dylan_value T8;
  dylan_value T9;
  dylan_value Pold_valueP_;
  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 T19;
  dylan_value T20;
  dylan_value T21;
  dylan_value T22;
  dylan_value T23;
  dylan_value T24T, 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 T33;
  dylan_value T34;
  dylan_value T35;
  dylan_value T36;
  dylan_value T37;
  dylan_value T38;
  dylan_value T39T, T39;
  dylan_value T40;
  dylan_value T41;
  dylan_value T42;
  dylan_value T43;
  dylan_value next_rhs_;
  dylan_value T45;
  dylan_value T46;
  dylan_value T47;
  dylan_value T48;
  dylan_value T49;
  dylan_value T50;
  _KLsimple_object_vectorGVKd_1 T51 = {&KLsimple_object_vectorGVKdW, (dylan_value) 5};
  dylan_value T52;
  dylan_value T53;
  dylan_value just_;
  dylan_value T55_0;
  dylan_value T56;
  dylan_value T57;
  CAPTURE_ENVIRONMENT

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:325
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:325
  T4 = Kfunction_required_typeVKiI(MREF, (dylan_value) 5);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:325
  cacheF5 = cache_;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:328
  CONGRUENT_CALL_PROLOG(&Kcanonical_refVdfmc_typist, 1);
  refF6 = CONGRUENT_CALL1(ref_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:331
  CONGRUENT_CALL_PROLOG(&Kcached_type_variableVdfmc_typist, 2);
  ref_variable_ = CONGRUENT_CALL2(refF6, cacheF5);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:332
  T49 = TdebuggingQTVKi;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:332
  if (T49 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:332
    T50 = primitive_not(ref_variable_);
    T8 = T50;
  } else {
    T8 = &KPfalseVKi;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:332
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:332
  if (T8 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:332
    T51.vector_element_[0] = refF6;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:332
    Kdebug_assertion_failureVKiI(&K322, &T51);
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:332
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:333
  T9 = primitive_read_thread_variable(Ttype_vars_propagatingTVdfmc_typist);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:333
  T52 = KmemberQVKdMM4I(ref_variable_, T9, &KPempty_vectorVKi, &KEEVKd);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:333
  if (T52 == &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:334
    Pold_valueP_ = primitive_read_thread_variable(Ttype_vars_propagatingTVdfmc_typist);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:334
    ENTER_UNWIND_FRAME(T11);
    if (!nlx_setjmp(FRAME_DEST(T11))) {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:335
      T12 = primitive_read_thread_variable(Ttype_vars_propagatingTVdfmc_typist);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:335
      T53 = primitive_object_allocate_filled(3,&KLpairGVKdW,2,&KPunboundVKi,0,0,&KPunboundVKi);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:335
      SLOT_VALUE_SETTER(ref_variable_, T53, 0);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:335
      SLOT_VALUE_SETTER(T12, T53, 1);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:334
      primitive_write_thread_variable(Ttype_vars_propagatingTVdfmc_typist, T53);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:338
      T13 = CALL1(&Ktype_variable_contentsVdfmc_typist, ref_variable_);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:338
      T14 = CALL2(&Ktype_estimate_unionVdfmc_typist, T13, new_type_);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:337
      CALL2(&Ktype_variable_contents_setterVdfmc_typist, T14, ref_variable_);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:340
      CONGRUENT_CALL_PROLOG(&KmakeVKd, 2);
      T55_0 = CONGRUENT_CALL2(&KLjustificationGVdfmc_typist, &KPempty_vectorVKi);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:340
      just_ = T55_0;
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:342
      T15 = CALL1(&Ktype_variable_supportersVdfmc_typist, ref_variable_);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:342
      T16 = CALL2(&KaddXVKd, T15, just_);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:341
      CALL2(&Ktype_variable_supporters_setterVdfmc_typist, T16, ref_variable_);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:343
      T17 = primitive_read_thread_variable(Tcurrent_rhsTVdfmc_typist);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:343
      T18 = CALL1(&Kforward_iteration_protocolVKd, T17);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:343
      T19 = T18;
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:343
      T20 = MV_GET_ELT(1);
;
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:343
      T21 = MV_GET_ELT(2);
;
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:343
      T22 = MV_GET_ELT(3);
;
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:343
      T23 = MV_GET_ELT(5);
;
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:343
      T24T = T19;
    L0: ;
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:343
        T24 = T24T;
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:343
        T25 = CALL3(T22, T17, T24, T20);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:343
        if (T25 == &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:343
          T26 = CALL2(T23, T17, T24);
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:343
          next_rhs_ = T26;
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:344
          T48 = next_rhs_;
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:344
          T56 = primitive_instanceQ(T48,&KLtype_variableGVdfmc_typist);
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:344
          if (T56 == &KPfalseVKi) {
            // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:345
            T47 = next_rhs_;
            // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:345
            CONGRUENT_CALL_PROLOG(&Kcanonical_refVdfmc_typist, 1);
            T27 = CONGRUENT_CALL1(T47);
            // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:345
            CONGRUENT_CALL_PROLOG(&Kcached_type_variableVdfmc_typist, 2);
            T28 = CONGRUENT_CALL2(T27, cacheF5);
            // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:345
            next_rhs_ = T28;
          }
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:344
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:348
          T46 = next_rhs_;
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:348
          T29 = CALL1(&Ktype_variable_supporteesVdfmc_typist, T46);
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:348
          T30 = CALL2(&KaddXVKd, T29, just_);
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:347
          T45 = next_rhs_;
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:347
          CALL2(&Ktype_variable_supportees_setterVdfmc_typist, T30, T45);
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:343
          T31 = CALL2(T21, T17, T24);
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:343
          T24T = T31;
          goto L0;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:343
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:343
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:352
      T32 = CALL1(&Ktype_variable_supporteesVdfmc_typist, ref_variable_);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:352
      T33 = CALL1(&Kforward_iteration_protocolVKd, T32);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:352
      T34 = T33;
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:352
      T35 = MV_GET_ELT(1);
;
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:352
      T36 = MV_GET_ELT(2);
;
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:352
      T37 = MV_GET_ELT(3);
;
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:352
      T38 = MV_GET_ELT(5);
;
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:352
      T39T = T34;
    L1: ;
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:352
        T39 = T39T;
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:352
        T40 = CALL3(T37, T32, T39, T35);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:352
        if (T40 == &KPfalseVKi) {
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:352
          T41 = CALL2(T38, T32, T39);
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:353
          T42 = CALL1(&Kjustification_lhsVdfmc_typist, T41);
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:353
          CONGRUENT_CALL_PROLOG(&Ktype_estimate_update_cacheVdfmc_typist, 3);
          CONGRUENT_CALL3(T42, cacheF5, new_type_);
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:352
          T43 = CALL2(T36, T32, T39);
          // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:352
          T39T = T43;
          goto L1;
        }
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:352
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:352
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:334
      FALL_THROUGH_UNWIND(&KPfalseVKi);
    }
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:334
    primitive_write_thread_variable(Ttype_vars_propagatingTVdfmc_typist, Pold_valueP_);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:334
    CONTINUE_UNWIND();
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:333
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:357
  T57 = &KPfalseVKi;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:325
  MV_SET_COUNT(0);
  return(T57);
}

dylan_value Ktype_estimate_in_cacheVdfmc_typistMM0I (dylan_value ref_, dylan_value cache_) {
  dylan_value T3;
  dylan_value cacheF4;
  dylan_value refF5;
  dylan_value type_var_;
  dylan_value T7_0;
  dylan_value T8;
  dylan_value T9_0;
  dylan_value T10_0;
  dylan_value T11_0;
  dylan_value T12_0;
  dylan_value T13;
  dylan_value T14_0;
  CAPTURE_ENVIRONMENT

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:395
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:395
  T3 = Kfunction_required_typeVKiI(MREF, (dylan_value) 5);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:395
  cacheF4 = cache_;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:397
  CONGRUENT_CALL_PROLOG(&Kcanonical_refVdfmc_typist, 1);
  refF5 = CONGRUENT_CALL1(ref_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:402
  CONGRUENT_CALL_PROLOG(&Kcached_type_variableVdfmc_typist, 2);
  type_var_ = CONGRUENT_CALL2(refF5, cacheF4);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:403
  if (type_var_ != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:405
    T7_0 = CALL1(&Ktype_variable_contentsVdfmc_typist, type_var_);
    T10_0 = T7_0;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:409
    CONGRUENT_CALL_PROLOG(&KmakeVKd, 2);
    T14_0 = CONGRUENT_CALL2(&KLtype_variableGVdfmc_typist, &KPempty_vectorVKi);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:409
    T13 = T14_0;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:409
    CONGRUENT_CALL_PROLOG(&Kcached_type_variable_setterVdfmc_typist, 3);
    CONGRUENT_CALL3(T13, refF5, cacheF4);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:410
    primitive_type_check(type_estimate_inferVdfmc_typist, &KLfunctionGVKd);
    T8 = type_estimate_inferVdfmc_typist;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:410
    T9_0 = CALL2(T8, refF5, cacheF4);
    T10_0 = T9_0;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:403
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:395
  T11_0 = T10_0;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:395
  T12_0 = T11_0;
  {
    MV_CHECK_TYPE_PROLOGUE(T11_0);
    primitive_type_check(T12_0, &KLtype_estimateGVdfmc_typist);
    MV_CHECK_TYPE_EPILOGUE();
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:395
  MV_SET_COUNT(1);
  return(T12_0);
}

dylan_value Kcached_type_variableVdfmc_typistMM0I (dylan_value ref_, dylan_value cache_) {
  dylan_value T3;
  dylan_value T4;
  dylan_value T5_0;
  dylan_value T6_0;
  CAPTURE_ENVIRONMENT

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:414
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:414
  T3 = Kfunction_required_typeVKiI(MREF, (dylan_value) 5);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:414
  cache_;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:414
  T4 = Kfunction_value_typeVKiI(MREF, (dylan_value) 1);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:417
  T5_0 = Kcomputation_typeVdfmc_flow_graphMM0I(ref_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:414
  T6_0 = T5_0;
  {
    MV_CHECK_TYPE_PROLOGUE(T5_0);
    primitive_type_check(T6_0, T4);
    MV_CHECK_TYPE_EPILOGUE();
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:414
  MV_SET_COUNT(1);
  return(T6_0);
}

dylan_value Kcached_type_variable_setterVdfmc_typistMM0I (dylan_value tv_, dylan_value ref_, dylan_value cache_) {
  dylan_value T4;
  dylan_value T5_0;
  CAPTURE_ENVIRONMENT

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:420
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:420
  T4 = Kfunction_required_typeVKiI(MREF, (dylan_value) 9);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:420
  cache_;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:423
  Kcomputation_type_setterVdfmc_flow_graphMM0I(tv_, ref_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:423
  T5_0 = tv_;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:420
  MV_SET_COUNT(1);
  return(T5_0);
}

dylan_value Kretract_cached_type_variableVdfmc_typistMM0I (dylan_value ref_, dylan_value cache_) {
  dylan_value T3;
  dylan_value T4;
  CAPTURE_ENVIRONMENT

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:426
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:426
  T3 = Kfunction_required_typeVKiI(MREF, (dylan_value) 5);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:426
  cache_;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:428
  Kcomputation_type_setterVdfmc_flow_graphMM0I(&KPfalseVKi, ref_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:428
  T4 = &KPfalseVKi;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:426
  MV_SET_COUNT(0);
  return(T4);
}

dylan_value Kcached_type_variableVdfmc_typistMM1I (dylan_value ref_, dylan_value cache_) {
  dylan_value T3;
  dylan_value cacheF4;
  dylan_value T5;
  dylan_value T6_0;
  dylan_value T7_0;
  CAPTURE_ENVIRONMENT

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:431
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:431
  T3 = Kfunction_required_typeVKiI(MREF, (dylan_value) 5);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:431
  cacheF4 = cache_;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:431
  T5 = Kfunction_value_typeVKiI(MREF, (dylan_value) 1);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:434
  T6_0 = CALL4(&KelementVKd, cacheF4, ref_, &KJdefault_, &KPfalseVKi);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:431
  T7_0 = T6_0;
  {
    MV_CHECK_TYPE_PROLOGUE(T6_0);
    primitive_type_check(T7_0, T5);
    MV_CHECK_TYPE_EPILOGUE();
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:431
  MV_SET_COUNT(1);
  return(T7_0);
}

dylan_value Kcached_type_variable_setterVdfmc_typistMM1I (dylan_value tv_, dylan_value ref_, dylan_value cache_) {
  dylan_value T4;
  dylan_value cacheF5;
  dylan_value T6_0;
  CAPTURE_ENVIRONMENT

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:437
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:437
  T4 = Kfunction_required_typeVKiI(MREF, (dylan_value) 9);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:437
  cacheF5 = cache_;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:440
  CALL3(&Kelement_setterVKd, tv_, cacheF5, ref_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:440
  T6_0 = tv_;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:437
  MV_SET_COUNT(1);
  return(T6_0);
}

dylan_value Kretract_cached_type_variableVdfmc_typistMM1I (dylan_value ref_, dylan_value cache_) {
  dylan_value T3;
  dylan_value cacheF4;
  dylan_value T5;
  CAPTURE_ENVIRONMENT

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:443
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:443
  T3 = Kfunction_required_typeVKiI(MREF, (dylan_value) 5);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:443
  cacheF4 = cache_;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:445
  CALL2(&Kremove_keyXVKd, cacheF4, ref_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:443
  T5 = &KPfalseVKi;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:443
  MV_SET_COUNT(0);
  return(T5);
}

dylan_value Ktype_estimate_explainVdfmc_typistMM0I (dylan_value ref_, dylan_value cache_, dylan_value keys_, dylan_value stream_, dylan_value recurseQ_, dylan_value indent_) {
  dylan_value T7;
  dylan_value cacheF8;
  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 g_;
  dylan_value T19;
  CAPTURE_KEYWORD_ENVIRONMENT

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:458
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:458
  T16 = primitive_copy_vector(keys_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:458
  T14 = primitive_next_methods_parameter();
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:458
  T15 = MAKE_CLOSURE_INITD(&Kanonymous_of_type_estimate_explainF273, 4, T16, T14, cache_, ref_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:458
  T7 = Kfunction_required_typeVKiI(MREF, (dylan_value) 5);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:458
  cacheF8 = cache_;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:458
  T17 = primitive_idQ(stream_,&KPunboundVKi);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:458
  if (T17 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:461
    T9 = Tstandard_outputTYstandard_ioVio;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:458
    T10 = T9;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:458
    primitive_type_check(T10, &KLstreamGYcommon_extensionsVcommon_dylan);
    T10;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:458
    primitive_type_check(stream_, &KLstreamGYcommon_extensionsVcommon_dylan);
    stream_;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:458
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:458
  primitive_type_check(recurseQ_, &KLbooleanGVKd);
  recurseQ_;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:458
  primitive_type_check(indent_, &KLintegerGVKd);
  indent_;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:465
  g_ = KgeneratorVdfmc_flow_graphMM1I(ref_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:466
  if (g_ != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:466
    CONGRUENT_CALL_PROLOG(&KassignmentsVdfmc_flow_graph, 1);
    T11 = CONGRUENT_CALL1(ref_);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:466
    CONGRUENT_CALL_PROLOG(&KemptyQVKd, 1);
    T12 = CONGRUENT_CALL1(T11);
    T13 = T12;
  } else {
    T13 = &KPfalseVKi;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:466
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:466
  if (T13 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:467
    APPLY3(T15, g_, cacheF8, T16);
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:470
    get_teb()->function = T15;
    Kanonymous_of_type_estimate_explainF273I(&KPempty_vectorVKi);
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:466
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:458
  T19 = &KPfalseVKi;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:458
  MV_SET_COUNT(0);
  return(T19);
}

dylan_value Ktype_estimate_explainVdfmc_typistMM1I (dylan_value ref_, dylan_value cache_, dylan_value Urest_, dylan_value stream_, dylan_value recurseQ_, dylan_value indent_) {
  dylan_value T7;
  dylan_value cacheF8;
  dylan_value T9;
  dylan_value T10;
  dylan_value streamF11;
  dylan_value recurseQF12;
  dylan_value indentF13;
  dylan_value T14;
  dylan_value T15;
  dylan_value ref_type_;
  dylan_value T17;
  dylan_value T18;
  dylan_value T19;
  dylan_value T20;
  dylan_value T21;
  dylan_value T22;
  dylan_value T23;
  _KLsimple_object_vectorGVKd_3 T24 = {&KLsimple_object_vectorGVKdW, (dylan_value) 13};
  dylan_value T25;
  CAPTURE_KEYWORD_ENVIRONMENT

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:474
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:474
  T7 = Kfunction_required_typeVKiI(MREF, (dylan_value) 5);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:474
  cacheF8 = cache_;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:474
  T21 = primitive_idQ(stream_,&KPunboundVKi);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:474
  if (T21 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:476
    T9 = Tstandard_outputTYstandard_ioVio;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:474
    T10 = T9;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:474
    primitive_type_check(T10, &KLstreamGYcommon_extensionsVcommon_dylan);
    T22 = T10;
    streamF11 = T22;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:474
    primitive_type_check(stream_, &KLstreamGYcommon_extensionsVcommon_dylan);
    T23 = stream_;
    streamF11 = T23;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:474
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:474
  primitive_type_check(recurseQ_, &KLbooleanGVKd);
  recurseQF12 = recurseQ_;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:474
  primitive_type_check(indent_, &KLintegerGVKd);
  indentF13 = indent_;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:481
  T14 = &KindentifyF260;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:481
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:489
  primitive_type_check(type_estimate_in_cacheVdfmc_typist, &KLfunctionGVKd);
  T15 = type_estimate_in_cacheVdfmc_typist;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:489
  ref_type_ = CALL2(T15, ref_, cacheF8);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:490
  KindentifyF260I(indentF13, streamF11, &KPempty_vectorVKi, (dylan_value) 1);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:491
  T17 = Kobject_classVKdI(ref_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:491
  T24.vector_element_[0] = ref_;
  T24.vector_element_[1] = T17;
  T24.vector_element_[2] = ref_type_;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:491
  ENGINE_NODE_CALL_PROLOG(&KformatYformatVio, &K229, 3);
  ENGINE_NODE_CALL3(&K229, streamF11, &K230, &T24);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:492
  KindentifyF260I(indentF13, streamF11, &KPempty_vectorVKi, (dylan_value) 1);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:492
  ENGINE_NODE_CALL_PROLOG(&KformatYformatVio, &K231, 3);
  ENGINE_NODE_CALL3(&K231, streamF11, &K232, &KPempty_vectorVKi);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:494
  CONGRUENT_CALL_PROLOG(&Kcached_type_variableVdfmc_typist, 2);
  T18 = CONGRUENT_CALL2(ref_, cacheF8);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:494
  T19 = CALL1(&Ktype_variable_supportersVdfmc_typist, T18);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:496
  T20 = MAKE_CLOSURE(&Kanonymous_of_type_estimate_explainF248, 5);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:496
  INIT_CLOSURE(T20, 5, T14, indentF13, recurseQF12, streamF11, cacheF8);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:493
  CALL5(&Kprint_separated_collectionVdfmc_typist, T19, IKJstream_, streamF11, IKJprinter_, T20);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:513
  T25 = &KPfalseVKi;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:474
  MV_SET_COUNT(0);
  return(T25);
}

dylan_value KmakeVdfmc_typistMM0I (dylan_value type_, dylan_value init_args_) {
  dylan_value T3_0;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:12
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:14
  T3_0 = APPLY2(&KmakeVKd, type_, init_args_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:12
  MV_SET_COUNT(1);
  return(T3_0);
}

dylan_value KmakeVdfmc_typistMM1I (dylan_value cl_, dylan_value Urest_, dylan_value normalizeQ_) {
  dylan_value T4_0;
  dylan_value T5_0;
  dylan_value T6_0;
  dylan_value T7;
  dylan_value T8_0;
  dylan_value T9_0;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:67
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:73
  T8_0 = APPLY2(&KmakeVKd, cl_, Urest_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:73
  T7 = T8_0;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:74
  if (normalizeQ_ != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:75
    T4_0 = CALL1(&Ktype_estimate_normalizeVdfmc_typist, T7);
    T6_0 = T4_0;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:77
    T5_0 = T7;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:77
    T9_0 = T5_0;
    {
      MV_CHECK_TYPE_PROLOGUE(T5_0);
      primitive_type_check(T9_0, &KLtype_estimateGVdfmc_typist);
      MV_CHECK_TYPE_EPILOGUE();
    }
    T6_0 = T9_0;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:74
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:67
  MV_SET_COUNT(1);
  return(T6_0);
}

dylan_value Ktype_estimateEQVdfmc_typistI (dylan_value te1_, dylan_value te2_) {
  dylan_value T2_0;
  dylan_value T2_1;
  dylan_value subQ_1_;
  dylan_value knownQ_1_;
  dylan_value T5_0;
  dylan_value T5_1;
  dylan_value subQ_2_;
  dylan_value knownQ_2_;
  dylan_value T8;
  dylan_value T9;
  dylan_value Utmp_;
  dylan_value T11;
  dylan_value T12;
  dylan_value T13_0;
  dylan_value T13_1;
  dylan_value T14_0;
  dylan_value T14_1;
  dylan_value T15_0;
  dylan_value T15_1;
  dylan_value T16;
  dylan_value T17;
  dylan_value T18_0;
  dylan_value T18_1;
  dylan_value T19_0;
  dylan_value T19_1;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:150
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:153
  CONGRUENT_CALL_PROLOG(&Ktype_estimate_subtypeQVdfmc_typist, 2);
  T2_0 = CONGRUENT_CALL2(te1_, te2_);
  T2_1 = MV_GET_ELT(1);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:153
  subQ_1_ = T2_0;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:153
  knownQ_1_ = T2_1;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:154
  CONGRUENT_CALL_PROLOG(&Ktype_estimate_subtypeQVdfmc_typist, 2);
  T5_0 = CONGRUENT_CALL2(te2_, te1_);
  T5_1 = MV_GET_ELT(1);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:154
  subQ_2_ = T5_0;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:154
  knownQ_2_ = T5_1;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:155
  if (knownQ_1_ != &KPfalseVKi) {
    T8 = knownQ_2_;
  } else {
    T8 = &KPfalseVKi;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:155
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:155
  if (T8 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:156
    if (subQ_1_ != &KPfalseVKi) {
      T9 = subQ_2_;
    } else {
      T9 = &KPfalseVKi;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:156
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:156
    T15_0 = T9;
    T15_1 = &KPtrueVKi;
    T14_0 = T15_0;
    T14_1 = T15_1;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:157
    if (knownQ_1_ != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:157
      T16 = primitive_not(subQ_1_);
      Utmp_ = T16;
    } else {
      Utmp_ = &KPfalseVKi;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:157
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:157
    if (Utmp_ != &KPfalseVKi) {
      T12 = Utmp_;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:157
      if (knownQ_2_ != &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:157
        T17 = primitive_not(subQ_2_);
        T11 = T17;
      } else {
        T11 = &KPfalseVKi;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:157
      T12 = T11;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:157
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:155
    if (T12 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:158
      T18_0 = &KPfalseVKi;
      T18_1 = &KPtrueVKi;
      T13_0 = T18_0;
      T13_1 = T18_1;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:160
      T19_0 = &KPfalseVKi;
      T19_1 = &KPfalseVKi;
      T13_0 = T19_0;
      T13_1 = T19_1;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:155
    T14_0 = T13_0;
    T14_1 = T13_1;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:155
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:150
  MV_SET_ELT(1, T14_1);
  MV_SET_COUNT(2);
  return(T14_0);
}

dylan_value Ktype_estimateVdfmc_typistMM0I (dylan_value ref_) {
  dylan_value T2;
  dylan_value T3;
  dylan_value T4;
  dylan_value T5_0;
  dylan_value T6_0;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:391
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:392
  primitive_type_check(type_estimate_in_cacheVdfmc_typist, &KLfunctionGVKd);
  T2 = type_estimate_in_cacheVdfmc_typist;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:392
  CONGRUENT_CALL_PROLOG(&Kcurrent_library_descriptionVdfmc_common, 0);
  T3 = CONGRUENT_CALL0();
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:392
  CONGRUENT_CALL_PROLOG(&Klibrary_type_cacheVdfmc_namespace, 1);
  T4 = CONGRUENT_CALL1(T3);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:392
  T5_0 = CALL2(T2, ref_, T4);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:391
  T6_0 = T5_0;
  {
    MV_CHECK_TYPE_PROLOGUE(T5_0);
    primitive_type_check(T6_0, &KLtype_estimateGVdfmc_typist);
    MV_CHECK_TYPE_EPILOGUE();
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:391
  MV_SET_COUNT(1);
  return(T6_0);
}

static dylan_value K181I () {
  dylan_value T0;
  dylan_value T1_0;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:292
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:292
  T0 = primitive_read_thread_variable(Tcurrent_lhsTVdfmc_typist);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:292
  T1_0 = T0;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:292
  MV_SET_COUNT(1);
  return(T1_0);
}

static dylan_value KindentifyF260I (dylan_value indent_, dylan_value stream_, dylan_value Urest_, dylan_value levels_) {
  dylan_value T5;
  dylan_value level_T, level_;
  dylan_value T7;
  dylan_value T8;
  DWORD T9;
  DWORD T10;
  dylan_value T11;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:481
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:484
  ENGINE_NODE_CALL_PROLOG(&KformatYformatVio, &K261, 3);
  ENGINE_NODE_CALL3(&K261, stream_, &K262, &KPempty_vectorVKi);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:485
  CONGRUENT_CALL_PROLOG(&KAVKd, 2);
  T5 = CONGRUENT_CALL2(indent_, levels_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:485
  level_T = (dylan_value) 1;
L0: ;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:485
    level_ = level_T;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:485
    CONGRUENT_CALL_PROLOG(&KLVKd, 2);
    T7 = CONGRUENT_CALL2(level_, T5);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:485
    if (T7 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:486
      CONGRUENT_CALL_PROLOG(&KwriteYstreams_protocolVcommon_dylan, 3);
      CONGRUENT_CALL3(stream_, &K263, &KPempty_vectorVKi);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:485
      T9 = primitive_cast_integer_as_raw(level_);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:485
      T10 = primitive_machine_word_add_signal_overflow(T9,4);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:485
      T11 = primitive_cast_raw_as_integer(T10);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:485
      level_T = T11;
      goto L0;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:485
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:485
    T8 = &KPfalseVKi;
    MV_SET_ELT(0, &KPfalseVKi);
    MV_SET_COUNT(1);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:485
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:481
  return(T8);
}

static dylan_value Kanonymous_of_type_estimate_explainF248I (dylan_value just_, dylan_value stream_) {
  dylan_value T2;
  dylan_value T3;
  dylan_value T4;
  dylan_value T5;
  dylan_value T6;
  dylan_value T7;
  dylan_value T8;
  dylan_value T9;
  DWORD T10;
  DWORD T11;
  dylan_value T12;
  dylan_value T13;
  dylan_value T14T, T14;
  dylan_value T15;
  dylan_value T16;
  dylan_value T17;
  dylan_value T18_0;
  dylan_value T19_0;
  dylan_value T20;
  CAPTURE_ENVIRONMENT

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:496
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:497
  KindentifyF260I(CREF(1), CREF(3), &KPempty_vectorVKi, (dylan_value) 5);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:498
  T6 = SLOT_VALUE_INITD(just_, 0);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:498
  CALL3(&KformatYformatVio, stream_, &K249, T6);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:499
  T7 = SLOT_VALUE_INITD(just_, 2);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:499
  T8 = primitive_idQ(T7,&KPempty_listVKi);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:499
  if (T8 == &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:500
    CALL2(&KformatYformatVio, stream_, &K250);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:501
    CALL5(&Kprint_separated_collectionVdfmc_typist, T7, IKJstream_, stream_, IKJconjunction_, &K252);
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:499
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:504
  if (CREF(2) != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:504
    T9 = primitive_not(T8);
    T2 = T9;
  } else {
    T2 = &KPfalseVKi;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:504
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:504
  if (T2 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:509
    T10 = primitive_cast_integer_as_raw(CREF(1));
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:509
    T11 = primitive_machine_word_add_signal_overflow(T10,4);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:509
    T12 = primitive_cast_raw_as_integer(T11);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:507
    T3 = CALL8(&KrcurryVKd, type_estimate_explainVdfmc_typist, CREF(4), IKJstream_, stream_, IKJrecurseQ_, &KPtrueVKi, IKJindent_, T12);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:507
    T14T = T7;
  L0: ;
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:507
      T14 = T14T;
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:507
      T15 = primitive_idQ(T14,&KPempty_listVKi);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:507
      if (T15 == &KPfalseVKi) {
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:507
        T16 = SLOT_VALUE_INITD(T14, 0);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:507
        CALL1(T3, T16);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:507
        T17 = SLOT_VALUE_INITD(T14, 1);
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:507
        T18_0 = T17;
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:507
        T19_0 = T18_0;
        {
          MV_CHECK_TYPE_PROLOGUE(T18_0);
          primitive_type_check(T19_0, &KLlistGVKd);
          MV_CHECK_TYPE_EPILOGUE();
        }
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:507
        T20 = T19_0;
        // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:507
        T14T = T20;
        goto L0;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:507
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:507
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:507
    T13 = &KPfalseVKi;
    MV_SET_ELT(0, &KPfalseVKi);
    MV_SET_COUNT(1);
    T5 = T13;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:504
    T4 = &KPfalseVKi;
    MV_SET_ELT(0, &KPfalseVKi);
    MV_SET_COUNT(1);
    T5 = T4;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:504
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:496
  return(T5);
}

static dylan_value Kanonymous_of_type_estimate_explainF273I (dylan_value Unext_method_argsU_) {
  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;
  dylan_value T11;
  dylan_value T12;
  dylan_value T13;
  dylan_value T14;
  CAPTURE_ENVIRONMENT

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:458
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:458
  T6 = primitive_idQ(CREF(1),&KPempty_listVKi);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:458
  if (T6 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:458
    T14 = KerrorVKdMM1I(&K274, &KPempty_vectorVKi);
    T5 = T14;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:458
    T7 = SLOT_VALUE_INITD(Unext_method_argsU_, 0);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:458
    T8 = primitive_cast_integer_as_raw(T7);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:458
    T9 = primitive_machine_word_equalQ(T8,1);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:458
    if (T9 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:458
      T10 = SLOT_VALUE_INITD(CREF(1), 0);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:458
      T11 = SLOT_VALUE_INITD(CREF(1), 1);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:458
      MEP_CALL_PROLOG(T10, T11, 3);
      T2 = MEP_CALL3(T10, CREF(3), CREF(2), CREF(0));
      T4 = T2;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:458
      T12 = SLOT_VALUE_INITD(CREF(1), 0);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:458
      T13 = SLOT_VALUE_INITD(CREF(1), 1);
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:458
      T3 = MEP_APPLY1(T12, T13, Unext_method_argsU_);
      T4 = T3;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:458
    T5 = T4;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:458
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:458
  return(T5);
}

static dylan_value K295I () {
  dylan_value T0_0;
  dylan_value T1;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:229
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:229
  MIEP_CALL_PROLOG(&K296);
  T1 = KmakeVdfmc_typistMM10I(&KLtype_estimate_bottomGVdfmc_typist, &KPempty_vectorVKi);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:229
  T0_0 = T1;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:229
  MV_SET_COUNT(1);
  return(T0_0);
}

dylan_value Kcanonical_refVdfmc_typistMM0I (dylan_value ref_) {
  dylan_value T2_0;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:362
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:363
  T2_0 = ref_;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:362
  MV_SET_COUNT(1);
  return(T2_0);
}

dylan_value Kcanonical_refVdfmc_typistMM1I (dylan_value ref_) {
  dylan_value T2;
  dylan_value T3;
  dylan_value T4_0;
  dylan_value T5_0;
  dylan_value T6_0;
  dylan_value T7_0;
  dylan_value T8_0;
  dylan_value Utmp_;
  dylan_value T10_0;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:366
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:369
  CONGRUENT_CALL_PROLOG(&KassignmentsVdfmc_flow_graph, 1);
  T2 = CONGRUENT_CALL1(ref_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:369
  CONGRUENT_CALL_PROLOG(&KemptyQVKd, 1);
  T3 = CONGRUENT_CALL1(T2);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:369
  if (T3 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:370
    Utmp_ = KgeneratorVdfmc_flow_graphMM1I(ref_);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:370
    if (Utmp_ != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:370
      T4_0 = Utmp_;
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:370
      T10_0 = T4_0;
      {
        MV_CHECK_TYPE_PROLOGUE(T4_0);
        primitive_type_check(T10_0, &K316);
        MV_CHECK_TYPE_EPILOGUE();
      }
      T6_0 = T10_0;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:370
      T5_0 = ref_;
      T6_0 = T5_0;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:370
    T8_0 = T6_0;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:372
    T7_0 = ref_;
    T8_0 = T7_0;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:369
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:366
  MV_SET_COUNT(1);
  return(T8_0);
}

dylan_value Kcanonical_refVdfmc_typistMM2I (dylan_value ref_) {
  dylan_value T2_0;
  dylan_value T3;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:377
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:378
  T3 = SLOT_VALUE_INITD(ref_, 1);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:378
  CONGRUENT_CALL_PROLOG(&Kcanonical_refVdfmc_typist, 1);
  T2_0 = CONGRUENT_CALL1(T3);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:377
  MV_SET_COUNT(1);
  return(T2_0);
}

dylan_value Kcanonical_refVdfmc_typistMM3I (dylan_value ref_) {
  dylan_value T2;
  dylan_value T3_0;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:381
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:383
  T2 = SLOT_VALUE_INITD(ref_, 0);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:383
  T3_0 = Kcanonical_refVdfmc_typistMM0I(T2);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:381
  MV_SET_COUNT(1);
  return(T3_0);
}

dylan_value KLjustificationGZ32ZconstructorVdfmc_typistMM0I (dylan_value class_, dylan_value init_args_, dylan_value Uunique_justification_rule_, dylan_value Uunique_justification_lhs_, dylan_value Uunique_justification_rhs_) {
  dylan_value T6;
  dylan_value T7;
  dylan_value Uunique_justification_ruleF8;
  dylan_value T9;
  dylan_value T10;
  dylan_value Uunique_justification_lhsF11;
  dylan_value T12;
  dylan_value T13;
  dylan_value Uunique_justification_rhsF14;
  dylan_value T15;
  dylan_value Uunique_justification_ruleF16;
  dylan_value Uunique_justification_lhsF17;
  dylan_value Uunique_justification_rhsF18;
  dylan_value T19_0;
  dylan_value T20;
  dylan_value T21;
  dylan_value T22;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:287
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:287
  T20 = primitive_idQ(Uunique_justification_rule_,&KPunboundVKi);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:287
  if (T20 != &KPfalseVKi) {
    T6 = K348I();
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:287
    T7 = T6;
    Uunique_justification_ruleF8 = T7;
  } else {
    Uunique_justification_ruleF8 = Uunique_justification_rule_;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:287
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:287
  T21 = primitive_idQ(Uunique_justification_lhs_,&KPunboundVKi);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:287
  if (T21 != &KPfalseVKi) {
    T9 = K347I();
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:287
    T10 = T9;
    Uunique_justification_lhsF11 = T10;
  } else {
    Uunique_justification_lhsF11 = Uunique_justification_lhs_;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:287
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:287
  T22 = primitive_idQ(Uunique_justification_rhs_,&KPunboundVKi);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:287
  if (T22 != &KPfalseVKi) {
    T12 = K346I();
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:287
    T13 = T12;
    Uunique_justification_rhsF14 = T13;
  } else {
    Uunique_justification_rhsF14 = Uunique_justification_rhs_;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:287
  T15 = primitive_object_allocate_filled(4,&KLjustificationGVdfmc_typistW,3,&KPunboundVKi,0,0,&KPunboundVKi);
  primitive_type_check(Uunique_justification_ruleF8, &KLsymbolGVKd);
  Uunique_justification_ruleF16 = Uunique_justification_ruleF8;
  SLOT_VALUE_SETTER(Uunique_justification_ruleF16, T15, 0);
  primitive_type_check(Uunique_justification_lhsF11, &KLdfm_refGVdfmc_typist);
  Uunique_justification_lhsF17 = Uunique_justification_lhsF11;
  SLOT_VALUE_SETTER(Uunique_justification_lhsF17, T15, 1);
  primitive_type_check(Uunique_justification_rhsF14, &KLlistGVKd);
  Uunique_justification_rhsF18 = Uunique_justification_rhsF14;
  SLOT_VALUE_SETTER(Uunique_justification_rhsF18, T15, 2);
  APPLY2(&KinitializeVKd, T15, init_args_);
  T19_0 = T15;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:287
  MV_SET_COUNT(1);
  return(T19_0);
}

static dylan_value K348I () {
  dylan_value T0;
  dylan_value init_value_;
  dylan_value T2_0;

  T0 = primitive_read_thread_variable(Tcurrent_ruleTVdfmc_typist);
  primitive_type_check(T0, &KLsymbolGVKd);
  init_value_ = T0;
  T2_0 = init_value_;
  MV_SET_COUNT(1);
  return(T2_0);
}

static dylan_value K347I () {
  dylan_value T0;
  dylan_value T1_0;

  T0 = primitive_read_thread_variable(Tcurrent_lhsTVdfmc_typist);
  T1_0 = T0;
  MV_SET_COUNT(1);
  return(T1_0);
}

static dylan_value K346I () {
  dylan_value T0;
  dylan_value init_value_;
  dylan_value T2_0;

  T0 = primitive_read_thread_variable(Tcurrent_rhsTVdfmc_typist);
  primitive_type_check(T0, &KLlistGVKd);
  init_value_ = T0;
  T2_0 = init_value_;
  MV_SET_COUNT(1);
  return(T2_0);
}

static dylan_value K365I () {
  dylan_value T0;
  dylan_value init_value_;
  dylan_value T2_0;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:294
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:294
  T0 = primitive_read_thread_variable(Tcurrent_rhsTVdfmc_typist);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:294
  primitive_type_check(T0, &KLlistGVKd);
  init_value_ = T0;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:294
  T2_0 = init_value_;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:294
  MV_SET_COUNT(1);
  return(T2_0);
}

static dylan_value K372I () {
  dylan_value T0;
  dylan_value init_value_;
  dylan_value T2_0;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:290
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:290
  T0 = primitive_read_thread_variable(Tcurrent_ruleTVdfmc_typist);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:290
  primitive_type_check(T0, &KLsymbolGVKd);
  init_value_ = T0;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:290
  T2_0 = init_value_;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:290
  MV_SET_COUNT(1);
  return(T2_0);
}

dylan_value KLtype_variableGZ32ZconstructorVdfmc_typistMM0I (dylan_value class_, dylan_value init_args_, dylan_value Uunique_type_variable_contents_, dylan_value Uunique_type_variable_supporters_, dylan_value Uunique_type_variable_supportees_) {
  dylan_value T6;
  dylan_value T7;
  dylan_value Uunique_type_variable_contentsF8;
  dylan_value T9;
  dylan_value Uunique_type_variable_contentsF10;
  dylan_value Uunique_type_variable_supportersF11;
  dylan_value Uunique_type_variable_supporteesF12;
  dylan_value T13_0;
  dylan_value T14;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:225
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:225
  T14 = primitive_idQ(Uunique_type_variable_contents_,&KPunboundVKi);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:225
  if (T14 != &KPfalseVKi) {
    T6 = K389I();
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:225
    T7 = T6;
    Uunique_type_variable_contentsF8 = T7;
  } else {
    Uunique_type_variable_contentsF8 = Uunique_type_variable_contents_;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:225
  T9 = primitive_object_allocate_filled(4,&KLtype_variableGVdfmc_typistW,3,&KPunboundVKi,0,0,&KPunboundVKi);
  primitive_type_check(Uunique_type_variable_contentsF8, &KLtype_estimateGVdfmc_typist);
  Uunique_type_variable_contentsF10 = Uunique_type_variable_contentsF8;
  SLOT_VALUE_SETTER(Uunique_type_variable_contentsF10, T9, 0);
  primitive_type_check(Uunique_type_variable_supporters_, &KLlistGVKd);
  Uunique_type_variable_supportersF11 = Uunique_type_variable_supporters_;
  SLOT_VALUE_SETTER(Uunique_type_variable_supportersF11, T9, 1);
  primitive_type_check(Uunique_type_variable_supportees_, &KLlistGVKd);
  Uunique_type_variable_supporteesF12 = Uunique_type_variable_supportees_;
  SLOT_VALUE_SETTER(Uunique_type_variable_supporteesF12, T9, 2);
  T13_0 = T9;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:225
  MV_SET_COUNT(1);
  return(T13_0);
}

static dylan_value K389I () {
  dylan_value T0_0;
  dylan_value T1;

  MIEP_CALL_PROLOG(&K296);
  T1 = KmakeVdfmc_typistMM10I(&KLtype_estimate_bottomGVdfmc_typist, &KPempty_vectorVKi);
  T0_0 = T1;
  MV_SET_COUNT(1);
  return(T0_0);
}

dylan_value Ktype_estimate_pseudosubtypeQVdfmc_typistI (dylan_value te1_, dylan_value te2_) {
  dylan_value T2;
  dylan_value T3_0;
  dylan_value T3_1;
  dylan_value subQ_;
  dylan_value know_subQ_;
  dylan_value disjQ_;
  dylan_value know_disQ_;
  dylan_value T8;
  dylan_value T9;
  dylan_value Utmp_;
  dylan_value T11;
  dylan_value T12;
  dylan_value T13_0;
  dylan_value T13_1;
  dylan_value T14_0;
  dylan_value T14_1;
  dylan_value T15_0;
  dylan_value T15_1;
  dylan_value T16;
  dylan_value T17_0;
  dylan_value T17_1;
  dylan_value T18;
  dylan_value T19_0;
  dylan_value T19_1;
  dylan_value T20_0;
  dylan_value T20_1;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:164
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:168
  CONGRUENT_CALL_PROLOG(&Ktype_estimate_baseVdfmc_typist, 1);
  T2 = CONGRUENT_CALL1(te2_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:168
  CONGRUENT_CALL_PROLOG(&Ktype_estimate_subtypeQVdfmc_typist, 2);
  T3_0 = CONGRUENT_CALL2(te1_, T2);
  T3_1 = MV_GET_ELT(1);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:168
  subQ_ = T3_0;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:168
  know_subQ_ = T3_1;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:169
  T15_0 = Ktype_estimate_disjointQVdfmc_typistMM0I(te1_, te2_);
  T15_1 = MV_GET_ELT(1);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:169
  disjQ_ = T15_0;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:169
  know_disQ_ = T15_1;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:170
  if (know_subQ_ != &KPfalseVKi) {
    T8 = know_disQ_;
  } else {
    T8 = &KPfalseVKi;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:170
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:170
  if (T8 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:171
    if (subQ_ != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:171
      T16 = primitive_not(disjQ_);
      T9 = T16;
    } else {
      T9 = &KPfalseVKi;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:171
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:171
    T17_0 = T9;
    T17_1 = &KPtrueVKi;
    T14_0 = T17_0;
    T14_1 = T17_1;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:172
    if (know_subQ_ != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:172
      T18 = primitive_not(subQ_);
      Utmp_ = T18;
    } else {
      Utmp_ = &KPfalseVKi;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:172
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:172
    if (Utmp_ != &KPfalseVKi) {
      T12 = Utmp_;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:172
      if (know_disQ_ != &KPfalseVKi) {
        T11 = disjQ_;
      } else {
        T11 = &KPfalseVKi;
      }
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:172
      T12 = T11;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:172
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:170
    if (T12 != &KPfalseVKi) {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:173
      T19_0 = &KPfalseVKi;
      T19_1 = &KPtrueVKi;
      T13_0 = T19_0;
      T13_1 = T19_1;
    } else {
      // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:175
      T20_0 = &KPfalseVKi;
      T20_1 = &KPfalseVKi;
      T13_0 = T20_0;
      T13_1 = T20_1;
    }
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:170
    T14_0 = T13_0;
    T14_1 = T13_1;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:170
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:164
  MV_SET_ELT(1, T14_1);
  MV_SET_COUNT(2);
  return(T14_0);
}

dylan_value Ktype_estimate_dispatch_cache_lookupVdfmc_typistMM0I (dylan_value gf_, dylan_value teT_) {
  dylan_value T3;
  dylan_value dispatch_cache_;
  dylan_value gf_cache_;
  dylan_value methods_;
  dylan_value T7_0;
  dylan_value T8_0;
  dylan_value T9_0;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:523
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:526
  CONGRUENT_CALL_PROLOG(&Kcurrent_library_descriptionVdfmc_common, 0);
  T3 = CONGRUENT_CALL0();
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:526
  CONGRUENT_CALL_PROLOG(&Klibrary_type_estimate_dispatch_cacheVdfmc_namespace, 1);
  dispatch_cache_ = CONGRUENT_CALL1(T3);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:528
  gf_cache_ = CALL4(&KelementVKd, dispatch_cache_, gf_, &KJdefault_, &KPfalseVKi);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:529
  if (gf_cache_ != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:530
    methods_ = CALL4(&KelementVKd, gf_cache_, teT_, &KJdefault_, &KPfalseVKi);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:535
    T7_0 = methods_;
    T9_0 = T7_0;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:529
    T8_0 = &KPfalseVKi;
    T9_0 = T8_0;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:529
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:523
  MV_SET_COUNT(1);
  return(T9_0);
}

dylan_value Kadd_type_estimate_dispatch_cache_entryVdfmc_typistMM0I (dylan_value gf_, dylan_value teT_, dylan_value methods_) {
  dylan_value T4;
  dylan_value dispatch_cache_;
  dylan_value Utmp_;
  dylan_value gf_cache_;
  dylan_value T8;
  dylan_value T9;
  dylan_value T10_0;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:539
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:544
  CONGRUENT_CALL_PROLOG(&Kcurrent_library_descriptionVdfmc_common, 0);
  T4 = CONGRUENT_CALL0();
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:544
  CONGRUENT_CALL_PROLOG(&Klibrary_type_estimate_dispatch_cacheVdfmc_namespace, 1);
  dispatch_cache_ = CONGRUENT_CALL1(T4);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:546
  Utmp_ = CALL4(&KelementVKd, dispatch_cache_, gf_, &KJdefault_, &KPfalseVKi);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:546
  if (Utmp_ != &KPfalseVKi) {
    gf_cache_ = Utmp_;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:548
    CONGRUENT_CALL_PROLOG(&KmakeVKd, 2);
    T10_0 = CONGRUENT_CALL2(&KLtype_estimate_sequence_match_tableGVdfmc_typist, &KPempty_vectorVKi);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:548
    T9 = T10_0;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:547
    CALL3(&Kelement_setterVKd, T9, dispatch_cache_, gf_);
    gf_cache_ = T9;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:546
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:549
  CALL3(&Kelement_setterVKd, methods_, gf_cache_, teT_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:549
  T8 = &KPfalseVKi;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:539
  MV_SET_COUNT(0);
  return(T8);
}


/* SYSTEM INIT CODE */

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

    T0 = KPresolve_symbolVKiI(&KJlhs_);
    if (T0 != &KJlhs_) {
      primitive_repeated_slot_value_setter(T0, &K355, 1, 1);
      primitive_repeated_slot_value_setter(T0, &K350, 1, 2);
      primitive_slot_value_setter(T0, &Kjustification_lhsVdfmc_typistHLjustificationG, 3);
    }
  }
  {
    dylan_value T0;

    T0 = KPresolve_symbolVKiI(&KJsupportees_);
    if (T0 != &KJsupportees_) {
      primitive_repeated_slot_value_setter(T0, &K392, 1, 2);
      primitive_repeated_slot_value_setter(T0, &K391, 1, 4);
      primitive_slot_value_setter(T0, &Ktype_variable_supporteesVdfmc_typistHLtype_variableG, 3);
    }
  }
  {
    dylan_value T0;

    T0 = KPresolve_symbolVKiI(&KJnormalizeQ_);
    if (T0 != &KJnormalizeQ_) {
      primitive_slot_value_setter(T0, &Ktype_estimate_to_be_normalizedQVdfmc_typistHLtype_estimateG, 3);
      primitive_repeated_slot_value_setter(T0, &K211, 1, 0);
      primitive_repeated_slot_value_setter(T0, &K207, 1, 0);
    }
  }
  {
    dylan_value T0;

    T0 = KPresolve_symbolVKiI(&KJstream_);
    if (T0 != &KJstream_) {
      primitive_repeated_slot_value_setter(T0, &K417, 1, 0);
      IKJstream_ = T0;
      primitive_repeated_slot_value_setter(T0, &K67, 1, 0);
      primitive_repeated_slot_value_setter(T0, &K270, 1, 0);
    }
  }
  {
    dylan_value T0;

    T0 = KPresolve_symbolVKiI(&KJprinter_);
    if (T0 != &KJprinter_) {
      IKJprinter_ = T0;
    }
  }
  {
    dylan_value T0;

    T0 = KPresolve_symbolVKiI(&KJsupporters_);
    if (T0 != &KJsupporters_) {
      primitive_repeated_slot_value_setter(T0, &K392, 1, 1);
      primitive_repeated_slot_value_setter(T0, &K391, 1, 2);
      primitive_slot_value_setter(T0, &Ktype_variable_supportersVdfmc_typistHLtype_variableG, 3);
    }
  }
  {
    dylan_value T0;

    T0 = KPresolve_symbolVKiI(&KJconjunction_);
    if (T0 != &KJconjunction_) {
      IKJconjunction_ = T0;
    }
  }
  {
    dylan_value T0;

    T0 = KPresolve_symbolVKiI(&KJrecurseQ_);
    if (T0 != &KJrecurseQ_) {
      primitive_repeated_slot_value_setter(T0, &K67, 1, 1);
      primitive_repeated_slot_value_setter(T0, &K270, 1, 2);
      IKJrecurseQ_ = T0;
    }
  }
  {
    dylan_value T0;

    T0 = KPresolve_symbolVKiI(&KJindent_);
    if (T0 != &KJindent_) {
      primitive_repeated_slot_value_setter(T0, &K67, 1, 2);
      primitive_repeated_slot_value_setter(T0, &K270, 1, 4);
      IKJindent_ = T0;
    }
  }
  {
    dylan_value T0;

    T0 = KPresolve_symbolVKiI(&KJlevels_);
    if (T0 != &KJlevels_) {
      primitive_repeated_slot_value_setter(T0, &K269, 1, 0);
      primitive_repeated_slot_value_setter(T0, &K265, 1, 0);
    }
  }
  {
    dylan_value T0;

    T0 = KPresolve_symbolVKiI(&KJcontents_);
    if (T0 != &KJcontents_) {
      primitive_repeated_slot_value_setter(T0, &K392, 1, 0);
      primitive_repeated_slot_value_setter(T0, &K391, 1, 0);
      primitive_slot_value_setter(T0, &Ktype_variable_contentsVdfmc_typistHLtype_variableG, 3);
    }
  }
  {
    dylan_value T0;

    T0 = KPresolve_symbolVKiI(&KJrule_);
    if (T0 != &KJrule_) {
      primitive_slot_value_setter(T0, &Kjustification_ruleVdfmc_typistHLjustificationG, 3);
      primitive_repeated_slot_value_setter(T0, &K355, 1, 0);
      primitive_repeated_slot_value_setter(T0, &K350, 1, 0);
    }
  }
  {
    dylan_value T0;

    T0 = KPresolve_symbolVKiI(&KJrhs_);
    if (T0 != &KJrhs_) {
      primitive_slot_value_setter(T0, &Kjustification_rhsVdfmc_typistHLjustificationG, 3);
      primitive_repeated_slot_value_setter(T0, &K355, 1, 2);
      primitive_repeated_slot_value_setter(T0, &K350, 1, 4);
    }
  }
{
  dylan_value T0;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:58
  T0 = KPadd_classVKeI(&KLtype_estimateGVdfmc_typist);
  goto I0;
}
I0:

{
  dylan_value T0;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:225
  T0 = KPadd_classVKeI(&KLtype_variableGVdfmc_typist);
  goto I9;
}
I9:

{
  dylan_value T0;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:287
  T0 = KPadd_classVKeI(&KLjustificationGVdfmc_typist);
  goto I25;
}
I25:

  return;
}

/* USER INIT CODE */

void _Init_dfmc_typist__X_typist_protocol_for_user () {
{
  dylan_value T0;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:65
  T0 = KPadd_nonsiblinged_domainVKnI(&KinitializeVKd, &KinitializeVKdRD_dfmc_typistRD_4);
  goto I4;
}
I4:

{
  dylan_value T0;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:81
  Tprinting_a_type_estimateQTVdfmc_typist = primitive_allocate_thread_variable(&KPfalseVKi);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:81
  T0 = &KPfalseVKi;
  goto I5;
}
I5:

{
  dylan_value T0;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:85
  T0 = KPadd_a_methodVKnI(&Kprint_objectYprintVio, &Kprint_objectYprintVioMdfmc_typistM0, &Kdfmc_typist_libraryYdylan_userVdfmc_typist, &KPfalseVKi, &KPfalseVKi, &KPfalseVKi);
  goto I8;
}
I8:

{
  dylan_value T0;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:240
  T0 = KPadd_nonsiblinged_domainVKnI(&KinitializeVKd, &KinitializeVKdRD_dfmc_typistRD_3);
  goto I13;
}
I13:

{
  dylan_value T0;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:242
  T0 = KPadd_a_methodVKnI(&Kprint_objectYprintVio, &Kprint_objectYprintVioMdfmc_typistM1, &Kdfmc_typist_libraryYdylan_userVdfmc_typist, &KPfalseVKi, &KPfalseVKi, &KPfalseVKi);
  goto I16;
}
I16:

{
  dylan_value T0;
  dylan_value T1;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:248
  T1 = KlimitedVKdMM4I(&KLtableGVKd, &KPempty_vectorVKi, &K18, &KPfalseVKi);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:247
  Ltype_cacheGVdfmc_typist = T1;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:247
  T0 = &KPfalseVKi;
  goto I17;
}
I17:

{
  dylan_value T0;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:266
  T0 = KPadd_a_methodVKnI(&Kinitialize_typist_library_cachesVdfmc_namespace, &Kinitialize_typist_library_cachesVdfmc_namespaceMdfmc_typistM0, &Kdfmc_typist_libraryYdylan_userVdfmc_typist, &KPfalseVKi, &KPfalseVKi, &KPfalseVKi);
  goto I21;
}
I21:

{
  dylan_value T0;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:283
  Tcurrent_ruleTVdfmc_typist = primitive_allocate_thread_variable(&KPfalseVKi);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:283
  T0 = &KPfalseVKi;
  goto I22;
}
I22:

{
  dylan_value T0;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:284
  Tcurrent_lhsTVdfmc_typist = primitive_allocate_thread_variable(&KPfalseVKi);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:284
  T0 = &KPfalseVKi;
  goto I23;
}
I23:

{
  dylan_value T0;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:285
  Tcurrent_rhsTVdfmc_typist = primitive_allocate_thread_variable(&KPempty_listVKi);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:285
  T0 = &KPfalseVKi;
  goto I24;
}
I24:

{
  dylan_value T0;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:298
  T0 = KPadd_a_methodVKnI(&Kprint_objectYprintVio, &Kprint_objectYprintVioMdfmc_typistM2, &Kdfmc_typist_libraryYdylan_userVdfmc_typist, &KPfalseVKi, &KPfalseVKi, &KPfalseVKi);
  goto I30;
}
I30:

{
  dylan_value T0;
  dylan_value T1;
  dylan_value T2;

  T0 = CALL2(&Kimmutable_type_vectorVKe, &KLdfm_refGVdfmc_typist, Ltype_cacheGVdfmc_typist);
  T1 = CALL5(&Kmake_LsignatureGVKi, &KPtrueVKi, T0, &K33, &KPfalseVKi, (dylan_value) 33555465);
  T2 = CALL2(&KPdefine_genericVKn, type_estimate_in_cacheVdfmc_typist, T1);
  goto I31;
}
I31:

{
  dylan_value T0;
  dylan_value T1;
  dylan_value T2;

  T0 = CALL2(&Kimmutable_type_vectorVKe, &KLdfm_refGVdfmc_typist, Ltype_cacheGVdfmc_typist);
  T1 = CALL5(&Kmake_LsignatureGVKi, &KPtrueVKi, T0, &K33, &KPfalseVKi, (dylan_value) 33555465);
  T2 = CALL2(&KPdefine_genericVKn, type_estimate_inferVdfmc_typist, T1);
  goto I34;
}
I34:

{
  dylan_value T0;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:320
  Ttype_vars_propagatingTVdfmc_typist = primitive_allocate_thread_variable(&KPempty_listVKi);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:320
  T0 = &KPfalseVKi;
  goto I35;
}
I35:

{
  dylan_value T0;
  dylan_value T1;
  dylan_value T2;
  dylan_value T3;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:325
  T0 = CALL3(&Kimmutable_type_vectorVKe, &KLdfm_refGVdfmc_typist, Ltype_cacheGVdfmc_typist, &KLtype_estimateGVdfmc_typist);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:325
  T1 = CALL5(&Kmake_LsignatureGVKi, &KPfalseVKi, T0, &KPempty_vectorVKi, &KPfalseVKi, (dylan_value) 33554445);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:325
  T2 = SET_METHOD_SIG(&Ktype_estimate_update_cacheVdfmc_typistMM0, T1);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:325
  T3 = KPadd_dynamic_methodVKnI(&Ktype_estimate_update_cacheVdfmc_typist, T2);
  goto I36;
}
I36:

{
  dylan_value T0;
  dylan_value T1;
  dylan_value T2;
  dylan_value T3;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:395
  T0 = CALL2(&Kimmutable_type_vectorVKe, &KLdfm_refGVdfmc_typist, Ltype_cacheGVdfmc_typist);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:395
  T1 = CALL5(&Kmake_LsignatureGVKi, &KPfalseVKi, T0, &K33, &KPfalseVKi, (dylan_value) 33555465);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:395
  T2 = SET_METHOD_SIG(&Ktype_estimate_in_cacheVdfmc_typistMM0, T1);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:395
  T3 = CALL3(&KPdefine_methodVKn, type_estimate_in_cacheVdfmc_typist, T2, &Kdfmc_typist_libraryYdylan_userVdfmc_typist);
  goto I40;
}
I40:

{
  dylan_value T0;
  dylan_value T1;
  dylan_value T2;
  dylan_value T3;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:414
  T0 = CALL2(&Kimmutable_type_vectorVKe, &KLcomputationGVdfmc_flow_graph, Ltype_cacheGVdfmc_typist);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:414
  T1 = CALL5(&Kmake_LsignatureGVKi, &KPfalseVKi, T0, &K46, &KPfalseVKi, (dylan_value) 33555465);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:414
  T2 = SET_METHOD_SIG(&Kcached_type_variableVdfmc_typistMM0, T1);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:414
  T3 = KPadd_dynamic_methodVKnI(&Kcached_type_variableVdfmc_typist, T2);
  goto I43;
}
I43:

{
  dylan_value T0;
  dylan_value T1;
  dylan_value T2;
  dylan_value T3;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:420
  T0 = CALL3(&Kimmutable_type_vectorVKe, &KLtype_variableGVdfmc_typist, &KLcomputationGVdfmc_flow_graph, Ltype_cacheGVdfmc_typist);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:420
  T1 = CALL5(&Kmake_LsignatureGVKi, &KPfalseVKi, T0, &K51, &KPfalseVKi, (dylan_value) 33555469);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:420
  T2 = SET_METHOD_SIG(&Kcached_type_variable_setterVdfmc_typistMM0, T1);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:420
  T3 = KPadd_dynamic_methodVKnI(&Kcached_type_variable_setterVdfmc_typist, T2);
  goto I48;
}
I48:

{
  dylan_value T0;
  dylan_value T1;
  dylan_value T2;
  dylan_value T3;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:426
  T0 = CALL2(&Kimmutable_type_vectorVKe, &KLcomputationGVdfmc_flow_graph, Ltype_cacheGVdfmc_typist);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:426
  T1 = CALL5(&Kmake_LsignatureGVKi, &KPfalseVKi, T0, &KPempty_vectorVKi, &KPfalseVKi, (dylan_value) 33554441);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:426
  T2 = SET_METHOD_SIG(&Kretract_cached_type_variableVdfmc_typistMM0, T1);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:426
  T3 = KPadd_dynamic_methodVKnI(&Kretract_cached_type_variableVdfmc_typist, T2);
  goto I53;
}
I53:

{
  dylan_value T0;
  dylan_value T1;
  dylan_value T2;
  dylan_value T3;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:431
  T0 = CALL2(&Kimmutable_type_vectorVKe, &KLdfm_refGVdfmc_typist, Ltype_cacheGVdfmc_typist);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:431
  T1 = CALL5(&Kmake_LsignatureGVKi, &KPfalseVKi, T0, &K46, &KPfalseVKi, (dylan_value) 33555465);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:431
  T2 = SET_METHOD_SIG(&Kcached_type_variableVdfmc_typistMM1, T1);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:431
  T3 = KPadd_dynamic_methodVKnI(&Kcached_type_variableVdfmc_typist, T2);
  goto I57;
}
I57:

{
  dylan_value T0;
  dylan_value T1;
  dylan_value T2;
  dylan_value T3;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:437
  T0 = CALL3(&Kimmutable_type_vectorVKe, &KLtype_variableGVdfmc_typist, &KLdfm_refGVdfmc_typist, Ltype_cacheGVdfmc_typist);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:437
  T1 = CALL5(&Kmake_LsignatureGVKi, &KPfalseVKi, T0, &K51, &KPfalseVKi, (dylan_value) 33555469);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:437
  T2 = SET_METHOD_SIG(&Kcached_type_variable_setterVdfmc_typistMM1, T1);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:437
  T3 = KPadd_dynamic_methodVKnI(&Kcached_type_variable_setterVdfmc_typist, T2);
  goto I60;
}
I60:

{
  dylan_value T0;
  dylan_value T1;
  dylan_value T2;
  dylan_value T3;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:443
  T0 = CALL2(&Kimmutable_type_vectorVKe, &KLobjectGVKd, Ltype_cacheGVdfmc_typist);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:443
  T1 = CALL5(&Kmake_LsignatureGVKi, &KPfalseVKi, T0, &KPempty_vectorVKi, &KPfalseVKi, (dylan_value) 33554441);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:443
  T2 = SET_METHOD_SIG(&Kretract_cached_type_variableVdfmc_typistMM1, T1);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:443
  T3 = KPadd_dynamic_methodVKnI(&Kretract_cached_type_variableVdfmc_typist, T2);
  goto I63;
}
I63:

{
  dylan_value T0;
  dylan_value T1;
  dylan_value T2;

  T0 = CALL2(&Kimmutable_type_vectorVKe, &KLdfm_refGVdfmc_typist, Ltype_cacheGVdfmc_typist);
  T1 = CALL7(&Kmake_Lkeyword_signatureGVKi, &KPtrueVKi, T0, &KPempty_vectorVKi, &KPfalseVKi, (dylan_value) 33816585, &K67, &K68);
  T2 = CALL2(&KPdefine_genericVKn, type_estimate_explainVdfmc_typist, T1);
  goto I66;
}
I66:

{
  dylan_value T0;
  dylan_value T1;
  dylan_value T2;
  dylan_value T3;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:458
  T0 = CALL2(&Kimmutable_type_vectorVKe, &KLtemporaryGVdfmc_flow_graph, Ltype_cacheGVdfmc_typist);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:458
  T1 = CALL7(&Kmake_Lkeyword_signatureGVKi, &KPtrueVKi, T0, &KPempty_vectorVKi, &KPfalseVKi, (dylan_value) 34865161, &K67, &K68);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:458
  T2 = SET_KEYWORD_METHOD_SIG(&Ktype_estimate_explainVdfmc_typistMM0, T1);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:458
  T3 = CALL3(&KPdefine_methodVKn, type_estimate_explainVdfmc_typist, T2, &Kdfmc_typist_libraryYdylan_userVdfmc_typist);
  goto I69;
}
I69:

{
  dylan_value T0;
  dylan_value T1;
  dylan_value T2;
  dylan_value T3;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:474
  T0 = CALL2(&Kimmutable_type_vectorVKe, &KLdfm_refGVdfmc_typist, Ltype_cacheGVdfmc_typist);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:474
  T1 = CALL7(&Kmake_Lkeyword_signatureGVKi, &KPfalseVKi, T0, &KPempty_vectorVKi, &KPfalseVKi, (dylan_value) 33816585, &K67, &K68);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:474
  T2 = SET_KEYWORD_METHOD_SIG(&Ktype_estimate_explainVdfmc_typistMM1, T1);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/typist/typist-protocol.dylan:474
  T3 = CALL3(&KPdefine_methodVKn, type_estimate_explainVdfmc_typist, T2, &Kdfmc_typist_libraryYdylan_userVdfmc_typist);
  goto I72;
}
I72:

  return;
}


/* eof */
