#include "run-time.h"

/* Typedefs for referenced classes */

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

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

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

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

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

typedef struct {
  D wrapper;
} _KLbooleanGVKd;

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

typedef struct {
  D wrapper;
} _KLobjectGVKd;

typedef struct {
  D wrapper;
} _KLunboundGVKe;

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

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

typedef struct {
  D wrapper;
  D template_fragments_;
} _KLtemplateGVdfmc_reader;

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

#define  define__KLbyte_stringGVKd(nrepeated) \
  typedef struct { \
    D wrapper; \
    D size_; \
    char string_element_[nrepeated+1]; \
  } _KLbyte_stringGVKd_##nrepeated;
define__KLbyte_stringGVKd(48);
define__KLbyte_stringGVKd(13);
define__KLbyte_stringGVKd(22);
define__KLbyte_stringGVKd(55);
define__KLbyte_stringGVKd(34);
define__KLbyte_stringGVKd(20);
define__KLbyte_stringGVKd(17);
define__KLbyte_stringGVKd(10);
define__KLbyte_stringGVKd(23);
define__KLbyte_stringGVKd(18);
define__KLbyte_stringGVKd(25);
define__KLbyte_stringGVKd(38);
define__KLbyte_stringGVKd(9);
define__KLbyte_stringGVKd(15);
define__KLbyte_stringGVKd(8);
define__KLbyte_stringGVKd(0);

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

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

typedef struct {
  D wrapper;
  D fragment_record_;
  D fragment_source_position_;
} _KLfragmentGVdfmc_reader;

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

typedef struct {
  D wrapper;
  D fragment_record_;
  D fragment_source_position_;
  D fragment_fragments_;
} _KLsequence_fragmentGVdfmc_reader;

typedef struct {
  D wrapper;
  D fragment_record_;
  D fragment_source_position_;
  D fragment_left_delimiter_;
  D fragment_nested_fragments_;
  D fragment_right_delimiter_;
} _KLnested_fragmentGVdfmc_reader;

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

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

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

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

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

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

typedef struct {
  D wrapper;
} _KLppmlGVppml;

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

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

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

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

typedef struct {
  D wrapper;
  D slot_descriptor_properties_;
  D init_data_slot_;
  D slot_owner_;
  D init_keyword_;
  D init_arg_type_;
} _KLinit_arg_descriptorGVKe;

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

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

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

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

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

typedef struct {
  D wrapper;
} _KLconditionGVKd;

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

typedef struct {
  D wrapper;
  D condition_format_string_;
  D condition_format_arguments_;
  D condition_source_location_;
  D condition_program_note_creator_;
  D condition_compilation_stage_;
} _KLprogram_conditionGVdfmc_conditions;

typedef struct {
  D wrapper;
} _KLwarningGVKd;

typedef struct {
  D wrapper;
  D condition_format_string_;
  D condition_format_arguments_;
  D condition_source_location_;
  D condition_program_note_creator_;
  D condition_compilation_stage_;
  D condition_context_id_;
  D subnotes_;
} _KLprogram_noteGVdfmc_conditions;

typedef struct {
  D wrapper;
  D condition_format_string_;
  D condition_format_arguments_;
  D condition_source_location_;
  D condition_program_note_creator_;
  D condition_compilation_stage_;
  D condition_context_id_;
  D subnotes_;
} _KLprogram_warningGVdfmc_conditions;

typedef struct {
  D wrapper;
  D condition_format_string_;
  D condition_format_arguments_;
  D condition_source_location_;
  D condition_program_note_creator_;
  D condition_compilation_stage_;
  D condition_context_id_;
  D subnotes_;
} _KLserious_program_warningGVdfmc_conditions;

typedef struct {
  D wrapper;
  D condition_format_string_;
  D condition_format_arguments_;
  D condition_source_location_;
  D condition_program_note_creator_;
  D condition_compilation_stage_;
  D condition_context_id_;
  D subnotes_;
} _KLreader_errorGVdfmc_reader;

typedef struct {
  D wrapper;
} _KLsequenceGVKd;

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

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

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


/* Typedefs for defined classes */

typedef struct {
  D wrapper;
  D condition_format_string_;
  D condition_format_arguments_;
  D condition_source_location_;
  D condition_program_note_creator_;
  D condition_compilation_stage_;
  D condition_context_id_;
  D subnotes_;
  D condition_token_;
  D condition_template_;
} _KLtemplate_parser_errorGVdfmc_macro_expander;

typedef struct {
  D wrapper;
  D condition_format_string_;
  D condition_format_arguments_;
  D condition_source_location_;
  D condition_program_note_creator_;
  D condition_compilation_stage_;
  D condition_context_id_;
  D subnotes_;
  D condition_template_;
} _KLunexpected_end_of_template_errorGVdfmc_macro_expander;


/* Referenced object declarations */

D KPadd_classVKeI (D);
D KPadd_a_methodVKnI (D, D, D, D, D, D);
extern _KLincremental_generic_functionGVKe KmakeVKd;
extern _KLfunction_classGVKi KLincremental_generic_functionGVKe;
extern _KLclassGVKd KLfunction_classGVKi;
extern _KLclassGVKd KLclassGVKd;
extern _KLmm_wrapperGVKi_0 KLclassGVKdW;
extern _KLclassGVKd KLmm_wrapperGVKi;
extern _KLmm_wrapperGVKi_1 KLmm_wrapperGVKiW;
extern _KLmm_wrapperGVKi_0 KLfunction_classGVKiW;
extern _KLmm_wrapperGVKi_0 KLincremental_generic_functionGVKeW;
extern _KLlibraryGVKe Kdfmc_macro_expander_libraryYdylan_userVdfmc_macro_expander;
extern _KLclassGVKd KLlibraryGVKe;
extern _KLmm_wrapperGVKi_0 KLlibraryGVKeW;
extern _KLbooleanGVKd KPfalseVKi;
extern _KLclassGVKd KLbooleanGVKd;
extern _KLmm_wrapperGVKi_0 KLbooleanGVKdW;
extern _KLsealed_generic_functionGVKe Kconvert_condition_slots_to_ppmlVdfmc_conditions;
extern _KLclassGVKd KLsealed_generic_functionGVKe;
extern _KLmm_wrapperGVKi_0 KLsealed_generic_functionGVKeW;
extern _KLclassGVKd KLobjectGVKd;
extern _KLmm_wrapperGVKi_0 KLobjectGVKdW;
extern _KLunboundGVKe KPunboundVKi;
extern _KLclassGVKd KLunboundGVKe;
extern _KLmm_wrapperGVKi_0 KLunboundGVKeW;
extern _KLbooleanGVKd KPtrueVKi;
extern _KLmm_wrapperGVKi_0 KLpairGVKdW;
extern _KLempty_listGVKd KPempty_listVKi;
extern _KLclassGVKd KLempty_listGVKd;
extern _KLmm_wrapperGVKi_0 KLempty_listGVKdW;
D Kre_read_fragmentsVdfmc_readerI (D, D, D);
extern _KLsimple_object_vectorGVKd_0 KPempty_vectorVKi;
extern _KLclassGVKd KLsimple_object_vectorGVKd;
extern _KLmm_wrapperGVKi_0 KLsimple_object_vectorGVKdW;
D KEEVKdI (D, D);
D KlastVKdMM1I (D, D, D);
extern _KLsealed_generic_functionGVKe Kunsupplied_objectVKi;
extern _KLsealed_generic_functionGVKe Kfragment_source_locationVdfmc_reader;
D KLtemplateGZ32ZconstructorVdfmc_readerMM0I (D, D, D);
extern _KLclassGVKd KLtemplateGVdfmc_reader;
extern _KLmm_wrapperGVKi_0 KLtemplateGVdfmc_readerW;
extern _KLincremental_generic_functionGVKe KnoteVdfmc_conditions;
extern _KLsymbolGVKd KJtoken_;
extern _KLclassGVKd KLsymbolGVKd;
extern _KLmm_wrapperGVKi_0 KLsymbolGVKdW;
extern _KLclassGVKd KLbyte_stringGVKd;
extern _KLmm_wrapperGVKi_0 KLbyte_stringGVKdW;
extern _KLfunction_classGVKi KLsimple_closure_methodGVKi;
extern _KLmm_wrapperGVKi_0 KLsimple_closure_methodGVKiW;
extern _KLobject_signatureGVKe KDsignature_LobjectG_object_rest_value_3VKi;
extern _KLclassGVKd KLobject_signatureGVKe;
extern _KLmm_wrapperGVKi_0 KLobject_signatureGVKeW;
extern _KLincremental_generic_functionGVKe KemptyQVKd;
extern _KLclassGVKd KLfragmentGVdfmc_reader;
extern _KLmm_wrapperGVKi_0 KLfragmentGVdfmc_readerW;
extern _KLsealed_generic_functionGVKe KheadVKd;
extern _KLsealed_generic_functionGVKe KtailVKd;
extern _KLclassGVKd KLlistGVKd;
extern _KLmm_wrapperGVKi_0 KLlistGVKdW;
extern _KLclassGVKd KLsequence_fragmentGVdfmc_reader;
extern _KLmm_wrapperGVKi_0 KLsequence_fragmentGVdfmc_readerW;
extern _KLclassGVKd KLnested_fragmentGVdfmc_reader;
extern _KLmm_wrapperGVKi_0 KLnested_fragmentGVdfmc_readerW;
extern _KLclassGVKd KLsignatureAvaluesGVKi;
extern _KLmm_wrapperGVKi_0 KLsignatureAvaluesGVKiW;
extern _KLfunction_classGVKi KLsimple_methodGVKe;
extern _KLmm_wrapperGVKi_0 KLsimple_methodGVKeW;
extern _KLclassGVKd KLsignatureGVKe;
extern _KLmm_wrapperGVKi_0 KLsignatureGVKeW;
extern _KLsealed_generic_functionGVKe Kparser_error_handlerVdfmc_reader;
extern _KLclassGVKd KLunionGVKe;
extern _KLmm_wrapperGVKi_0 KLunionGVKeW;
D Kunion_instanceQVKiI (D, D);
extern _KLclassGVKd KLsingletonGVKd;
extern _KLmm_wrapperGVKi_0 KLsingletonGVKdW;
D Ksingleton_pointer_idQ_instanceQVKiI (D, D);
extern _KLclassGVKd KLfunctionGVKd;
extern _KLmm_wrapperGVKi_0 KLfunctionGVKdW;
extern _KLincremental_generic_functionGVKe K_VKd;
extern _KLincremental_generic_functionGVKe KAVKd;
extern _KLincremental_generic_functionGVKe KasVKd;
extern _KLclassGVKd KLppmlGVppml;
extern _KLmm_wrapperGVKi_0 KLppmlGVppmlW;
D KerrorVKdMM1I (D, D);
D KmemberQVKdMM2I (D, D, D, D);
extern _KLsymbolGVKd KJformat_arguments_;
extern _KLsimple_methodGVKe KEEVKd;
D KlistVKdI (D);
extern _KLfunction_classGVKi KLkeyword_methodGVKe;
extern _KLmm_wrapperGVKi_0 KLkeyword_methodGVKeW;
extern _KLclassGVKd KLkeyword_signatureAvaluesGVKi;
extern _KLmm_wrapperGVKi_0 KLkeyword_signatureAvaluesGVKiW;
extern _KLsimple_object_vectorGVKd_256 KDsignature_LobjectG_typesVKi;
extern _KLclassGVKd KLsubclassGVKe;
extern _KLmm_wrapperGVKi_0 KLsubclassGVKeW;
D Ksubclass_instanceQVKiI (D, D);
extern _KLclassGVKd KLimplementation_classGVKe;
extern _KLmm_wrapperGVKi_0 KLimplementation_classGVKeW;
extern _KLclassGVKd KLinit_arg_descriptorGVKe;
extern _KLmm_wrapperGVKi_0 KLinit_arg_descriptorGVKeW;
extern _KLsymbolGVKd KJformat_string_;
extern _KLclassGVKd KLinstance_slot_descriptorGVKe;
extern _KLmm_wrapperGVKi_0 KLinstance_slot_descriptorGVKeW;
extern _KLobject_signatureGVKe KDsignature_LobjectG_object_rest_value_2VKi;
extern _KLabsent_engine_nodeGVKg RSINGULAR_Labsent_engine_nodeG;
extern _KLclassGVKd KLabsent_engine_nodeGVKg;
extern _KLmm_wrapperGVKi_0 KLabsent_engine_nodeGVKgW;
extern _KLclassGVKd KLpairGVKd;
extern _KLclassGVKd KLsetter_methodGVKi;
extern _KLmm_wrapperGVKi_0 KLsetter_methodGVKiW;
extern _KLobject_signatureGVKe KDsignature_LobjectG_object_rest_value_1VKi;
extern _KLclassGVKd KLgetter_methodGVKi;
extern _KLmm_wrapperGVKi_0 KLgetter_methodGVKiW;
extern _KLclassGVKd KLconditionGVKd;
extern _KLmm_wrapperGVKi_0 KLconditionGVKdW;
extern _KLclassGVKd KLsimple_conditionGVKe;
extern _KLmm_wrapperGVKi_0 KLsimple_conditionGVKeW;
extern _KLclassGVKd KLprogram_conditionGVdfmc_conditions;
extern _KLmm_wrapperGVKi_0 KLprogram_conditionGVdfmc_conditionsW;
extern _KLclassGVKd KLwarningGVKd;
extern _KLmm_wrapperGVKi_0 KLwarningGVKdW;
extern _KLclassGVKd KLprogram_noteGVdfmc_conditions;
extern _KLmm_wrapperGVKi_0 KLprogram_noteGVdfmc_conditionsW;
extern _KLclassGVKd KLprogram_warningGVdfmc_conditions;
extern _KLmm_wrapperGVKi_0 KLprogram_warningGVdfmc_conditionsW;
extern _KLclassGVKd KLserious_program_warningGVdfmc_conditions;
extern _KLmm_wrapperGVKi_0 KLserious_program_warningGVdfmc_conditionsW;
extern _KLclassGVKd KLreader_errorGVdfmc_reader;
extern _KLmm_wrapperGVKi_0 KLreader_errorGVdfmc_readerW;
D Kdefaulted_initialization_argumentsVKiI (D);
D Kconcatenate_2VKeMM1I (D, D);
extern _KLclassGVKd KLsequenceGVKd;
extern _KLmm_wrapperGVKi_0 KLsequenceGVKdW;
extern _KLincremental_generic_functionGVKe KinitializeVKd;
extern _KLfunction_classGVKi KLkeyword_closure_methodGVKe;
extern _KLmm_wrapperGVKi_0 KLkeyword_closure_methodGVKeW;
extern _KLbyte_stringGVKd_0 KPempty_stringVKi;
extern _KLclassGVKd KLkeyword_signatureGVKe;
extern _KLmm_wrapperGVKi_0 KLkeyword_signatureGVKeW;
extern _KLsimple_object_vectorGVKd_2 KDsignature_LclassG_typesVKi;
extern _KLinstance_slot_descriptorGVKe Kcondition_format_stringVKdHLsimple_conditionG;
extern _KLinstance_slot_descriptorGVKe Kcondition_format_argumentsVKdHLsimple_conditionG;
extern _KLinstance_slot_descriptorGVKe Kcondition_source_locationVdfmc_conditionsHLprogram_conditionG;
extern _KLinstance_slot_descriptorGVKe Kcondition_program_note_creatorVdfmc_conditionsHLprogram_conditionG;
extern _KLinstance_slot_descriptorGVKe Kcondition_compilation_stageVdfmc_conditionsHLprogram_conditionG;
extern _KLinstance_slot_descriptorGVKe Kcondition_context_idVdfmc_conditionsHLprogram_noteG;
extern _KLinstance_slot_descriptorGVKe KsubnotesVdfmc_conditionsHLprogram_noteG;
D Kclass_instanceQ_initialVKiI (D, D);
extern _KLmoduleGVKe Kdfmc_macro_expander_moduleYdylan_userVdfmc_macro_expander;
extern _KLclassGVKd KLmoduleGVKe;
extern _KLmm_wrapperGVKi_0 KLmoduleGVKeW;
extern _KLsealed_generic_functionGVKe Kas_fragment_tokensVdfmc_macro_expander;
D Kmatch_expression_constraintVdfmc_macro_expanderI (D);
D Kdylan_variable_nameVdfmc_readerI (D);
D Kmacro_main_rule_match_errorVdfmc_macro_expanderI (D, D);
extern _KLsealed_generic_functionGVKe Kexport_fragment_tokensVdfmc_macro_expander;
extern D Dend_constraintVdfmc_reader;
extern D Tcurrent_dependentTVdfmc_common;
extern D Tcurrent_stageTVdfmc_common;
extern D Dstart_expression_constraintVdfmc_reader;

/* Defined object declarations */

extern _KLclassGVKd KLtemplate_parser_errorGVdfmc_macro_expander;
extern _KLmm_wrapperGVKi_0 KLtemplate_parser_errorGVdfmc_macro_expanderW;
extern _KLkeyword_methodGVKe KmakeVKdMdfmc_macro_expanderM11;
D KmakeVKdMdfmc_macro_expanderM11I (D, D, D, D);
extern _KLsimple_methodGVKe Kconvert_condition_slots_to_ppmlVdfmc_conditionsMdfmc_macro_expanderM12;
D Kconvert_condition_slots_to_ppmlVdfmc_conditionsMdfmc_macro_expanderM12I (D);
extern _KLclassGVKd KLunexpected_end_of_template_errorGVdfmc_macro_expander;
extern _KLmm_wrapperGVKi_0 KLunexpected_end_of_template_errorGVdfmc_macro_expanderW;
extern _KLkeyword_methodGVKe KmakeVKdMdfmc_macro_expanderM12;
D KmakeVKdMdfmc_macro_expanderM12I (D, D, D);
extern _KLsimple_methodGVKe Kconvert_condition_slots_to_ppmlVdfmc_conditionsMdfmc_macro_expanderM13;
D Kconvert_condition_slots_to_ppmlVdfmc_conditionsMdfmc_macro_expanderM13I (D);
extern _KLsimple_methodGVKe Kparse_constraintVdfmc_macro_expanderMM0;
D Kparse_constraintVdfmc_macro_expanderMM0I (D, D);
extern _KLsimple_methodGVKe Kparse_bounded_constraintVdfmc_macro_expanderMM0;
D Kparse_bounded_constraintVdfmc_macro_expanderMM0I (D, D, D, D);
extern _KLsimple_methodGVKe Kparse_bounded_constraint_no_backtrackingVdfmc_macro_expanderMM0;
D Kparse_bounded_constraint_no_backtrackingVdfmc_macro_expanderMM0I (D, D, D, D);
extern _KLsimple_methodGVKe Kparse_template_fragments_asVdfmc_macro_expanderMM0;
D Kparse_template_fragments_asVdfmc_macro_expanderMM0I (D, D);
static _KLsimple_closure_methodGVKi_0 KlexerF37;
static D KlexerF37I ();
static _KLsimple_closure_methodGVKi_0 Kerror_handlerF30;
static D Kerror_handlerF30I (D, D, D);
static _KLsymbolGVKd KJfragments_;
static _KLsymbolGVKd KJsource_location_;
static _KLsymbolGVKd KJtemplate_;
static _KLbyte_stringGVKd_8 K34;
static _KLbyte_stringGVKd_15 K35;
static _KLbyte_stringGVKd_9 K36;
static _KLsignatureAvaluesGVKi K38;
static _KLsimple_object_vectorGVKd_1 K39;
static _KLsignatureGVKe K40;
static _KLsimple_object_vectorGVKd_2 K41;
static _KLsimple_closure_methodGVKi_0 KlexerF46;
static D KlexerF46I ();
static _KLunionGVKe K44;
static _KLsingletonGVKd K45;
static _KLsignatureAvaluesGVKi K47;
static _KLsimple_object_vectorGVKd_4 K48;
static _KLsimple_object_vectorGVKd_3 K49;
static _KLsimple_closure_methodGVKi_0 KlexerF56;
static D KlexerF56I ();
static _KLsimple_closure_methodGVKi_0 KretryF54;
static D KretryF54I (D);
static _KLsignatureGVKe K55;
static _KLsimple_closure_methodGVKi_0 KlexerF62;
static D KlexerF62I ();
static _KLsimple_closure_methodGVKi_0 KretryF61;
static D KretryF61I (D);
static _KLsignatureGVKe K63;
static _KLsimple_object_vectorGVKd_2 K64;
static _KLbyte_stringGVKd_15 K65;
static _KLsignatureGVKe K66;
static _KLsimple_object_vectorGVKd_1 K67;
static _KLsimple_closure_methodGVKi_0 Kanonymous_of_makeF70;
static D Kanonymous_of_makeF70I (D);
static _KLkeyword_signatureAvaluesGVKi K71;
static _KLsimple_object_vectorGVKd_2 K72;
static _KLsimple_object_vectorGVKd_1 K73;
static _KLsimple_object_vectorGVKd_1 K74;
static _KLsubclassGVKe K75;
static _KLimplementation_classGVKe K76;
static _KLsimple_object_vectorGVKd_8 K77;
extern _KLkeyword_methodGVKe KLunexpected_end_of_template_errorGZ32ZconstructorVdfmc_macro_expanderMM0;
D KLunexpected_end_of_template_errorGZ32ZconstructorVdfmc_macro_expanderMM0I (D, D);
static _KLsimple_object_vectorGVKd_1 K80;
static _KLsimple_object_vectorGVKd_10 K81;
static _KLsimple_object_vectorGVKd_1 K82;
static _KLsimple_object_vectorGVKd_1 K83;
static _KLinit_arg_descriptorGVKe Kformat_stringHLunexpected_end_of_template_errorGVdfmc_macro_expander;
static _KLbyte_stringGVKd_38 K85;
extern _KLinstance_slot_descriptorGVKe Kcondition_templateVdfmc_macro_expanderHLunexpected_end_of_template_errorG;
extern _KLsealed_generic_functionGVKe Kcondition_templateVdfmc_macro_expander;
extern _KLsealed_generic_functionGVKe Kcondition_template_setterVdfmc_macro_expander;
extern _KLsetter_methodGVKi Kcondition_template_setterVdfmc_macro_expanderMM0;
extern _KLsetter_methodGVKi Kcondition_template_setterVdfmc_macro_expanderMM1;
static _KLpairGVKd K91;
static _KLpairGVKd K92;
static _KLbyte_stringGVKd_25 K93;
extern _KLinstance_slot_descriptorGVKe Kcondition_templateVdfmc_macro_expanderHLtemplate_parser_errorG;
extern _KLgetter_methodGVKi Kcondition_templateVdfmc_macro_expanderMM0;
extern _KLgetter_methodGVKi Kcondition_templateVdfmc_macro_expanderMM1;
static _KLpairGVKd K97;
static _KLpairGVKd K98;
static _KLbyte_stringGVKd_18 K99;
static _KLkeyword_closure_methodGVKe_0 Kdefaulted_initializeF102;
static D Kdefaulted_initializeF102I (D object_, D init_args_, D Uunique_condition_format_string_, D Uunique_condition_format_arguments_, D Uunique_condition_source_location_, D Uunique_condition_program_note_creator_, D Uunique_condition_compilation_stage_, D Uunique_condition_context_id_, D Uunique_subnotes_, D Uunique_condition_template_);
static _KLbyte_stringGVKd_23 K103;
static _KLkeyword_signatureGVKe K104;
static _KLsimple_object_vectorGVKd_16 K105;
static _KLsymbolGVKd KJprogram_note_creator_;
static _KLsymbolGVKd KJcompilation_stage_;
static _KLsymbolGVKd KJcontext_id_;
static _KLsymbolGVKd KJsubnotes_;
static _KLbyte_stringGVKd_8 K110;
static _KLbyte_stringGVKd_10 K111;
static _KLbyte_stringGVKd_17 K112;
static _KLbyte_stringGVKd_20 K113;
static _KLsimple_object_vectorGVKd_8 K114;
static _KLkeyword_signatureAvaluesGVKi K115;
static _KLbyte_stringGVKd_34 K116;
static _KLsignatureGVKe K117;
static _KLsimple_object_vectorGVKd_1 K118;
static _KLsimple_closure_methodGVKi_0 Kanonymous_of_makeF121;
static D Kanonymous_of_makeF121I (D);
static _KLkeyword_signatureAvaluesGVKi K122;
static _KLsimple_object_vectorGVKd_4 K123;
static _KLsimple_object_vectorGVKd_1 K124;
static _KLsimple_object_vectorGVKd_2 K125;
static _KLsubclassGVKe K126;
static _KLimplementation_classGVKe K127;
static _KLsimple_object_vectorGVKd_9 K128;
extern _KLkeyword_methodGVKe KLtemplate_parser_errorGZ32ZconstructorVdfmc_macro_expanderMM0;
D KLtemplate_parser_errorGZ32ZconstructorVdfmc_macro_expanderMM0I (D, D);
static _KLsimple_object_vectorGVKd_10 K131;
static _KLsimple_object_vectorGVKd_2 K132;
static _KLsimple_object_vectorGVKd_1 K133;
static _KLinit_arg_descriptorGVKe Kformat_stringHLtemplate_parser_errorGVdfmc_macro_expander;
static _KLbyte_stringGVKd_55 K135;
extern _KLinstance_slot_descriptorGVKe Kcondition_tokenVdfmc_macro_expanderHLtemplate_parser_errorG;
extern _KLsealed_generic_functionGVKe Kcondition_tokenVdfmc_macro_expander;
extern _KLsealed_generic_functionGVKe Kcondition_token_setterVdfmc_macro_expander;
extern _KLsetter_methodGVKi Kcondition_token_setterVdfmc_macro_expanderMM0;
static _KLpairGVKd K140;
static _KLbyte_stringGVKd_22 K141;
extern _KLgetter_methodGVKi Kcondition_tokenVdfmc_macro_expanderMM0;
static _KLpairGVKd K143;
static _KLbyte_stringGVKd_15 K144;
static _KLkeyword_closure_methodGVKe_0 Kdefaulted_initializeF147;
static D Kdefaulted_initializeF147I (D object_, D init_args_, D Uunique_condition_format_string_, D Uunique_condition_format_arguments_, D Uunique_condition_source_location_, D Uunique_condition_program_note_creator_, D Uunique_condition_compilation_stage_, D Uunique_condition_context_id_, D Uunique_subnotes_, D Uunique_condition_token_, D Uunique_condition_template_);
static _KLkeyword_signatureGVKe K148;
static _KLsimple_object_vectorGVKd_18 K149;
static _KLsimple_object_vectorGVKd_9 K150;
static _KLkeyword_signatureAvaluesGVKi K151;
static _KLbyte_stringGVKd_23 K152;
extern _KLsealed_generic_functionGVKe Kas_expressionVdfmc_macro_expander;
extern _KLsimple_methodGVKe Kas_expressionVdfmc_macro_expanderMM0;
D Kas_expressionVdfmc_macro_expanderMM0I (D);
extern _KLsimple_methodGVKe Kas_expressionVdfmc_macro_expanderMM1;
D Kas_expressionVdfmc_macro_expanderMM1I (D);
static _KLpairGVKd K158;
static _KLpairGVKd K159;
static _KLbyte_stringGVKd_13 K160;
static _KLsymbolGVKd KJmacro_case_;
static _KLbyte_stringGVKd_10 K162;
static _KLbyte_stringGVKd_48 K163;
static _KLsignatureGVKe K164;
static _KLsimple_object_vectorGVKd_1 K165;

/* Indirection variables */

static D IKJfragments_ = &KJfragments_;
static D IKJsource_location_ = &KJsource_location_;
static D IKJtemplate_ = &KJtemplate_;
static D IKJprogram_note_creator_ = &KJprogram_note_creator_;
static D IKJcompilation_stage_ = &KJcompilation_stage_;
static D IKJcontext_id_ = &KJcontext_id_;
static D IKJsubnotes_ = &KJsubnotes_;
static D IKJmacro_case_ = &KJmacro_case_;

/* Variables */

D as_expressionVdfmc_macro_expander = &Kas_expressionVdfmc_macro_expander;
D parse_template_fragments_asVdfmc_macro_expander = &Kparse_template_fragments_asVdfmc_macro_expanderMM0;
D parse_bounded_constraint_no_backtrackingVdfmc_macro_expander = &Kparse_bounded_constraint_no_backtrackingVdfmc_macro_expanderMM0;
D parse_bounded_constraintVdfmc_macro_expander = &Kparse_bounded_constraintVdfmc_macro_expanderMM0;
D parse_constraintVdfmc_macro_expander = &Kparse_constraintVdfmc_macro_expanderMM0;
D Ltemplate_parser_errorGVdfmc_macro_expander = &KLtemplate_parser_errorGVdfmc_macro_expander;
D Lunexpected_end_of_template_errorGVdfmc_macro_expander = &KLunexpected_end_of_template_errorGVdfmc_macro_expander;

/* Objects */

_KLclassGVKd KLtemplate_parser_errorGVdfmc_macro_expander = {
  &KLclassGVKdW /* wrapper */,
  &Kclass_instanceQ_initialVKiI,
  &K152,
  &K127,
  (D) 1,
  &Kdfmc_macro_expander_moduleYdylan_userVdfmc_macro_expander
};

_KLmm_wrapperGVKi_0 KLtemplate_parser_errorGVdfmc_macro_expanderW = {
  &KLmm_wrapperGVKiW /* wrapper */,
  &K127,
  (D) 1,
  37,
  33554439,
  (D) 1
};

_KLkeyword_methodGVKe KmakeVKdMdfmc_macro_expanderM11 = {
  &KLkeyword_methodGVKeW /* wrapper */,
  &rest_key_xep_4,
  &K122,
  &key_mep_4,
  &KmakeVKdMdfmc_macro_expanderM11I,
  &K123
};

_KLsimple_methodGVKe Kconvert_condition_slots_to_ppmlVdfmc_conditionsMdfmc_macro_expanderM12 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K117,
  &Kconvert_condition_slots_to_ppmlVdfmc_conditionsMdfmc_macro_expanderM12I
};

_KLclassGVKd KLunexpected_end_of_template_errorGVdfmc_macro_expander = {
  &KLclassGVKdW /* wrapper */,
  &Kclass_instanceQ_initialVKiI,
  &K116,
  &K76,
  (D) 1,
  &Kdfmc_macro_expander_moduleYdylan_userVdfmc_macro_expander
};

_KLmm_wrapperGVKi_0 KLunexpected_end_of_template_errorGVdfmc_macro_expanderW = {
  &KLmm_wrapperGVKiW /* wrapper */,
  &K76,
  (D) 1,
  33,
  33554439,
  (D) 1
};

_KLkeyword_methodGVKe KmakeVKdMdfmc_macro_expanderM12 = {
  &KLkeyword_methodGVKeW /* wrapper */,
  &rest_key_xep_3,
  &K71,
  &key_mep_3,
  &KmakeVKdMdfmc_macro_expanderM12I,
  &K72
};

_KLsimple_methodGVKe Kconvert_condition_slots_to_ppmlVdfmc_conditionsMdfmc_macro_expanderM13 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K66,
  &Kconvert_condition_slots_to_ppmlVdfmc_conditionsMdfmc_macro_expanderM13I
};

_KLsimple_methodGVKe Kparse_constraintVdfmc_macro_expanderMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K63,
  &Kparse_constraintVdfmc_macro_expanderMM0I
};

_KLsimple_methodGVKe Kparse_bounded_constraintVdfmc_macro_expanderMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_4,
  &K47,
  &Kparse_bounded_constraintVdfmc_macro_expanderMM0I
};

_KLsimple_methodGVKe Kparse_bounded_constraint_no_backtrackingVdfmc_macro_expanderMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_4,
  &K47,
  &Kparse_bounded_constraint_no_backtrackingVdfmc_macro_expanderMM0I
};

_KLsimple_methodGVKe Kparse_template_fragments_asVdfmc_macro_expanderMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K40,
  &Kparse_template_fragments_asVdfmc_macro_expanderMM0I
};

static _KLsimple_closure_methodGVKi_0 KlexerF37 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_0,
  &K38,
  &KlexerF37I,
  (D) 1
};

static _KLsimple_closure_methodGVKi_0 Kerror_handlerF30 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_3,
  &KDsignature_LobjectG_object_rest_value_3VKi,
  &Kerror_handlerF30I,
  (D) 1
};

static _KLsymbolGVKd KJfragments_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K36
};

static _KLsymbolGVKd KJsource_location_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K35
};

static _KLsymbolGVKd KJtemplate_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K34
};

static _KLbyte_stringGVKd_8 K34 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 33,
  "template"
};

static _KLbyte_stringGVKd_15 K35 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 61,
  "source-location"
};

static _KLbyte_stringGVKd_9 K36 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 37,
  "fragments"
};

static _KLsignatureAvaluesGVKi K38 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33555457,
  &KPempty_vectorVKi,
  &K39
};

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

static _KLsignatureGVKe K40 = {
  &KLsignatureGVKeW /* wrapper */,
  (D) 41945097,
  &K41
};

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

static _KLsimple_closure_methodGVKi_0 KlexerF46 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_0,
  &K38,
  &KlexerF46I,
  (D) 1
};

static _KLunionGVKe K44 = {
  &KLunionGVKeW /* wrapper */,
  &Kunion_instanceQVKiI,
  &K45,
  &KLlistGVKd
};

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

static _KLsignatureAvaluesGVKi K47 = {
  &KLsignatureAvaluesGVKiW /* wrapper */,
  (D) 33557521,
  &K48,
  &K49
};

static _KLsimple_object_vectorGVKd_4 K48 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 17,
  &KLfragmentGVdfmc_reader,
  &KLlistGVKd,
  &KLfunctionGVKd,
  &KLobjectGVKd
};

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

static _KLsimple_closure_methodGVKi_0 KlexerF56 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_0,
  &K38,
  &KlexerF56I,
  (D) 1
};

static _KLsimple_closure_methodGVKi_0 KretryF54 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &rest_xep_0,
  &K55,
  &KretryF54I,
  (D) 1
};

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

static _KLsimple_closure_methodGVKi_0 KlexerF62 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &xep_0,
  &K38,
  &KlexerF62I,
  (D) 1
};

static _KLsimple_closure_methodGVKi_0 KretryF61 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &rest_xep_0,
  &K55,
  &KretryF61I,
  (D) 1
};

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

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

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

static _KLsignatureGVKe K66 = {
  &KLsignatureGVKeW /* wrapper */,
  (D) 46137349,
  &K67
};

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

static _KLsimple_closure_methodGVKi_0 Kanonymous_of_makeF70 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &rest_xep_0,
  &K55,
  &Kanonymous_of_makeF70I,
  (D) 1
};

static _KLkeyword_signatureAvaluesGVKi K71 = {
  &KLkeyword_signatureAvaluesGVKiW /* wrapper */,
  (D) 39060485,
  &K73,
  &K74,
  &KDsignature_LobjectG_typesVKi,
  &K67
};

static _KLsimple_object_vectorGVKd_2 K72 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KJtemplate_,
  &KPfalseVKi
};

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

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

static _KLsubclassGVKe K75 = {
  &KLsubclassGVKeW /* wrapper */,
  &Ksubclass_instanceQVKiI,
  &KLunexpected_end_of_template_errorGVdfmc_macro_expander
};

static _KLimplementation_classGVKe K76 = {
  &KLimplementation_classGVKeW /* wrapper */,
  (D) 527433761,
  &KLunexpected_end_of_template_errorGVdfmc_macro_expander,
  &KLunexpected_end_of_template_errorGVdfmc_macro_expanderW,
  &KPfalseVKi,
  &K77,
  (D) -3,
  &KLunexpected_end_of_template_errorGZ32ZconstructorVdfmc_macro_expanderMM0,
  &K80,
  &K81,
  (D) 37,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_listVKi,
  &KPempty_listVKi,
  &KPempty_listVKi,
  &KPempty_vectorVKi,
  &K82,
  &K77,
  &KPempty_vectorVKi,
  &K83,
  &KPempty_vectorVKi,
  (D) -7,
  &KPempty_vectorVKi
};

static _KLsimple_object_vectorGVKd_8 K77 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 33,
  &Kcondition_format_stringVKdHLsimple_conditionG,
  &Kcondition_format_argumentsVKdHLsimple_conditionG,
  &Kcondition_source_locationVdfmc_conditionsHLprogram_conditionG,
  &Kcondition_program_note_creatorVdfmc_conditionsHLprogram_conditionG,
  &Kcondition_compilation_stageVdfmc_conditionsHLprogram_conditionG,
  &Kcondition_context_idVdfmc_conditionsHLprogram_noteG,
  &KsubnotesVdfmc_conditionsHLprogram_noteG,
  &Kcondition_templateVdfmc_macro_expanderHLunexpected_end_of_template_errorG
};

_KLkeyword_methodGVKe KLunexpected_end_of_template_errorGZ32ZconstructorVdfmc_macro_expanderMM0 = {
  &KLkeyword_methodGVKeW /* wrapper */,
  &rest_key_xep_2,
  &K115,
  &key_mep_2,
  &KLunexpected_end_of_template_errorGZ32ZconstructorVdfmc_macro_expanderMM0I,
  &KPempty_vectorVKi
};

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

static _KLsimple_object_vectorGVKd_10 K81 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 41,
  &KLobjectGVKd,
  &KLconditionGVKd,
  &KLsimple_conditionGVKe,
  &KLprogram_conditionGVdfmc_conditions,
  &KLwarningGVKd,
  &KLprogram_noteGVdfmc_conditions,
  &KLprogram_warningGVdfmc_conditions,
  &KLserious_program_warningGVdfmc_conditions,
  &KLreader_errorGVdfmc_reader,
  &KLunexpected_end_of_template_errorGVdfmc_macro_expander
};

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

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

static _KLinit_arg_descriptorGVKe Kformat_stringHLunexpected_end_of_template_errorGVdfmc_macro_expander = {
  &KLinit_arg_descriptorGVKeW /* wrapper */,
  (D) 29,
  &K85,
  &KLunexpected_end_of_template_errorGVdfmc_macro_expander,
  &KJformat_string_,
  &KLobjectGVKd
};

static _KLbyte_stringGVKd_38 K85 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 153,
  "Unexpected end of macro expansion: %=."
};

_KLinstance_slot_descriptorGVKe Kcondition_templateVdfmc_macro_expanderHLunexpected_end_of_template_errorG = {
  &KLinstance_slot_descriptorGVKeW /* wrapper */,
  (D) 193,
  &KPfalseVKi,
  &KLunexpected_end_of_template_errorGVdfmc_macro_expander,
  &KJtemplate_,
  &Kcondition_templateVdfmc_macro_expander,
  &Kcondition_template_setterVdfmc_macro_expander,
  &KLobjectGVKd
};

_KLsealed_generic_functionGVKe Kcondition_templateVdfmc_macro_expander = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &KPfalseVKi,
  &K99,
  &K97,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsealed_generic_functionGVKe Kcondition_template_setterVdfmc_macro_expander = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &KDsignature_LobjectG_object_rest_value_2VKi,
  &KPfalseVKi,
  &K93,
  &K91,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsetter_methodGVKi Kcondition_template_setterVdfmc_macro_expanderMM0 = {
  &KLsetter_methodGVKiW /* wrapper */,
  &slotacc_single_q_instance_setter_xep,
  &Kcondition_templateVdfmc_macro_expanderHLtemplate_parser_errorG
};

_KLsetter_methodGVKi Kcondition_template_setterVdfmc_macro_expanderMM1 = {
  &KLsetter_methodGVKiW /* wrapper */,
  &slotacc_single_q_instance_setter_xep,
  &Kcondition_templateVdfmc_macro_expanderHLunexpected_end_of_template_errorG
};

static _KLpairGVKd K91 = {
  &KLpairGVKdW /* wrapper */,
  &Kcondition_template_setterVdfmc_macro_expanderMM0,
  &K92
};

static _KLpairGVKd K92 = {
  &KLpairGVKdW /* wrapper */,
  &Kcondition_template_setterVdfmc_macro_expanderMM1,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_25 K93 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 101,
  "condition-template-setter"
};

_KLinstance_slot_descriptorGVKe Kcondition_templateVdfmc_macro_expanderHLtemplate_parser_errorG = {
  &KLinstance_slot_descriptorGVKeW /* wrapper */,
  (D) 193,
  &KPfalseVKi,
  &KLtemplate_parser_errorGVdfmc_macro_expander,
  &KJtemplate_,
  &Kcondition_templateVdfmc_macro_expander,
  &Kcondition_template_setterVdfmc_macro_expander,
  &KLobjectGVKd
};

_KLgetter_methodGVKi Kcondition_templateVdfmc_macro_expanderMM0 = {
  &KLgetter_methodGVKiW /* wrapper */,
  &slotacc_single_q_instance_getter_xep,
  &Kcondition_templateVdfmc_macro_expanderHLtemplate_parser_errorG
};

_KLgetter_methodGVKi Kcondition_templateVdfmc_macro_expanderMM1 = {
  &KLgetter_methodGVKiW /* wrapper */,
  &slotacc_single_q_instance_getter_xep,
  &Kcondition_templateVdfmc_macro_expanderHLunexpected_end_of_template_errorG
};

static _KLpairGVKd K97 = {
  &KLpairGVKdW /* wrapper */,
  &Kcondition_templateVdfmc_macro_expanderMM0,
  &K98
};

static _KLpairGVKd K98 = {
  &KLpairGVKdW /* wrapper */,
  &Kcondition_templateVdfmc_macro_expanderMM1,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_18 K99 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 73,
  "condition-template"
};

static _KLkeyword_closure_methodGVKe_0 Kdefaulted_initializeF102 = {
  &KLkeyword_closure_methodGVKeW /* wrapper */,
  &rest_key_xep,
  &K104,
  &key_mep,
  &Kdefaulted_initializeF102I,
  &K105,
  (D) 1
};

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

static _KLkeyword_signatureGVKe K104 = {
  &KLkeyword_signatureGVKeW /* wrapper */,
  (D) 45875205,
  &K67,
  &K114,
  &KDsignature_LobjectG_typesVKi
};

static _KLsimple_object_vectorGVKd_16 K105 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 65,
  &KJformat_string_,
  &KPempty_stringVKi,
  &KJformat_arguments_,
  &KPempty_vectorVKi,
  &KJsource_location_,
  &KPfalseVKi,
  &KJprogram_note_creator_,
  &KPunboundVKi,
  &KJcompilation_stage_,
  &KPunboundVKi,
  &KJcontext_id_,
  &KPfalseVKi,
  &KJsubnotes_,
  &KPempty_vectorVKi,
  &KJtemplate_,
  &KPunboundVKi
};

static _KLsymbolGVKd KJprogram_note_creator_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K113
};

static _KLsymbolGVKd KJcompilation_stage_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K112
};

static _KLsymbolGVKd KJcontext_id_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K111
};

static _KLsymbolGVKd KJsubnotes_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K110
};

static _KLbyte_stringGVKd_8 K110 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 33,
  "subnotes"
};

static _KLbyte_stringGVKd_10 K111 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 41,
  "context-id"
};

static _KLbyte_stringGVKd_17 K112 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 69,
  "compilation-stage"
};

static _KLbyte_stringGVKd_20 K113 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 81,
  "program-note-creator"
};

static _KLsimple_object_vectorGVKd_8 K114 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 33,
  &KJformat_string_,
  &KJformat_arguments_,
  &KJsource_location_,
  &KJprogram_note_creator_,
  &KJcompilation_stage_,
  &KJcontext_id_,
  &KJsubnotes_,
  &KJtemplate_
};

static _KLkeyword_signatureAvaluesGVKi K115 = {
  &KLkeyword_signatureAvaluesGVKiW /* wrapper */,
  (D) 35390469,
  &KDsignature_LclassG_typesVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &K67
};

static _KLbyte_stringGVKd_34 K116 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 137,
  "<unexpected-end-of-template-error>"
};

static _KLsignatureGVKe K117 = {
  &KLsignatureGVKeW /* wrapper */,
  (D) 46137349,
  &K118
};

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

static _KLsimple_closure_methodGVKi_0 Kanonymous_of_makeF121 = {
  &KLsimple_closure_methodGVKiW /* wrapper */,
  &rest_xep_0,
  &K55,
  &Kanonymous_of_makeF121I,
  (D) 1
};

static _KLkeyword_signatureAvaluesGVKi K122 = {
  &KLkeyword_signatureAvaluesGVKiW /* wrapper */,
  (D) 39060485,
  &K124,
  &K125,
  &KDsignature_LobjectG_typesVKi,
  &K118
};

static _KLsimple_object_vectorGVKd_4 K123 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 17,
  &KJtoken_,
  &KPfalseVKi,
  &KJtemplate_,
  &KPfalseVKi
};

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

static _KLsimple_object_vectorGVKd_2 K125 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 9,
  &KJtoken_,
  &KJtemplate_
};

static _KLsubclassGVKe K126 = {
  &KLsubclassGVKeW /* wrapper */,
  &Ksubclass_instanceQVKiI,
  &KLtemplate_parser_errorGVdfmc_macro_expander
};

static _KLimplementation_classGVKe K127 = {
  &KLimplementation_classGVKeW /* wrapper */,
  (D) 527433765,
  &KLtemplate_parser_errorGVdfmc_macro_expander,
  &KLtemplate_parser_errorGVdfmc_macro_expanderW,
  &KPfalseVKi,
  &K128,
  (D) -3,
  &KLtemplate_parser_errorGZ32ZconstructorVdfmc_macro_expanderMM0,
  &K80,
  &K131,
  (D) 37,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &KPempty_listVKi,
  &KPempty_listVKi,
  &KPempty_listVKi,
  &KPempty_vectorVKi,
  &K132,
  &K128,
  &KPempty_vectorVKi,
  &K133,
  &KPempty_vectorVKi,
  (D) -7,
  &KPempty_vectorVKi
};

static _KLsimple_object_vectorGVKd_9 K128 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 37,
  &Kcondition_format_stringVKdHLsimple_conditionG,
  &Kcondition_format_argumentsVKdHLsimple_conditionG,
  &Kcondition_source_locationVdfmc_conditionsHLprogram_conditionG,
  &Kcondition_program_note_creatorVdfmc_conditionsHLprogram_conditionG,
  &Kcondition_compilation_stageVdfmc_conditionsHLprogram_conditionG,
  &Kcondition_context_idVdfmc_conditionsHLprogram_noteG,
  &KsubnotesVdfmc_conditionsHLprogram_noteG,
  &Kcondition_tokenVdfmc_macro_expanderHLtemplate_parser_errorG,
  &Kcondition_templateVdfmc_macro_expanderHLtemplate_parser_errorG
};

_KLkeyword_methodGVKe KLtemplate_parser_errorGZ32ZconstructorVdfmc_macro_expanderMM0 = {
  &KLkeyword_methodGVKeW /* wrapper */,
  &rest_key_xep_2,
  &K151,
  &key_mep_2,
  &KLtemplate_parser_errorGZ32ZconstructorVdfmc_macro_expanderMM0I,
  &KPempty_vectorVKi
};

static _KLsimple_object_vectorGVKd_10 K131 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 41,
  &KLobjectGVKd,
  &KLconditionGVKd,
  &KLsimple_conditionGVKe,
  &KLprogram_conditionGVdfmc_conditions,
  &KLwarningGVKd,
  &KLprogram_noteGVdfmc_conditions,
  &KLprogram_warningGVdfmc_conditions,
  &KLserious_program_warningGVdfmc_conditions,
  &KLreader_errorGVdfmc_reader,
  &KLtemplate_parser_errorGVdfmc_macro_expander
};

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

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

static _KLinit_arg_descriptorGVKe Kformat_stringHLtemplate_parser_errorGVdfmc_macro_expander = {
  &KLinit_arg_descriptorGVKeW /* wrapper */,
  (D) 29,
  &K135,
  &KLtemplate_parser_errorGVdfmc_macro_expander,
  &KJformat_string_,
  &KLobjectGVKd
};

static _KLbyte_stringGVKd_55 K135 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 221,
  "Unexpected token %= encountered in macro expansion: %=."
};

_KLinstance_slot_descriptorGVKe Kcondition_tokenVdfmc_macro_expanderHLtemplate_parser_errorG = {
  &KLinstance_slot_descriptorGVKeW /* wrapper */,
  (D) 193,
  &KPfalseVKi,
  &KLtemplate_parser_errorGVdfmc_macro_expander,
  &KJtoken_,
  &Kcondition_tokenVdfmc_macro_expander,
  &Kcondition_token_setterVdfmc_macro_expander,
  &KLobjectGVKd
};

_KLsealed_generic_functionGVKe Kcondition_tokenVdfmc_macro_expander = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &KPfalseVKi,
  &K144,
  &K143,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsealed_generic_functionGVKe Kcondition_token_setterVdfmc_macro_expander = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &KDsignature_LobjectG_object_rest_value_2VKi,
  &KPfalseVKi,
  &K141,
  &K140,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsetter_methodGVKi Kcondition_token_setterVdfmc_macro_expanderMM0 = {
  &KLsetter_methodGVKiW /* wrapper */,
  &slotacc_single_q_instance_setter_xep,
  &Kcondition_tokenVdfmc_macro_expanderHLtemplate_parser_errorG
};

static _KLpairGVKd K140 = {
  &KLpairGVKdW /* wrapper */,
  &Kcondition_token_setterVdfmc_macro_expanderMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_22 K141 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 89,
  "condition-token-setter"
};

_KLgetter_methodGVKi Kcondition_tokenVdfmc_macro_expanderMM0 = {
  &KLgetter_methodGVKiW /* wrapper */,
  &slotacc_single_q_instance_getter_xep,
  &Kcondition_tokenVdfmc_macro_expanderHLtemplate_parser_errorG
};

static _KLpairGVKd K143 = {
  &KLpairGVKdW /* wrapper */,
  &Kcondition_tokenVdfmc_macro_expanderMM0,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_15 K144 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 61,
  "condition-token"
};

static _KLkeyword_closure_methodGVKe_0 Kdefaulted_initializeF147 = {
  &KLkeyword_closure_methodGVKeW /* wrapper */,
  &rest_key_xep,
  &K148,
  &key_mep,
  &Kdefaulted_initializeF147I,
  &K149,
  (D) 1
};

static _KLkeyword_signatureGVKe K148 = {
  &KLkeyword_signatureGVKeW /* wrapper */,
  (D) 45875205,
  &K118,
  &K150,
  &KDsignature_LobjectG_typesVKi
};

static _KLsimple_object_vectorGVKd_18 K149 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 73,
  &KJformat_string_,
  &KPempty_stringVKi,
  &KJformat_arguments_,
  &KPempty_vectorVKi,
  &KJsource_location_,
  &KPfalseVKi,
  &KJprogram_note_creator_,
  &KPunboundVKi,
  &KJcompilation_stage_,
  &KPunboundVKi,
  &KJcontext_id_,
  &KPfalseVKi,
  &KJsubnotes_,
  &KPempty_vectorVKi,
  &KJtoken_,
  &KPunboundVKi,
  &KJtemplate_,
  &KPunboundVKi
};

static _KLsimple_object_vectorGVKd_9 K150 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (D) 37,
  &KJformat_string_,
  &KJformat_arguments_,
  &KJsource_location_,
  &KJprogram_note_creator_,
  &KJcompilation_stage_,
  &KJcontext_id_,
  &KJsubnotes_,
  &KJtoken_,
  &KJtemplate_
};

static _KLkeyword_signatureAvaluesGVKi K151 = {
  &KLkeyword_signatureAvaluesGVKiW /* wrapper */,
  (D) 35390469,
  &KDsignature_LclassG_typesVKi,
  &KPempty_vectorVKi,
  &KPempty_vectorVKi,
  &K118
};

static _KLbyte_stringGVKd_23 K152 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 93,
  "<template-parser-error>"
};

_KLsealed_generic_functionGVKe Kas_expressionVdfmc_macro_expander = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &KPfalseVKi,
  &K160,
  &K158,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsimple_methodGVKe Kas_expressionVdfmc_macro_expanderMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K164,
  &Kas_expressionVdfmc_macro_expanderMM0I
};

_KLsimple_methodGVKe Kas_expressionVdfmc_macro_expanderMM1 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &Kas_expressionVdfmc_macro_expanderMM1I
};

static _KLpairGVKd K158 = {
  &KLpairGVKdW /* wrapper */,
  &Kas_expressionVdfmc_macro_expanderMM0,
  &K159
};

static _KLpairGVKd K159 = {
  &KLpairGVKdW /* wrapper */,
  &Kas_expressionVdfmc_macro_expanderMM1,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_13 K160 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 53,
  "as-expression"
};

static _KLsymbolGVKd KJmacro_case_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K162
};

static _KLbyte_stringGVKd_10 K162 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 41,
  "macro-case"
};

static _KLbyte_stringGVKd_48 K163 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (D) 193,
  "Template %= wouldn\'t parse as an expression: %s."
};

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

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

/* Code */

D KmakeVKdMdfmc_macro_expanderM11I (D class_, D initargs_, D token_, D template_) {
  D T5;
  D T6_0;
  D T7;
  D T8;
  D T9;
  D T10;
  D T11_0;
  _KLsimple_object_vectorGVKd_2 T12 = {&KLsimple_object_vectorGVKdW, (D) 9};
  D T13_0;
  D T14_0;
  D T15_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:187
  T9 = primitive_copy_vector(initargs_);
  T7 = primitive_next_methods_parameter();
  T8 = MAKE_CLOSURE_INITD(&Kanonymous_of_makeF121, 3, T9, T7, class_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:187
  T10 = KmemberQVKdMM2I(&KJformat_arguments_, T9, &KPempty_vectorVKi, &KEEVKd);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:187
  if (T10 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:187
    T11_0 = APPLY2(T8, class_, T9);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:187
    T14_0 = T11_0;
    {
      MV_CHECK_TYPE_PROLOGUE(T11_0);
      primitive_type_check(T14_0, &KLtemplate_parser_errorGVdfmc_macro_expander);
      MV_CHECK_TYPE_EPILOGUE();
    }
    T6_0 = T14_0;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:187
    T12.vector_element_[0] = token_;
    T12.vector_element_[1] = template_;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:187
    T5 = KlistVKdI(&T12);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:187
    T13_0 = APPLY4(T8, class_, &KJformat_arguments_, T5, T9);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:187
    T15_0 = T13_0;
    {
      MV_CHECK_TYPE_PROLOGUE(T13_0);
      primitive_type_check(T15_0, &KLtemplate_parser_errorGVdfmc_macro_expander);
      MV_CHECK_TYPE_EPILOGUE();
    }
    T6_0 = T15_0;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:187
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:187
  MV_SET_COUNT(1);
  return(T6_0);
}

D Kconvert_condition_slots_to_ppmlVdfmc_conditionsMdfmc_macro_expanderM12I (D Pc_) {
  D T2;
  D T3;
  D T4;
  D T5;
  D T6;
  D T7;
  D T8;
  D T9;
  D T10;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:187
  T4 = primitive_next_methods_parameter();
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:187
  T5 = SLOT_VALUE_INITD(Pc_, 7);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:187
  CONGRUENT_CALL_PROLOG(&KasVKd, 2);
  T2 = CONGRUENT_CALL2(&KLppmlGVppml, T5);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:187
  SLOT_VALUE_SETTER(T2, Pc_, 7);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:187
  T6 = SLOT_VALUE_INITD(Pc_, 8);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:187
  CONGRUENT_CALL_PROLOG(&KasVKd, 2);
  T3 = CONGRUENT_CALL2(&KLppmlGVppml, T6);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:187
  SLOT_VALUE_SETTER(T3, Pc_, 8);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:187
  T7 = primitive_idQ(T4,&KPempty_listVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:187
  if (T7 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:187
    KerrorVKdMM1I(&K65, &KPempty_vectorVKi);
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:187
    T8 = SLOT_VALUE_INITD(T4, 0);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:187
    T9 = SLOT_VALUE_INITD(T4, 1);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:187
    MEP_CALL_PROLOG(T8, T9, 1);
    MEP_CALL1(T8, Pc_);
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:187
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:187
  T10 = &KPfalseVKi;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:187
  MV_SET_COUNT(0);
  return(T10);
}

D KmakeVKdMdfmc_macro_expanderM12I (D class_, D initargs_, D template_) {
  D T4;
  D T5_0;
  D T6;
  D T7;
  D T8;
  D T9;
  D T10_0;
  _KLsimple_object_vectorGVKd_1 T11 = {&KLsimple_object_vectorGVKdW, (D) 5};
  D T12_0;
  D T13_0;
  D T14_0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:198
  T8 = primitive_copy_vector(initargs_);
  T6 = primitive_next_methods_parameter();
  T7 = MAKE_CLOSURE_INITD(&Kanonymous_of_makeF70, 3, T8, T6, class_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:198
  T9 = KmemberQVKdMM2I(&KJformat_arguments_, T8, &KPempty_vectorVKi, &KEEVKd);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:198
  if (T9 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:198
    T10_0 = APPLY2(T7, class_, T8);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:198
    T13_0 = T10_0;
    {
      MV_CHECK_TYPE_PROLOGUE(T10_0);
      primitive_type_check(T13_0, &KLunexpected_end_of_template_errorGVdfmc_macro_expander);
      MV_CHECK_TYPE_EPILOGUE();
    }
    T5_0 = T13_0;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:198
    T11.vector_element_[0] = template_;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:198
    T4 = KlistVKdI(&T11);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:198
    T12_0 = APPLY4(T7, class_, &KJformat_arguments_, T4, T8);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:198
    T14_0 = T12_0;
    {
      MV_CHECK_TYPE_PROLOGUE(T12_0);
      primitive_type_check(T14_0, &KLunexpected_end_of_template_errorGVdfmc_macro_expander);
      MV_CHECK_TYPE_EPILOGUE();
    }
    T5_0 = T14_0;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:198
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:198
  MV_SET_COUNT(1);
  return(T5_0);
}

D Kconvert_condition_slots_to_ppmlVdfmc_conditionsMdfmc_macro_expanderM13I (D Pc_) {
  D T2;
  D T3;
  D T4;
  D T5;
  D T6;
  D T7;
  D T8;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:198
  T3 = primitive_next_methods_parameter();
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:198
  T4 = SLOT_VALUE_INITD(Pc_, 7);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:198
  CONGRUENT_CALL_PROLOG(&KasVKd, 2);
  T2 = CONGRUENT_CALL2(&KLppmlGVppml, T4);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:198
  SLOT_VALUE_SETTER(T2, Pc_, 7);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:198
  T5 = primitive_idQ(T3,&KPempty_listVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:198
  if (T5 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:198
    KerrorVKdMM1I(&K65, &KPempty_vectorVKi);
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:198
    T6 = SLOT_VALUE_INITD(T3, 0);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:198
    T7 = SLOT_VALUE_INITD(T3, 1);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:198
    MEP_CALL_PROLOG(T6, T7, 1);
    MEP_CALL1(T6, Pc_);
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:198
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:198
  T8 = &KPfalseVKi;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:198
  MV_SET_COUNT(0);
  return(T8);
}

D Kparse_constraintVdfmc_macro_expanderMM0I (D constraint_start_, D tokens_) {
  volatile D T3;
  volatile D returnPexit_7_;
  volatile D T5;
  volatile D retryPexit_8_;
  volatile D T7;
  volatile D form_;
  volatile D T9;
  volatile D T10;
  volatile D T11_0;
  volatile D T11_1;
  volatile D T11_2;
  volatile D token_stack_;
  volatile D T13;
  volatile D nesting_stack_;
  volatile D limit_;
  volatile D T16;
  volatile D count_;
  volatile D T18;
  volatile D T19;
  volatile _KLsimple_object_vectorGVKd_3 T20 = {&KLsimple_object_vectorGVKdW, (D) 13};
  volatile D T21;
  volatile D T22;
  volatile _KLsimple_object_vectorGVKd_3 T23 = {&KLsimple_object_vectorGVKdW, (D) 13};
  volatile D T24;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:9
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:12
  T19 = primitive_object_allocate_filled(3,&KLpairGVKdW,2,&KPunboundVKi,0,0,&KPunboundVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:12
  SLOT_VALUE_SETTER(constraint_start_, T19, 0);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:12
  SLOT_VALUE_SETTER(tokens_, T19, 1);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:13
  token_stack_ = MAKE_D_CELL(T19);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:14
  nesting_stack_ = MAKE_D_CELL(&KPempty_listVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:19
  limit_ = MAKE_D_CELL((D) -3);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:20
  count_ = MAKE_D_CELL((D) 1);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:21
  T3 = MAKE_CLOSURE_INITD(&KlexerF62, 4, count_, limit_, nesting_stack_, token_stack_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:49
  ENTER_EXIT_FRAME(returnPexit_7_);
  if (nlx_setjmp(FRAME_DEST(returnPexit_7_))) {
    T11_0 = FRAME_RETVAL(returnPexit_7_);
    T11_1 = MV_GET_ELT(1);
    T11_2 = MV_GET_ELT(2);
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:50
  L0: ;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:51
      ENTER_EXIT_FRAME(retryPexit_8_);
      if (nlx_setjmp(FRAME_DEST(retryPexit_8_))) {
      } else {
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:51
        T7 = MAKE_CLOSURE_INITD(&KretryF61, 1, retryPexit_8_);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:52
        SET_D_CELL_VAL(token_stack_, T19);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:53
        SET_D_CELL_VAL(nesting_stack_, &KPempty_listVKi);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:54
        SET_D_CELL_VAL(count_, (D) 1);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:55
        form_ = Kre_read_fragmentsVdfmc_readerI(T3, &KPempty_vectorVKi, T7);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:56
        T13 = GET_D_CELL_VAL(token_stack_);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:56
        T20.vector_element_[0] = &KPfalseVKi;
        T20.vector_element_[1] = T13;
        T20.vector_element_[2] = form_;
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:56
        T21 = MV_SET_REST_AT(&T20, 0);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:56
        NLX(returnPexit_7_, T21);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:51
        /* invalidate retryPexit_8_ */
      }
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:61
      T16 = GET_D_CELL_VAL(limit_);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:61
      T22 = primitive_idQ(T16,(D) 1);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:61
      if (T22 != &KPfalseVKi) {
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:62
        T23.vector_element_[0] = &KPtrueVKi;
        T23.vector_element_[1] = &KPfalseVKi;
        T23.vector_element_[2] = &KPfalseVKi;
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:49
        T24 = MV_SET_REST_AT(&T23, 0);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:49
        NLX(returnPexit_7_, T24);
      } else {
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:65
        T18 = GET_D_CELL_VAL(count_);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:65
        CONGRUENT_CALL_PROLOG(&K_VKd, 2);
        T9 = CONGRUENT_CALL2(T18, (D) 5);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:65
        SET_D_CELL_VAL(limit_, T9);
      }
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:61
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:50
      goto L0;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:50
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:50
    T10 = &KPfalseVKi;
    MV_SET_COUNT(0);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:49
  T11_0 = T10;
  T11_1 = MV_GET_ELT(1);
  T11_2 = MV_GET_ELT(2);
    /* invalidate returnPexit_7_ */
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:49
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:9
  MV_SET_ELT(1, T11_1);
  MV_SET_ELT(2, T11_2);
  MV_SET_COUNT(3);
  return(T11_0);
}

D Kparse_bounded_constraintVdfmc_macro_expanderMM0I (D constraint_start_, D tokens_, D stopQ_, D stop_arg_) {
  volatile D T5;
  volatile D returnPexit_9_;
  volatile D T7;
  volatile D retryPexit_10_;
  volatile D T9;
  volatile D form_;
  volatile D T11;
  volatile D T12;
  volatile D T13_0;
  volatile D T13_1;
  volatile D T13_2;
  volatile D T14_0;
  volatile D T14_1;
  volatile D T14_2;
  volatile D token_stack_;
  volatile D T16;
  volatile D nesting_stack_;
  volatile D limit_;
  volatile D T19;
  volatile D count_;
  volatile D T21;
  volatile D T22;
  volatile _KLsimple_object_vectorGVKd_3 T23 = {&KLsimple_object_vectorGVKdW, (D) 13};
  volatile D T24;
  volatile D T25;
  volatile _KLsimple_object_vectorGVKd_3 T26 = {&KLsimple_object_vectorGVKdW, (D) 13};
  volatile D T27;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:73
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:77
  T22 = primitive_object_allocate_filled(3,&KLpairGVKdW,2,&KPunboundVKi,0,0,&KPunboundVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:77
  SLOT_VALUE_SETTER(constraint_start_, T22, 0);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:77
  SLOT_VALUE_SETTER(tokens_, T22, 1);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:78
  token_stack_ = MAKE_D_CELL(T22);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:79
  nesting_stack_ = MAKE_D_CELL(&KPempty_listVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:84
  limit_ = MAKE_D_CELL((D) -3);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:85
  count_ = MAKE_D_CELL((D) 1);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:86
  T5 = MAKE_CLOSURE_INITD(&KlexerF56, 6, count_, limit_, nesting_stack_, token_stack_, stop_arg_, stopQ_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:118
  ENTER_EXIT_FRAME(returnPexit_9_);
  if (nlx_setjmp(FRAME_DEST(returnPexit_9_))) {
    T13_0 = FRAME_RETVAL(returnPexit_9_);
    T13_1 = MV_GET_ELT(1);
    T13_2 = MV_GET_ELT(2);
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:119
  L0: ;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:120
      ENTER_EXIT_FRAME(retryPexit_10_);
      if (nlx_setjmp(FRAME_DEST(retryPexit_10_))) {
      } else {
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:120
        T9 = MAKE_CLOSURE_INITD(&KretryF54, 1, retryPexit_10_);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:121
        SET_D_CELL_VAL(token_stack_, T22);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:122
        SET_D_CELL_VAL(nesting_stack_, &KPempty_listVKi);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:123
        SET_D_CELL_VAL(count_, (D) 1);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:124
        form_ = Kre_read_fragmentsVdfmc_readerI(T5, &KPempty_vectorVKi, T9);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:125
        T16 = GET_D_CELL_VAL(token_stack_);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:125
        T23.vector_element_[0] = &KPfalseVKi;
        T23.vector_element_[1] = T16;
        T23.vector_element_[2] = form_;
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:125
        T24 = MV_SET_REST_AT(&T23, 0);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:125
        NLX(returnPexit_9_, T24);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:120
        /* invalidate retryPexit_10_ */
      }
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:130
      T19 = GET_D_CELL_VAL(limit_);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:130
      T25 = primitive_idQ(T19,(D) 1);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:130
      if (T25 != &KPfalseVKi) {
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:131
        T26.vector_element_[0] = &KPtrueVKi;
        T26.vector_element_[1] = &KPfalseVKi;
        T26.vector_element_[2] = &KPfalseVKi;
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:118
        T27 = MV_SET_REST_AT(&T26, 0);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:118
        NLX(returnPexit_9_, T27);
      } else {
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:134
        T21 = GET_D_CELL_VAL(count_);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:134
        CONGRUENT_CALL_PROLOG(&K_VKd, 2);
        T11 = CONGRUENT_CALL2(T21, (D) 5);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:134
        SET_D_CELL_VAL(limit_, T11);
      }
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:130
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:119
      goto L0;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:119
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:119
    T12 = &KPfalseVKi;
    MV_SET_COUNT(0);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:118
  T13_0 = T12;
  T13_1 = MV_GET_ELT(1);
  T13_2 = MV_GET_ELT(2);
    /* invalidate returnPexit_9_ */
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:118
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:73
  T14_0 = T13_0;
  T14_1 = T13_1;
  T14_2 = T13_2;
  {
    MV_CHECK_TYPE_PROLOGUE(T13_0);
    primitive_type_check(T14_0, &KLobjectGVKd);
    primitive_type_check(T14_1, &K44);
    primitive_type_check(T14_2, &KLobjectGVKd);
    MV_CHECK_TYPE_EPILOGUE();
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:73
  MV_SET_ELT(1, T14_1);
  MV_SET_ELT(2, T14_2);
  MV_SET_COUNT(3);
  return(T14_0);
}

D Kparse_bounded_constraint_no_backtrackingVdfmc_macro_expanderMM0I (D constraint_start_, D tokens_, D stopQ_, D stop_arg_) {
  D T5;
  D form_;
  D T7_0;
  D T7_1;
  D T7_2;
  D token_stack_;
  D T9;
  D nesting_stack_;
  D T11;
  D T12_0;
  D T12_1;
  D T12_2;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:140
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:144
  T11 = primitive_object_allocate_filled(3,&KLpairGVKdW,2,&KPunboundVKi,0,0,&KPunboundVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:144
  SLOT_VALUE_SETTER(constraint_start_, T11, 0);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:144
  SLOT_VALUE_SETTER(tokens_, T11, 1);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:145
  token_stack_ = MAKE_D_CELL(T11);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:146
  nesting_stack_ = MAKE_D_CELL(&KPempty_listVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:151
  T5 = MAKE_CLOSURE_INITD(&KlexerF46, 4, nesting_stack_, token_stack_, stop_arg_, stopQ_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:178
  SET_D_CELL_VAL(token_stack_, T11);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:179
  SET_D_CELL_VAL(nesting_stack_, &KPempty_listVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:180
  form_ = Kre_read_fragmentsVdfmc_readerI(T5, &KPempty_vectorVKi, &Kparser_error_handlerVdfmc_reader);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:181
  T9 = GET_D_CELL_VAL(token_stack_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:181
  T12_0 = &KPfalseVKi;
  T12_1 = T9;
  T12_2 = form_;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:140
  T7_0 = T12_0;
  T7_1 = T12_1;
  T7_2 = T12_2;
  {
    MV_CHECK_TYPE_PROLOGUE(T12_0);
    primitive_type_check(T7_0, &KLobjectGVKd);
    primitive_type_check(T7_1, &K44);
    primitive_type_check(T7_2, &KLobjectGVKd);
    MV_CHECK_TYPE_EPILOGUE();
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:140
  MV_SET_ELT(1, T7_1);
  MV_SET_ELT(2, T7_2);
  MV_SET_COUNT(3);
  return(T7_0);
}

D Kparse_template_fragments_asVdfmc_macro_expanderMM0I (D constraint_start_, D fT_) {
  D T3;
  D T4;
  D T5;
  D input_cursor_;
  D nesting_stack_;
  D T8;
  D T9_0;
  D T9_1;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:208
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:211
  T8 = primitive_object_allocate_filled(3,&KLpairGVKdW,2,&KPunboundVKi,0,0,&KPunboundVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:211
  SLOT_VALUE_SETTER(constraint_start_, T8, 0);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:211
  SLOT_VALUE_SETTER(fT_, T8, 1);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:211
  input_cursor_ = MAKE_D_CELL(T8);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:212
  nesting_stack_ = MAKE_D_CELL(&KPempty_listVKi);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:213
  T3 = MAKE_CLOSURE(&KlexerF37, 3);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:213
  INIT_CLOSURE(T3, 3, nesting_stack_, input_cursor_, T3);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:250
  T4 = MAKE_CLOSURE_INITD(&Kerror_handlerF30, 1, fT_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:263
  T5 = Kre_read_fragmentsVdfmc_readerI(T3, &KPempty_vectorVKi, T4);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:263
  T9_0 = &KPfalseVKi;
  T9_1 = T5;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:208
  MV_SET_ELT(1, T9_1);
  MV_SET_COUNT(2);
  return(T9_0);
}

static D KlexerF37I () {
  D T0;
  D T1;
  D T2_0;
  D closeStokens_;
  D T4;
  D T5;
  D close_;
  D T7_0;
  D T8_0;
  D T9_0;
  D T10_0;
  D next_input_;
  D T12;
  D T13_0;
  D T14_0;
  D T15_0;
  D T16_0;
  D T17_0;
  D T18_0;
  D T19;
  D T20;
  D T21;
  D T22;
  D T23;
  D T24;
  D T25;
  D T26;
  D T27;
  D T28;
  D T29;
  D T30;
  D T31;
  D T32;
  D T33;
  D T34;
  D T35;
  D T36;
  D T37;
  D T38;
  D T39;
  D T40;
  D T41;
  D T42;
  D T43;
  D T44;
  D T45;
  D T46;
  D T47;
  D T48;
  D T49;
  D T50;
  D T51;
  D T52;
  D T53;
  D T54_0;
  D T55_0;
  D T56_0;
  D T57_0;
  D T58_0;
  D T59_0;
  D T60_0;
  D T61_0;
  CAPTURE_ENVIRONMENT

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:213
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:238
L0: ;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:214
    T25 = GET_D_CELL_VAL(CREF(1));
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:214
    CONGRUENT_CALL_PROLOG(&KemptyQVKd, 1);
    T0 = CONGRUENT_CALL1(T25);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:214
    if (T0 != &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:215
      T32 = GET_D_CELL_VAL(CREF(0));
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:215
      CONGRUENT_CALL_PROLOG(&KemptyQVKd, 1);
      T1 = CONGRUENT_CALL1(T32);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:215
      if (T1 != &KPfalseVKi) {
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:216
        T2_0 = Dend_constraintVdfmc_reader;
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:216
        T60_0 = T2_0;
        {
          MV_CHECK_TYPE_PROLOGUE(T2_0);
          primitive_type_check(T60_0, &KLfragmentGVdfmc_reader);
          MV_CHECK_TYPE_EPILOGUE();
        }
        T10_0 = T60_0;
      } else {
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:218
        T31 = GET_D_CELL_VAL(CREF(0));
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:218
        closeStokens_ = CALL1(&KheadVKd, T31);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:219
        T30 = GET_D_CELL_VAL(CREF(0));
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:219
        T4 = CALL1(&KtailVKd, T30);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:219
        SET_D_CELL_VAL(CREF(0), T4);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:220
        T5 = CALL1(&KtailVKd, closeStokens_);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:220
        SET_D_CELL_VAL(CREF(1), T5);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:221
        close_ = CALL1(&KheadVKd, closeStokens_);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:222
        if (close_ != &KPfalseVKi) {
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:222
          T7_0 = close_;
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:222
          T61_0 = T7_0;
          {
            MV_CHECK_TYPE_PROLOGUE(T7_0);
            primitive_type_check(T61_0, &KLfragmentGVdfmc_reader);
            MV_CHECK_TYPE_EPILOGUE();
          }
          T9_0 = T61_0;
        } else {
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:222
          get_teb()->function = CREF(2);
          T8_0 = KlexerF37I();
          T9_0 = T8_0;
        }
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:222
        T10_0 = T9_0;
      }
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:215
      T18_0 = T10_0;
    } else {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:225
      T24 = GET_D_CELL_VAL(CREF(1));
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:225
      next_input_ = CALL1(&KheadVKd, T24);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:226
      T23 = GET_D_CELL_VAL(CREF(1));
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:226
      T12 = CALL1(&KtailVKd, T23);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:226
      SET_D_CELL_VAL(CREF(1), T12);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:227
      T37 = primitive_instanceQ(next_input_,&KLtemplateGVdfmc_reader);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:227
      if (T37 != &KPfalseVKi) {
        T33 = next_input_;
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:228
        T22 = GET_D_CELL_VAL(CREF(1));
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:228
        T38 = primitive_object_allocate_filled(3,&KLpairGVKdW,2,&KPunboundVKi,0,0,&KPunboundVKi);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:228
        SLOT_VALUE_SETTER(&KPfalseVKi, T38, 0);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:228
        SLOT_VALUE_SETTER(T22, T38, 1);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:228
        T29 = GET_D_CELL_VAL(CREF(0));
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:228
        T39 = primitive_object_allocate_filled(3,&KLpairGVKdW,2,&KPunboundVKi,0,0,&KPunboundVKi);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:228
        SLOT_VALUE_SETTER(T38, T39, 0);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:228
        SLOT_VALUE_SETTER(T29, T39, 1);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:228
        SET_D_CELL_VAL(CREF(0), T39);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:229
        T40 = SLOT_VALUE_INITD(T33, 0);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:229
        SET_D_CELL_VAL(CREF(1), T40);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:230
        goto L0;
        T17_0 = T59_0;
      } else {
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:231
        T41 = primitive_instanceQ(next_input_,&KLlistGVKd);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:227
        if (T41 != &KPfalseVKi) {
          T34 = next_input_;
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:232
          T21 = GET_D_CELL_VAL(CREF(1));
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:232
          T42 = primitive_object_allocate_filled(3,&KLpairGVKdW,2,&KPunboundVKi,0,0,&KPunboundVKi);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:232
          SLOT_VALUE_SETTER(&KPfalseVKi, T42, 0);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:232
          SLOT_VALUE_SETTER(T21, T42, 1);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:232
          T28 = GET_D_CELL_VAL(CREF(0));
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:232
          T43 = primitive_object_allocate_filled(3,&KLpairGVKdW,2,&KPunboundVKi,0,0,&KPunboundVKi);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:232
          SLOT_VALUE_SETTER(T42, T43, 0);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:232
          SLOT_VALUE_SETTER(T28, T43, 1);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:232
          SET_D_CELL_VAL(CREF(0), T43);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:233
          SET_D_CELL_VAL(CREF(1), T34);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:234
          goto L0;
          T16_0 = T58_0;
        } else {
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:235
          T44 = primitive_instanceQ(next_input_,&KLsequence_fragmentGVdfmc_reader);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:227
          if (T44 != &KPfalseVKi) {
            T35 = next_input_;
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:236
            T20 = GET_D_CELL_VAL(CREF(1));
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:236
            T45 = primitive_object_allocate_filled(3,&KLpairGVKdW,2,&KPunboundVKi,0,0,&KPunboundVKi);
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:236
            SLOT_VALUE_SETTER(&KPfalseVKi, T45, 0);
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:236
            SLOT_VALUE_SETTER(T20, T45, 1);
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:236
            T27 = GET_D_CELL_VAL(CREF(0));
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:236
            T46 = primitive_object_allocate_filled(3,&KLpairGVKdW,2,&KPunboundVKi,0,0,&KPunboundVKi);
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:236
            SLOT_VALUE_SETTER(T45, T46, 0);
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:236
            SLOT_VALUE_SETTER(T27, T46, 1);
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:236
            SET_D_CELL_VAL(CREF(0), T46);
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:237
            T47 = SLOT_VALUE_INITD(T35, 2);
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:237
            SET_D_CELL_VAL(CREF(1), T47);
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:238
            goto L0;
            T15_0 = T57_0;
          } else {
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:239
            T48 = primitive_instanceQ(next_input_,&KLnested_fragmentGVdfmc_reader);
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:227
            if (T48 != &KPfalseVKi) {
              T36 = next_input_;
              // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:241
              T49 = SLOT_VALUE_INITD(T36, 4);
              // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:241
              T19 = GET_D_CELL_VAL(CREF(1));
              // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:241
              T50 = primitive_object_allocate_filled(3,&KLpairGVKdW,2,&KPunboundVKi,0,0,&KPunboundVKi);
              // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:241
              SLOT_VALUE_SETTER(T49, T50, 0);
              // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:241
              SLOT_VALUE_SETTER(T19, T50, 1);
              // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:241
              T26 = GET_D_CELL_VAL(CREF(0));
              // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:241
              T51 = primitive_object_allocate_filled(3,&KLpairGVKdW,2,&KPunboundVKi,0,0,&KPunboundVKi);
              // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:241
              SLOT_VALUE_SETTER(T50, T51, 0);
              // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:241
              SLOT_VALUE_SETTER(T26, T51, 1);
              // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:240
              SET_D_CELL_VAL(CREF(0), T51);
              // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:243
              T52 = SLOT_VALUE_INITD(T36, 3);
              // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:243
              SET_D_CELL_VAL(CREF(1), T52);
              // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:244
              T53 = SLOT_VALUE_INITD(T36, 2);
              // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:244
              T54_0 = T53;
              // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:244
              T55_0 = T54_0;
              {
                MV_CHECK_TYPE_PROLOGUE(T54_0);
                primitive_type_check(T55_0, &KLfragmentGVdfmc_reader);
                MV_CHECK_TYPE_EPILOGUE();
              }
              T14_0 = T55_0;
            } else {
              // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:246
              T13_0 = next_input_;
              // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:246
              T56_0 = T13_0;
              {
                MV_CHECK_TYPE_PROLOGUE(T13_0);
                primitive_type_check(T56_0, &KLfragmentGVdfmc_reader);
                MV_CHECK_TYPE_EPILOGUE();
              }
              T14_0 = T56_0;
            }
            // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:227
            T15_0 = T14_0;
          }
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:227
          T16_0 = T15_0;
        }
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:227
        T17_0 = T16_0;
      }
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:227
      T18_0 = T17_0;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:214
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:238
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:213
  MV_SET_COUNT(1);
  return(T18_0);
}

static D Kerror_handlerF30I (D token_type_, D fragment_, D history_) {
  D T3;
  D T4;
  D T5;
  D T6;
  D T7;
  D T8;
  D T9;
  D T10;
  D T11_0;
  _KLsimple_object_vectorGVKd_2 T12 = {&KLsimple_object_vectorGVKdW, (D) 9};
  _KLsimple_object_vectorGVKd_4 T13 = {&KLsimple_object_vectorGVKdW, (D) 17};
  D T14;
  D T15_0;
  _KLsimple_object_vectorGVKd_2 T16 = {&KLsimple_object_vectorGVKdW, (D) 9};
  _KLsimple_object_vectorGVKd_6 T17 = {&KLsimple_object_vectorGVKdW, (D) 25};
  CAPTURE_ENVIRONMENT

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:250
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:251
  T3 = KEEVKdI(fragment_, Dend_constraintVdfmc_reader);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:251
  if (T3 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:253
    T9 = KlastVKdMM1I(CREF(0), &KPempty_vectorVKi, &Kunsupplied_objectVKi);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:253
    CONGRUENT_CALL_PROLOG(&Kfragment_source_locationVdfmc_reader, 1);
    T4 = CONGRUENT_CALL1(T9);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:254
    T12.vector_element_[0] = IKJfragments_;
    T12.vector_element_[1] = CREF(0);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:254
    T11_0 = KLtemplateGZ32ZconstructorVdfmc_readerMM0I(&KLtemplateGVdfmc_reader, &T12, CREF(0));
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:254
    T10 = T11_0;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:252
    T13.vector_element_[0] = IKJsource_location_;
    T13.vector_element_[1] = T4;
    T13.vector_element_[2] = IKJtemplate_;
    T13.vector_element_[3] = T10;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:252
    CONGRUENT_CALL_PROLOG(&KnoteVdfmc_conditions, 2);
    T5 = CONGRUENT_CALL2(&KLunexpected_end_of_template_errorGVdfmc_macro_expander, &T13);
    T8 = T5;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:257
    CONGRUENT_CALL_PROLOG(&Kfragment_source_locationVdfmc_reader, 1);
    T6 = CONGRUENT_CALL1(fragment_);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:259
    T16.vector_element_[0] = IKJfragments_;
    T16.vector_element_[1] = CREF(0);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:259
    T15_0 = KLtemplateGZ32ZconstructorVdfmc_readerMM0I(&KLtemplateGVdfmc_reader, &T16, CREF(0));
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:259
    T14 = T15_0;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:256
    T17.vector_element_[0] = IKJsource_location_;
    T17.vector_element_[1] = T6;
    T17.vector_element_[2] = &KJtoken_;
    T17.vector_element_[3] = fragment_;
    T17.vector_element_[4] = IKJtemplate_;
    T17.vector_element_[5] = T14;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:256
    CONGRUENT_CALL_PROLOG(&KnoteVdfmc_conditions, 2);
    T7 = CONGRUENT_CALL2(&KLtemplate_parser_errorGVdfmc_macro_expander, &T17);
    T8 = T7;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:251
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:250
  return(T8);
}

static D KlexerF46I () {
  D T0;
  D T1;
  D T2_0;
  D closeStokens_;
  D T4;
  D T5;
  D T6_0;
  D T7_0;
  D next_token_;
  D T9;
  D T10;
  D T11;
  D T12_0;
  D T13;
  D T14_0;
  D T15_0;
  D T16_0;
  D T17_0;
  D T18_0;
  D T19_0;
  D T20;
  D T21;
  D T22;
  D T23;
  D T24;
  D T25;
  D T26;
  D T27;
  D T28;
  D T29;
  D T30;
  D T31;
  D T32;
  D T33;
  D T34;
  D T35;
  D T36;
  D T37_0;
  D T38;
  CAPTURE_ENVIRONMENT

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:151
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:152
  T24 = GET_D_CELL_VAL(CREF(1));
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:152
  CONGRUENT_CALL_PROLOG(&KemptyQVKd, 1);
  T0 = CONGRUENT_CALL1(T24);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:152
  if (T0 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:153
    T29 = GET_D_CELL_VAL(CREF(0));
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:153
    CONGRUENT_CALL_PROLOG(&KemptyQVKd, 1);
    T1 = CONGRUENT_CALL1(T29);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:153
    if (T1 != &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:154
      T2_0 = Dend_constraintVdfmc_reader;
      T7_0 = T2_0;
    } else {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:156
      T28 = GET_D_CELL_VAL(CREF(0));
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:156
      closeStokens_ = CALL1(&KheadVKd, T28);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:157
      T27 = GET_D_CELL_VAL(CREF(0));
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:157
      T4 = CALL1(&KtailVKd, T27);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:157
      SET_D_CELL_VAL(CREF(0), T4);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:158
      T5 = CALL1(&KtailVKd, closeStokens_);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:158
      SET_D_CELL_VAL(CREF(1), T5);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:159
      T6_0 = CALL1(&KheadVKd, closeStokens_);
      T7_0 = T6_0;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:153
    T17_0 = T7_0;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:162
    T23 = GET_D_CELL_VAL(CREF(1));
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:162
    next_token_ = CALL1(&KheadVKd, T23);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:163
    T31 = primitive_instanceQ(next_token_,&KLnested_fragmentGVdfmc_reader);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:163
    if (T31 != &KPfalseVKi) {
      T30 = next_token_;
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:164
      T22 = GET_D_CELL_VAL(CREF(1));
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:164
      T9 = CALL1(&KtailVKd, T22);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:164
      SET_D_CELL_VAL(CREF(1), T9);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:166
      T32 = SLOT_VALUE_INITD(T30, 4);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:166
      T21 = GET_D_CELL_VAL(CREF(1));
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:166
      T33 = primitive_object_allocate_filled(3,&KLpairGVKdW,2,&KPunboundVKi,0,0,&KPunboundVKi);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:166
      SLOT_VALUE_SETTER(T32, T33, 0);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:166
      SLOT_VALUE_SETTER(T21, T33, 1);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:166
      T26 = GET_D_CELL_VAL(CREF(0));
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:166
      T34 = primitive_object_allocate_filled(3,&KLpairGVKdW,2,&KPunboundVKi,0,0,&KPunboundVKi);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:166
      SLOT_VALUE_SETTER(T33, T34, 0);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:166
      SLOT_VALUE_SETTER(T26, T34, 1);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:165
      SET_D_CELL_VAL(CREF(0), T34);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:168
      T35 = SLOT_VALUE_INITD(T30, 3);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:168
      SET_D_CELL_VAL(CREF(1), T35);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:169
      T36 = SLOT_VALUE_INITD(T30, 2);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:169
      T37_0 = T36;
      T16_0 = T37_0;
    } else {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:170
      T25 = GET_D_CELL_VAL(CREF(0));
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:170
      T38 = primitive_idQ(T25,&KPempty_listVKi);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:170
      if (T38 != &KPfalseVKi) {
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:170
        T10 = CALL2(CREF(3), next_token_, CREF(2));
        T11 = T10;
      } else {
        T11 = &KPfalseVKi;
      }
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:170
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:163
      if (T11 != &KPfalseVKi) {
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:171
        T12_0 = Dend_constraintVdfmc_reader;
        T15_0 = T12_0;
      } else {
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:173
        T20 = GET_D_CELL_VAL(CREF(1));
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:173
        T13 = CALL1(&KtailVKd, T20);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:173
        SET_D_CELL_VAL(CREF(1), T13);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:174
        T14_0 = next_token_;
        T15_0 = T14_0;
      }
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:163
      T16_0 = T15_0;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:163
    T17_0 = T16_0;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:152
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:151
  T18_0 = T17_0;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:151
  T19_0 = T18_0;
  {
    MV_CHECK_TYPE_PROLOGUE(T18_0);
    primitive_type_check(T19_0, &KLfragmentGVdfmc_reader);
    MV_CHECK_TYPE_EPILOGUE();
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:151
  MV_SET_COUNT(1);
  return(T19_0);
}

static D KlexerF56I () {
  D T0;
  D T1_0;
  D T2;
  D T3;
  D T4_0;
  D closeStokens_;
  D T6;
  D T7;
  D T8;
  D T9_0;
  D T10_0;
  D next_token_;
  D T12;
  D T13;
  D T14;
  D T15;
  D T16_0;
  D T17;
  D T18;
  D T19_0;
  D T20_0;
  D T21_0;
  D T22_0;
  D T23_0;
  D T24_0;
  D T25_0;
  D T26;
  D T27;
  D T28;
  D T29;
  D T30;
  D T31;
  D T32;
  D T33;
  D T34;
  D T35;
  D T36;
  D T37;
  D T38;
  D T39;
  D T40;
  D T41;
  D T42;
  D T43;
  D T44;
  D T45;
  D T46;
  D T47;
  D T48_0;
  D T49;
  CAPTURE_ENVIRONMENT

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:86
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:87
  T36 = GET_D_CELL_VAL(CREF(1));
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:87
  T40 = GET_D_CELL_VAL(CREF(0));
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:87
  T0 = KEEVKdI(T40, T36);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:87
  if (T0 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:88
    T1_0 = Dend_constraintVdfmc_reader;
    T23_0 = T1_0;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:89
    T30 = GET_D_CELL_VAL(CREF(3));
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:89
    CONGRUENT_CALL_PROLOG(&KemptyQVKd, 1);
    T2 = CONGRUENT_CALL1(T30);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:87
    if (T2 != &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:90
      T35 = GET_D_CELL_VAL(CREF(2));
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:90
      CONGRUENT_CALL_PROLOG(&KemptyQVKd, 1);
      T3 = CONGRUENT_CALL1(T35);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:90
      if (T3 != &KPfalseVKi) {
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:91
        T4_0 = Dend_constraintVdfmc_reader;
        T10_0 = T4_0;
      } else {
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:93
        T34 = GET_D_CELL_VAL(CREF(2));
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:93
        closeStokens_ = CALL1(&KheadVKd, T34);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:94
        T33 = GET_D_CELL_VAL(CREF(2));
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:94
        T6 = CALL1(&KtailVKd, T33);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:94
        SET_D_CELL_VAL(CREF(2), T6);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:95
        T7 = CALL1(&KtailVKd, closeStokens_);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:95
        SET_D_CELL_VAL(CREF(3), T7);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:96
        T39 = GET_D_CELL_VAL(CREF(0));
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:96
        CONGRUENT_CALL_PROLOG(&KAVKd, 2);
        T8 = CONGRUENT_CALL2(T39, (D) 5);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:96
        SET_D_CELL_VAL(CREF(0), T8);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:97
        T9_0 = CALL1(&KheadVKd, closeStokens_);
        T10_0 = T9_0;
      }
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:90
      T22_0 = T10_0;
    } else {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:100
      T29 = GET_D_CELL_VAL(CREF(3));
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:100
      next_token_ = CALL1(&KheadVKd, T29);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:101
      T42 = primitive_instanceQ(next_token_,&KLnested_fragmentGVdfmc_reader);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:101
      if (T42 != &KPfalseVKi) {
        T41 = next_token_;
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:102
        T28 = GET_D_CELL_VAL(CREF(3));
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:102
        T12 = CALL1(&KtailVKd, T28);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:102
        SET_D_CELL_VAL(CREF(3), T12);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:103
        T38 = GET_D_CELL_VAL(CREF(0));
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:103
        CONGRUENT_CALL_PROLOG(&KAVKd, 2);
        T13 = CONGRUENT_CALL2(T38, (D) 5);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:103
        SET_D_CELL_VAL(CREF(0), T13);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:105
        T43 = SLOT_VALUE_INITD(T41, 4);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:105
        T27 = GET_D_CELL_VAL(CREF(3));
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:105
        T44 = primitive_object_allocate_filled(3,&KLpairGVKdW,2,&KPunboundVKi,0,0,&KPunboundVKi);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:105
        SLOT_VALUE_SETTER(T43, T44, 0);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:105
        SLOT_VALUE_SETTER(T27, T44, 1);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:105
        T32 = GET_D_CELL_VAL(CREF(2));
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:105
        T45 = primitive_object_allocate_filled(3,&KLpairGVKdW,2,&KPunboundVKi,0,0,&KPunboundVKi);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:105
        SLOT_VALUE_SETTER(T44, T45, 0);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:105
        SLOT_VALUE_SETTER(T32, T45, 1);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:104
        SET_D_CELL_VAL(CREF(2), T45);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:107
        T46 = SLOT_VALUE_INITD(T41, 3);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:107
        SET_D_CELL_VAL(CREF(3), T46);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:108
        T47 = SLOT_VALUE_INITD(T41, 2);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:108
        T48_0 = T47;
        T21_0 = T48_0;
      } else {
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:109
        T31 = GET_D_CELL_VAL(CREF(2));
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:109
        T49 = primitive_idQ(T31,&KPempty_listVKi);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:109
        if (T49 != &KPfalseVKi) {
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:109
          T14 = CALL2(CREF(5), next_token_, CREF(4));
          T15 = T14;
        } else {
          T15 = &KPfalseVKi;
        }
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:109
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:101
        if (T15 != &KPfalseVKi) {
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:110
          T16_0 = Dend_constraintVdfmc_reader;
          T20_0 = T16_0;
        } else {
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:112
          T26 = GET_D_CELL_VAL(CREF(3));
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:112
          T17 = CALL1(&KtailVKd, T26);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:112
          SET_D_CELL_VAL(CREF(3), T17);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:113
          T37 = GET_D_CELL_VAL(CREF(0));
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:113
          CONGRUENT_CALL_PROLOG(&KAVKd, 2);
          T18 = CONGRUENT_CALL2(T37, (D) 5);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:113
          SET_D_CELL_VAL(CREF(0), T18);
          // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:114
          T19_0 = next_token_;
          T20_0 = T19_0;
        }
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:101
        T21_0 = T20_0;
      }
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:101
      T22_0 = T21_0;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:87
    T23_0 = T22_0;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:87
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:86
  T24_0 = T23_0;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:86
  T25_0 = T24_0;
  {
    MV_CHECK_TYPE_PROLOGUE(T24_0);
    primitive_type_check(T25_0, &KLfragmentGVdfmc_reader);
    MV_CHECK_TYPE_EPILOGUE();
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:86
  MV_SET_COUNT(1);
  return(T25_0);
}

static D KretryF54I (D exit_values_) {
  D T2;
  D T3;
  CAPTURE_ENVIRONMENT

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:120
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:120
  T2 = MV_SET_REST_AT(exit_values_, 0);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:120
  T3 = NLX(CREF(0), T2);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:120
  return(T3);
}

static D KlexerF62I () {
  D T0;
  D T1_0;
  D T2;
  D T3;
  D T4_0;
  D closeStokens_;
  D T6;
  D T7;
  D T8;
  D T9_0;
  D T10_0;
  D next_token_;
  D T12;
  D T13;
  D T14_0;
  D T15_0;
  D T16_0;
  D T17_0;
  D T18_0;
  D T19_0;
  D T20;
  D T21;
  D T22;
  D T23;
  D T24;
  D T25;
  D T26;
  D T27;
  D T28;
  D T29;
  D T30;
  D T31;
  D T32;
  D T33;
  D T34;
  D T35;
  D T36;
  D T37;
  D T38;
  D T39_0;
  CAPTURE_ENVIRONMENT

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:21
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:22
  T28 = GET_D_CELL_VAL(CREF(1));
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:22
  T31 = GET_D_CELL_VAL(CREF(0));
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:22
  T0 = KEEVKdI(T31, T28);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:22
  if (T0 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:23
    T1_0 = Dend_constraintVdfmc_reader;
    T17_0 = T1_0;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:24
    T23 = GET_D_CELL_VAL(CREF(3));
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:24
    CONGRUENT_CALL_PROLOG(&KemptyQVKd, 1);
    T2 = CONGRUENT_CALL1(T23);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:22
    if (T2 != &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:25
      T27 = GET_D_CELL_VAL(CREF(2));
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:25
      CONGRUENT_CALL_PROLOG(&KemptyQVKd, 1);
      T3 = CONGRUENT_CALL1(T27);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:25
      if (T3 != &KPfalseVKi) {
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:26
        T4_0 = Dend_constraintVdfmc_reader;
        T10_0 = T4_0;
      } else {
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:28
        T26 = GET_D_CELL_VAL(CREF(2));
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:28
        closeStokens_ = CALL1(&KheadVKd, T26);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:29
        T25 = GET_D_CELL_VAL(CREF(2));
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:29
        T6 = CALL1(&KtailVKd, T25);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:29
        SET_D_CELL_VAL(CREF(2), T6);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:30
        T7 = CALL1(&KtailVKd, closeStokens_);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:30
        SET_D_CELL_VAL(CREF(3), T7);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:31
        T30 = GET_D_CELL_VAL(CREF(0));
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:31
        CONGRUENT_CALL_PROLOG(&KAVKd, 2);
        T8 = CONGRUENT_CALL2(T30, (D) 5);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:31
        SET_D_CELL_VAL(CREF(0), T8);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:32
        T9_0 = CALL1(&KheadVKd, closeStokens_);
        T10_0 = T9_0;
      }
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:25
      T16_0 = T10_0;
    } else {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:35
      T22 = GET_D_CELL_VAL(CREF(3));
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:35
      next_token_ = CALL1(&KheadVKd, T22);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:36
      T21 = GET_D_CELL_VAL(CREF(3));
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:36
      T12 = CALL1(&KtailVKd, T21);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:36
      SET_D_CELL_VAL(CREF(3), T12);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:37
      T29 = GET_D_CELL_VAL(CREF(0));
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:37
      CONGRUENT_CALL_PROLOG(&KAVKd, 2);
      T13 = CONGRUENT_CALL2(T29, (D) 5);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:37
      SET_D_CELL_VAL(CREF(0), T13);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:38
      T33 = primitive_instanceQ(next_token_,&KLnested_fragmentGVdfmc_reader);
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:38
      if (T33 != &KPfalseVKi) {
        T32 = next_token_;
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:40
        T34 = SLOT_VALUE_INITD(T32, 4);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:40
        T20 = GET_D_CELL_VAL(CREF(3));
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:40
        T35 = primitive_object_allocate_filled(3,&KLpairGVKdW,2,&KPunboundVKi,0,0,&KPunboundVKi);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:40
        SLOT_VALUE_SETTER(T34, T35, 0);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:40
        SLOT_VALUE_SETTER(T20, T35, 1);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:40
        T24 = GET_D_CELL_VAL(CREF(2));
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:40
        T36 = primitive_object_allocate_filled(3,&KLpairGVKdW,2,&KPunboundVKi,0,0,&KPunboundVKi);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:40
        SLOT_VALUE_SETTER(T35, T36, 0);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:40
        SLOT_VALUE_SETTER(T24, T36, 1);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:39
        SET_D_CELL_VAL(CREF(2), T36);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:42
        T37 = SLOT_VALUE_INITD(T32, 3);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:42
        SET_D_CELL_VAL(CREF(3), T37);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:43
        T38 = SLOT_VALUE_INITD(T32, 2);
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:43
        T39_0 = T38;
        T15_0 = T39_0;
      } else {
        // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:45
        T14_0 = next_token_;
        T15_0 = T14_0;
      }
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:38
      T16_0 = T15_0;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:22
    T17_0 = T16_0;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:22
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:21
  T18_0 = T17_0;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:21
  T19_0 = T18_0;
  {
    MV_CHECK_TYPE_PROLOGUE(T18_0);
    primitive_type_check(T19_0, &KLfragmentGVdfmc_reader);
    MV_CHECK_TYPE_EPILOGUE();
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:21
  MV_SET_COUNT(1);
  return(T19_0);
}

static D KretryF61I (D exit_values_) {
  D T2;
  D T3;
  CAPTURE_ENVIRONMENT

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:51
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:51
  T2 = MV_SET_REST_AT(exit_values_, 0);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:51
  T3 = NLX(CREF(0), T2);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:51
  return(T3);
}

static D Kanonymous_of_makeF70I (D Unext_method_argsU_) {
  D T2;
  D T3;
  D T4;
  D T5;
  D T6;
  D T7;
  DWORD T8;
  D T9;
  D T10;
  D T11;
  D T12;
  D T13;
  D T14;
  CAPTURE_ENVIRONMENT

  T6 = primitive_idQ(CREF(1),&KPempty_listVKi);
  if (T6 != &KPfalseVKi) {
    T14 = KerrorVKdMM1I(&K65, &KPempty_vectorVKi);
    T5 = T14;
  } else {
    T7 = SLOT_VALUE_INITD(Unext_method_argsU_, 0);
    T8 = primitive_cast_integer_as_raw(T7);
    T9 = primitive_machine_word_equalQ(T8,1);
    if (T9 != &KPfalseVKi) {
      T10 = SLOT_VALUE_INITD(CREF(1), 0);
      T11 = SLOT_VALUE_INITD(CREF(1), 1);
      MEP_CALL_PROLOG(T10, T11, 2);
      T2 = MEP_CALL2(T10, CREF(2), CREF(0));
      T4 = T2;
    } else {
      T12 = SLOT_VALUE_INITD(CREF(1), 0);
      T13 = SLOT_VALUE_INITD(CREF(1), 1);
      T3 = MEP_APPLY1(T12, T13, Unext_method_argsU_);
      T4 = T3;
    }
    T5 = T4;
  }
  return(T5);
}

D KLunexpected_end_of_template_errorGZ32ZconstructorVdfmc_macro_expanderMM0I (D class_, D init_args_) {
  D T3;
  D T4;
  D T5_0;
  D T6;
  D init_argsF7;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:198
  T6 = primitive_copy_vector(init_args_);
  T3 = Kdefaulted_initialization_argumentsVKiI(&KLunexpected_end_of_template_errorGVdfmc_macro_expander);
  init_argsF7 = Kconcatenate_2VKeMM1I(T6, T3);
  T4 = primitive_object_allocate_filled(9,&KLunexpected_end_of_template_errorGVdfmc_macro_expanderW,8,&KPunboundVKi,0,0,&KPunboundVKi);
  APPLY2(&Kdefaulted_initializeF102, T4, init_argsF7);
  T5_0 = T4;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:198
  MV_SET_COUNT(1);
  return(T5_0);
}

static D Kdefaulted_initializeF102I (D object_, D init_args_, D Uunique_condition_format_string_, D Uunique_condition_format_arguments_, D Uunique_condition_source_location_, D Uunique_condition_program_note_creator_, D Uunique_condition_compilation_stage_, D Uunique_condition_context_id_, D Uunique_subnotes_, D Uunique_condition_template_) {
  D T11;
  D Uunique_condition_program_note_creatorF12;
  D T13;
  D Uunique_condition_compilation_stageF14;
  D T15;
  D Uunique_condition_templateF16;
  D Uunique_subnotesF17;
  D T18;
  D init_valueF19;
  D T20;
  D init_valueF21;
  D T22;
  _KLsimple_object_vectorGVKd_1 T23 = {&KLsimple_object_vectorGVKdW, (D) 5};
  D T24;
  D T25;

  T18 = primitive_idQ(Uunique_condition_program_note_creator_,&KPunboundVKi);
  if (T18 != &KPfalseVKi) {
    init_valueF19 = primitive_read_thread_variable(Tcurrent_dependentTVdfmc_common);
    T11 = init_valueF19;
    Uunique_condition_program_note_creatorF12 = T11;
  } else {
    Uunique_condition_program_note_creatorF12 = Uunique_condition_program_note_creator_;
  }
  T20 = primitive_idQ(Uunique_condition_compilation_stage_,&KPunboundVKi);
  if (T20 != &KPfalseVKi) {
    init_valueF21 = primitive_read_thread_variable(Tcurrent_stageTVdfmc_common);
    T13 = init_valueF21;
    Uunique_condition_compilation_stageF14 = T13;
  } else {
    Uunique_condition_compilation_stageF14 = Uunique_condition_compilation_stage_;
  }
  T22 = primitive_idQ(Uunique_condition_template_,&KPunboundVKi);
  if (T22 != &KPfalseVKi) {
    T23.vector_element_[0] = IKJtemplate_;
    T24 = KerrorVKdMM1I(&K103, &T23);
    T15 = T24;
    Uunique_condition_templateF16 = T15;
  } else {
    Uunique_condition_templateF16 = Uunique_condition_template_;
  }
  SLOT_VALUE_SETTER(Uunique_condition_format_string_, object_, 0);
  SLOT_VALUE_SETTER(Uunique_condition_format_arguments_, object_, 1);
  SLOT_VALUE_SETTER(Uunique_condition_source_location_, object_, 2);
  SLOT_VALUE_SETTER(Uunique_condition_program_note_creatorF12, object_, 3);
  SLOT_VALUE_SETTER(Uunique_condition_compilation_stageF14, object_, 4);
  SLOT_VALUE_SETTER(Uunique_condition_context_id_, object_, 5);
  primitive_type_check(Uunique_subnotes_, &KLsequenceGVKd);
  Uunique_subnotesF17 = Uunique_subnotes_;
  SLOT_VALUE_SETTER(Uunique_subnotesF17, object_, 6);
  SLOT_VALUE_SETTER(Uunique_condition_templateF16, object_, 7);
  T25 = APPLY2(&KinitializeVKd, object_, init_args_);
  return(T25);
}

static D Kanonymous_of_makeF121I (D Unext_method_argsU_) {
  D T2;
  D T3;
  D T4;
  D T5;
  D T6;
  D T7;
  DWORD T8;
  D T9;
  D T10;
  D T11;
  D T12;
  D T13;
  D T14;
  CAPTURE_ENVIRONMENT

  T6 = primitive_idQ(CREF(1),&KPempty_listVKi);
  if (T6 != &KPfalseVKi) {
    T14 = KerrorVKdMM1I(&K65, &KPempty_vectorVKi);
    T5 = T14;
  } else {
    T7 = SLOT_VALUE_INITD(Unext_method_argsU_, 0);
    T8 = primitive_cast_integer_as_raw(T7);
    T9 = primitive_machine_word_equalQ(T8,1);
    if (T9 != &KPfalseVKi) {
      T10 = SLOT_VALUE_INITD(CREF(1), 0);
      T11 = SLOT_VALUE_INITD(CREF(1), 1);
      MEP_CALL_PROLOG(T10, T11, 2);
      T2 = MEP_CALL2(T10, CREF(2), CREF(0));
      T4 = T2;
    } else {
      T12 = SLOT_VALUE_INITD(CREF(1), 0);
      T13 = SLOT_VALUE_INITD(CREF(1), 1);
      T3 = MEP_APPLY1(T12, T13, Unext_method_argsU_);
      T4 = T3;
    }
    T5 = T4;
  }
  return(T5);
}

D KLtemplate_parser_errorGZ32ZconstructorVdfmc_macro_expanderMM0I (D class_, D init_args_) {
  D T3;
  D T4;
  D T5_0;
  D T6;
  D init_argsF7;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:187
  T6 = primitive_copy_vector(init_args_);
  T3 = Kdefaulted_initialization_argumentsVKiI(&KLtemplate_parser_errorGVdfmc_macro_expander);
  init_argsF7 = Kconcatenate_2VKeMM1I(T6, T3);
  T4 = primitive_object_allocate_filled(10,&KLtemplate_parser_errorGVdfmc_macro_expanderW,9,&KPunboundVKi,0,0,&KPunboundVKi);
  APPLY2(&Kdefaulted_initializeF147, T4, init_argsF7);
  T5_0 = T4;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:187
  MV_SET_COUNT(1);
  return(T5_0);
}

static D Kdefaulted_initializeF147I (D object_, D init_args_, D Uunique_condition_format_string_, D Uunique_condition_format_arguments_, D Uunique_condition_source_location_, D Uunique_condition_program_note_creator_, D Uunique_condition_compilation_stage_, D Uunique_condition_context_id_, D Uunique_subnotes_, D Uunique_condition_token_, D Uunique_condition_template_) {
  D T12;
  D Uunique_condition_program_note_creatorF13;
  D T14;
  D Uunique_condition_compilation_stageF15;
  D T16;
  D Uunique_condition_tokenF17;
  D T18;
  D Uunique_condition_templateF19;
  D Uunique_subnotesF20;
  D T21;
  D init_valueF22;
  D T23;
  D init_valueF24;
  D T25;
  _KLsimple_object_vectorGVKd_1 T26 = {&KLsimple_object_vectorGVKdW, (D) 5};
  D T27;
  D T28;
  _KLsimple_object_vectorGVKd_1 T29 = {&KLsimple_object_vectorGVKdW, (D) 5};
  D T30;
  D T31;

  T21 = primitive_idQ(Uunique_condition_program_note_creator_,&KPunboundVKi);
  if (T21 != &KPfalseVKi) {
    init_valueF22 = primitive_read_thread_variable(Tcurrent_dependentTVdfmc_common);
    T12 = init_valueF22;
    Uunique_condition_program_note_creatorF13 = T12;
  } else {
    Uunique_condition_program_note_creatorF13 = Uunique_condition_program_note_creator_;
  }
  T23 = primitive_idQ(Uunique_condition_compilation_stage_,&KPunboundVKi);
  if (T23 != &KPfalseVKi) {
    init_valueF24 = primitive_read_thread_variable(Tcurrent_stageTVdfmc_common);
    T14 = init_valueF24;
    Uunique_condition_compilation_stageF15 = T14;
  } else {
    Uunique_condition_compilation_stageF15 = Uunique_condition_compilation_stage_;
  }
  T25 = primitive_idQ(Uunique_condition_token_,&KPunboundVKi);
  if (T25 != &KPfalseVKi) {
    T26.vector_element_[0] = &KJtoken_;
    T27 = KerrorVKdMM1I(&K103, &T26);
    T16 = T27;
    Uunique_condition_tokenF17 = T16;
  } else {
    Uunique_condition_tokenF17 = Uunique_condition_token_;
  }
  T28 = primitive_idQ(Uunique_condition_template_,&KPunboundVKi);
  if (T28 != &KPfalseVKi) {
    T29.vector_element_[0] = IKJtemplate_;
    T30 = KerrorVKdMM1I(&K103, &T29);
    T18 = T30;
    Uunique_condition_templateF19 = T18;
  } else {
    Uunique_condition_templateF19 = Uunique_condition_template_;
  }
  SLOT_VALUE_SETTER(Uunique_condition_format_string_, object_, 0);
  SLOT_VALUE_SETTER(Uunique_condition_format_arguments_, object_, 1);
  SLOT_VALUE_SETTER(Uunique_condition_source_location_, object_, 2);
  SLOT_VALUE_SETTER(Uunique_condition_program_note_creatorF13, object_, 3);
  SLOT_VALUE_SETTER(Uunique_condition_compilation_stageF15, object_, 4);
  SLOT_VALUE_SETTER(Uunique_condition_context_id_, object_, 5);
  primitive_type_check(Uunique_subnotes_, &KLsequenceGVKd);
  Uunique_subnotesF20 = Uunique_subnotes_;
  SLOT_VALUE_SETTER(Uunique_subnotesF20, object_, 6);
  SLOT_VALUE_SETTER(Uunique_condition_tokenF17, object_, 7);
  SLOT_VALUE_SETTER(Uunique_condition_templateF19, object_, 8);
  T31 = APPLY2(&KinitializeVKd, object_, init_args_);
  return(T31);
}

D Kas_expressionVdfmc_macro_expanderMM0I (D t_) {
  D T2_0;
  D T2_1;
  D failure_;
  D parsed_f_;
  D T5;
  D T6;
  _KLsimple_object_vectorGVKd_2 T7 = {&KLsimple_object_vectorGVKdW, (D) 9};

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:271
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:274
  T6 = SLOT_VALUE_INITD(t_, 0);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:273
  T2_0 = CALL2(&Kparse_template_fragments_asVdfmc_macro_expanderMM0, Dstart_expression_constraintVdfmc_reader, T6);
  T2_1 = MV_GET_ELT(1);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:272
  failure_ = T2_0;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:272
  parsed_f_ = T2_1;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:275
  if (failure_ != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:276
    T7.vector_element_[0] = parsed_f_;
    T7.vector_element_[1] = failure_;
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:276
    KerrorVKdMM1I(&K163, &T7);
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:275
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:279
  T5 = parsed_f_;
  MV_SET_ELT(0, parsed_f_);
  MV_SET_COUNT(1);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:271
  return(T5);
}

D Kas_expressionVdfmc_macro_expanderMM1I (D stuff_) {
  D T2;
  D T3_0;
  D T3_1;
  D T3_2;
  D failureF4;
  D UfTU_;
  D expressionF6;
  D T7_0;
  D T7_1;
  D T8;
  D T9_0;
  D T9_1;
  D T10_0;
  D T10_1;
  D T11_0;
  D T11_1;
  D failureF12;
  D expressionF13;
  D expressionF14;
  D T15;
  D T16;
  D T17;
  D T18;
  D T19_0;
  D T19_1;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:282
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:283
  CONGRUENT_CALL_PROLOG(&Kas_fragment_tokensVdfmc_macro_expander, 1);
  T2 = CONGRUENT_CALL1(stuff_);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:283
  T3_0 = Kmatch_expression_constraintVdfmc_macro_expanderI(T2);
  T3_1 = MV_GET_ELT(1);
  T3_2 = MV_GET_ELT(2);
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:283
  failureF4 = T3_0;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:283
  UfTU_ = T3_1;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:283
  expressionF6 = T3_2;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:283
  if (failureF4 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:283
    T7_0 = failureF4;
    T7_1 = &KPfalseVKi;
    T11_0 = T7_0;
    T11_1 = T7_1;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:283
    CONGRUENT_CALL_PROLOG(&KemptyQVKd, 1);
    T8 = CONGRUENT_CALL1(UfTU_);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:283
    if (T8 != &KPfalseVKi) {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:283
      T19_0 = &KPfalseVKi;
      T19_1 = expressionF6;
      T10_0 = T19_0;
      T10_1 = T19_1;
    } else {
      // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:283
      T9_0 = &KPtrueVKi;
      T9_1 = &KPfalseVKi;
      T10_0 = T9_0;
      T10_1 = T9_1;
    }
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:283
    T11_0 = T10_0;
    T11_1 = T10_1;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:283
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:283
  failureF12 = T11_0;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:283
  expressionF13 = T11_1;
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:283
  if (failureF12 != &KPfalseVKi) {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:283
    T16 = Kdylan_variable_nameVdfmc_readerI(IKJmacro_case_);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:283
    T17 = Kmacro_main_rule_match_errorVdfmc_macro_expanderI(T2, T16);
    T18 = T17;
  } else {
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:283
    CONGRUENT_CALL_PROLOG(&Kexport_fragment_tokensVdfmc_macro_expander, 1);
    expressionF14 = CONGRUENT_CALL1(expressionF13);
    // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:284
    T15 = expressionF14;
    MV_SET_ELT(0, expressionF14);
    MV_SET_COUNT(1);
    T18 = T15;
  }
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:283
  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:282
  return(T18);
}


/* SYSTEM INIT CODE */

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

    T0 = KPresolve_symbolVKiI(&KJfragments_);
    if (T0 != &KJfragments_) {
      IKJfragments_ = T0;
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJsource_location_);
    if (T0 != &KJsource_location_) {
      primitive_repeated_slot_value_setter(T0, &K150, 1, 2);
      primitive_repeated_slot_value_setter(T0, &K149, 1, 4);
      primitive_repeated_slot_value_setter(T0, &K114, 1, 2);
      primitive_repeated_slot_value_setter(T0, &K105, 1, 4);
      IKJsource_location_ = T0;
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJtemplate_);
    if (T0 != &KJtemplate_) {
      primitive_repeated_slot_value_setter(T0, &K150, 1, 8);
      primitive_repeated_slot_value_setter(T0, &K149, 1, 16);
      IKJtemplate_ = T0;
      primitive_repeated_slot_value_setter(T0, &K125, 1, 1);
      primitive_repeated_slot_value_setter(T0, &K123, 1, 2);
      primitive_repeated_slot_value_setter(T0, &K114, 1, 7);
      primitive_repeated_slot_value_setter(T0, &K105, 1, 14);
      primitive_slot_value_setter(T0, &Kcondition_templateVdfmc_macro_expanderHLtemplate_parser_errorG, 3);
      primitive_slot_value_setter(T0, &Kcondition_templateVdfmc_macro_expanderHLunexpected_end_of_template_errorG, 3);
      primitive_repeated_slot_value_setter(T0, &K74, 1, 0);
      primitive_repeated_slot_value_setter(T0, &K72, 1, 0);
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJprogram_note_creator_);
    if (T0 != &KJprogram_note_creator_) {
      primitive_repeated_slot_value_setter(T0, &K150, 1, 3);
      primitive_repeated_slot_value_setter(T0, &K149, 1, 6);
      primitive_repeated_slot_value_setter(T0, &K114, 1, 3);
      primitive_repeated_slot_value_setter(T0, &K105, 1, 6);
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJcompilation_stage_);
    if (T0 != &KJcompilation_stage_) {
      primitive_repeated_slot_value_setter(T0, &K150, 1, 4);
      primitive_repeated_slot_value_setter(T0, &K149, 1, 8);
      primitive_repeated_slot_value_setter(T0, &K114, 1, 4);
      primitive_repeated_slot_value_setter(T0, &K105, 1, 8);
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJcontext_id_);
    if (T0 != &KJcontext_id_) {
      primitive_repeated_slot_value_setter(T0, &K150, 1, 5);
      primitive_repeated_slot_value_setter(T0, &K149, 1, 10);
      primitive_repeated_slot_value_setter(T0, &K114, 1, 5);
      primitive_repeated_slot_value_setter(T0, &K105, 1, 10);
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJsubnotes_);
    if (T0 != &KJsubnotes_) {
      primitive_repeated_slot_value_setter(T0, &K150, 1, 6);
      primitive_repeated_slot_value_setter(T0, &K149, 1, 12);
      primitive_repeated_slot_value_setter(T0, &K114, 1, 6);
      primitive_repeated_slot_value_setter(T0, &K105, 1, 12);
    }
  }
  {
    D T0;

    T0 = KPresolve_symbolVKiI(&KJmacro_case_);
    if (T0 != &KJmacro_case_) {
      IKJmacro_case_ = T0;
    }
  }
{
  D T0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:187
  T0 = KPadd_classVKeI(&KLtemplate_parser_errorGVdfmc_macro_expander);
  goto I0;
}
I0:

{
  D T0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:198
  T0 = KPadd_classVKeI(&KLunexpected_end_of_template_errorGVdfmc_macro_expander);
  goto I9;
}
I9:

  return;
}

/* USER INIT CODE */

void _Init_dfmc_macro_expander__X_constraint_parsing_for_user () {
{
  D T0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:187
  T0 = KPadd_a_methodVKnI(&KmakeVKd, &KmakeVKdMdfmc_macro_expanderM11, &Kdfmc_macro_expander_libraryYdylan_userVdfmc_macro_expander, &KPfalseVKi, &KPfalseVKi, &KPfalseVKi);
  goto I5;
}
I5:

{
  D T0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:187
  T0 = KPadd_a_methodVKnI(&Kconvert_condition_slots_to_ppmlVdfmc_conditions, &Kconvert_condition_slots_to_ppmlVdfmc_conditionsMdfmc_macro_expanderM12, &Kdfmc_macro_expander_libraryYdylan_userVdfmc_macro_expander, &KPfalseVKi, &KPfalseVKi, &KPfalseVKi);
  goto I8;
}
I8:

{
  D T0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:198
  T0 = KPadd_a_methodVKnI(&KmakeVKd, &KmakeVKdMdfmc_macro_expanderM12, &Kdfmc_macro_expander_libraryYdylan_userVdfmc_macro_expander, &KPfalseVKi, &KPfalseVKi, &KPfalseVKi);
  goto I14;
}
I14:

{
  D T0;

  // /Users/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/constraint-parsing.dylan:198
  T0 = KPadd_a_methodVKnI(&Kconvert_condition_slots_to_ppmlVdfmc_conditions, &Kconvert_condition_slots_to_ppmlVdfmc_conditionsMdfmc_macro_expanderM13, &Kdfmc_macro_expander_libraryYdylan_userVdfmc_macro_expander, &KPfalseVKi, &KPfalseVKi, &KPfalseVKi);
  goto I17;
}
I17:

  return;
}


/* eof */
