#include "opendylan/run-time.h"

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

/* Typedefs for referenced classes */

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

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

typedef struct {
  dylan_value wrapper;
} _KLobjectGVKd;

typedef struct {
  dylan_value wrapper;
} _KLunboundGVKe;

typedef struct {
  dylan_value wrapper;
} _KLbooleanGVKd;

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

#define  define__KLsimple_object_vectorGVKd(nrepeated) \
  typedef struct { \
    dylan_value wrapper; \
    dylan_value size_; \
    dylan_value vector_element_[nrepeated+1]; \
  } _KLsimple_object_vectorGVKd_##nrepeated;
define__KLsimple_object_vectorGVKd(1);
define__KLsimple_object_vectorGVKd(16);
define__KLsimple_object_vectorGVKd(3);
define__KLsimple_object_vectorGVKd(2);
define__KLsimple_object_vectorGVKd(0);

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

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

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

#define  define__KLbyte_stringGVKd(nrepeated) \
  typedef struct { \
    dylan_value wrapper; \
    dylan_value size_; \
    char string_element_[nrepeated+1]; \
  } _KLbyte_stringGVKd_##nrepeated;
define__KLbyte_stringGVKd(13);
define__KLbyte_stringGVKd(22);
define__KLbyte_stringGVKd(20);
define__KLbyte_stringGVKd(4);
define__KLbyte_stringGVKd(28);
define__KLbyte_stringGVKd(26);
define__KLbyte_stringGVKd(24);

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

typedef struct {
  dylan_value wrapper;
  dylan_value element_source_location_;
} _KLmaybe_empty_substitutionGVdfmc_macro_expander;

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

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

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

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

typedef struct {
  dylan_value wrapper;
  dylan_value element_source_location_;
} _KLsubstitutionGVdfmc_macro_expander;

typedef struct {
  dylan_value wrapper;
  dylan_value fragment_record_;
  dylan_value fragment_source_position_;
  dylan_value fragment_left_delimiter_;
  dylan_value fragment_nested_fragments_;
  dylan_value fragment_right_delimiter_;
} _KLbraces_fragmentGVdfmc_reader;

typedef struct {
  dylan_value wrapper;
  dylan_value fragment_record_;
  dylan_value fragment_source_position_;
  dylan_value fragment_left_delimiter_;
  dylan_value fragment_nested_fragments_;
  dylan_value fragment_right_delimiter_;
} _KLbrackets_fragmentGVdfmc_reader;

typedef struct {
  dylan_value wrapper;
  dylan_value fragment_record_;
  dylan_value fragment_source_position_;
  dylan_value fragment_left_delimiter_;
  dylan_value fragment_nested_fragments_;
  dylan_value fragment_right_delimiter_;
} _KLparens_fragmentGVdfmc_reader;

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

typedef struct {
  dylan_value wrapper;
  dylan_value fragment_record_;
  dylan_value fragment_source_position_;
} _KLseparator_fragmentGVdfmc_reader;

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

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


/* Typedefs for defined classes */


/* Referenced object declarations */

extern _KLclassGVKd KLclassGVKd;
extern _KLmm_wrapperGVKi_0 KLclassGVKdW;
extern _KLclassGVKd KLmm_wrapperGVKi;
extern _KLmm_wrapperGVKi_1 KLmm_wrapperGVKiW;
extern _KLclassGVKd KLobjectGVKd;
extern _KLmm_wrapperGVKi_0 KLobjectGVKdW;
extern _KLunboundGVKe KPunboundVKi;
extern _KLclassGVKd KLunboundGVKe;
extern _KLmm_wrapperGVKi_0 KLunboundGVKeW;
extern _KLbooleanGVKd KPtrueVKi;
extern _KLclassGVKd KLbooleanGVKd;
extern _KLmm_wrapperGVKi_0 KLbooleanGVKdW;
extern _KLbooleanGVKd KPfalseVKi;
extern _KLempty_listGVKd KPempty_listVKi;
extern _KLclassGVKd KLempty_listGVKd;
extern _KLmm_wrapperGVKi_0 KLempty_listGVKdW;
dylan_value Kmake_templateVdfmc_macro_expanderI (dylan_value);
extern _KLsimple_object_vectorGVKd_0 KPempty_vectorVKi;
extern _KLclassGVKd KLsimple_object_vectorGVKd;
extern _KLmm_wrapperGVKi_0 KLsimple_object_vectorGVKdW;
extern _KLclassGVKd KLsealed_generic_functionGVKe;
extern _KLmm_wrapperGVKi_0 KLsealed_generic_functionGVKeW;
extern _KLobject_signatureGVKe KDsignature_LobjectG_object_rest_value_2VKi;
extern _KLclassGVKd KLobject_signatureGVKe;
extern _KLmm_wrapperGVKi_0 KLobject_signatureGVKeW;
extern _KLabsent_engine_nodeGVKg RSINGULAR_Labsent_engine_nodeG;
extern _KLclassGVKd KLabsent_engine_nodeGVKg;
extern _KLmm_wrapperGVKi_0 KLabsent_engine_nodeGVKgW;
extern _KLclassGVKd KLbyte_stringGVKd;
extern _KLmm_wrapperGVKi_0 KLbyte_stringGVKdW;
extern _KLclassGVKd KLpairGVKd;
extern _KLmm_wrapperGVKi_0 KLpairGVKdW;
extern _KLclassGVKd KLmaybe_empty_substitutionGVdfmc_macro_expander;
extern _KLmm_wrapperGVKi_0 KLmaybe_empty_substitutionGVdfmc_macro_expanderW;
dylan_value Kmake_name_fragmentVdfmc_macro_expanderI (dylan_value);
extern _KLsealed_generic_functionGVKe Kimport_to_templateVdfmc_macro_expander;
dylan_value Kmake_comma_fragmentVdfmc_macro_expanderI ();
extern _KLsealed_generic_functionGVKe Kmaybe_substitute_separatorVdfmc_macro_expander;
dylan_value KlistVKdI (dylan_value);
dylan_value Kmake_parens_fragmentVdfmc_macro_expanderI (dylan_value);
extern _KLclassGVKd KLsymbolGVKd;
extern _KLmm_wrapperGVKi_0 KLsymbolGVKdW;
extern _KLfunction_classGVKi KLsimple_methodGVKe;
extern _KLclassGVKd KLfunction_classGVKi;
extern _KLmm_wrapperGVKi_0 KLfunction_classGVKiW;
extern _KLmm_wrapperGVKi_0 KLsimple_methodGVKeW;
extern _KLclassGVKd KLsignatureGVKe;
extern _KLmm_wrapperGVKi_0 KLsignatureGVKeW;
extern _KLsimple_object_vectorGVKd_16 KDsignature_LlistG_typesVKi;
extern _KLobject_signatureGVKe KDsignature_LobjectG_object_rest_value_1VKi;
extern _KLsealed_generic_functionGVKe Kgenerate_substitutionVdfmc_macro_expander;
extern _KLclassGVKd KLsubstitutionGVdfmc_macro_expander;
extern _KLmm_wrapperGVKi_0 KLsubstitutionGVdfmc_macro_expanderW;
extern _KLclassGVKd KLbraces_fragmentGVdfmc_reader;
extern _KLmm_wrapperGVKi_0 KLbraces_fragmentGVdfmc_readerW;
extern _KLclassGVKd KLbrackets_fragmentGVdfmc_reader;
extern _KLmm_wrapperGVKi_0 KLbrackets_fragmentGVdfmc_readerW;
extern _KLclassGVKd KLparens_fragmentGVdfmc_reader;
extern _KLmm_wrapperGVKi_0 KLparens_fragmentGVdfmc_readerW;
extern _KLclassGVKd KLfragmentGVdfmc_reader;
extern _KLmm_wrapperGVKi_0 KLfragmentGVdfmc_readerW;
extern _KLsealed_generic_functionGVKe Kgenerate_constructorVdfmc_macro_expander;
extern _KLclassGVKd KLseparator_fragmentGVdfmc_reader;
extern _KLmm_wrapperGVKi_0 KLseparator_fragmentGVdfmc_readerW;
extern _KLclassGVKd KLlistGVKd;
extern _KLmm_wrapperGVKi_0 KLlistGVKdW;
extern _KLclassGVKd KLunionGVKe;
extern _KLmm_wrapperGVKi_0 KLunionGVKeW;
dylan_value Kunion_instanceQVKiI (dylan_value, dylan_value);

/* Defined object declarations */

dylan_value Kcompile_template_elementsVdfmc_macro_expanderMM0I (dylan_value);
extern _KLsealed_generic_functionGVKe Kcompile_template_elementVdfmc_macro_expander;
extern _KLsimple_methodGVKe Kcompile_template_elementVdfmc_macro_expanderMM0;
dylan_value Kcompile_template_elementVdfmc_macro_expanderMM0I (dylan_value, dylan_value);
extern _KLsimple_methodGVKe Kcompile_template_elementVdfmc_macro_expanderMM1;
dylan_value Kcompile_template_elementVdfmc_macro_expanderMM1I (dylan_value, dylan_value);
static _KLpairGVKd K6;
static _KLpairGVKd K7;
static _KLbyte_stringGVKd_24 K8;
dylan_value Kcompile_one_template_elementVdfmc_macro_expanderMM0I (dylan_value);
extern _KLsealed_generic_functionGVKe Kcompile_one_template_elementVdfmc_macro_expander;
extern _KLsimple_methodGVKe Kcompile_template_elementsVdfmc_macro_expanderMM0;
static _KLsymbolGVKd KJmaybe_substitute_separator_;
static _KLbyte_stringGVKd_26 K13;
static _KLsignatureGVKe K14;
extern _KLsimple_methodGVKe Kcompile_one_template_elementVdfmc_macro_expanderMM0;
extern _KLsimple_methodGVKe Kcompile_one_template_elementVdfmc_macro_expanderMM1;
dylan_value Kcompile_one_template_elementVdfmc_macro_expanderMM1I (dylan_value);
extern _KLsimple_methodGVKe Kcompile_one_template_elementVdfmc_macro_expanderMM2;
dylan_value Kcompile_one_template_elementVdfmc_macro_expanderMM2I (dylan_value);
extern _KLsimple_methodGVKe Kcompile_one_template_elementVdfmc_macro_expanderMM3;
dylan_value Kcompile_one_template_elementVdfmc_macro_expanderMM3I (dylan_value);
extern _KLsimple_methodGVKe Kcompile_one_template_elementVdfmc_macro_expanderMM4;
dylan_value Kcompile_one_template_elementVdfmc_macro_expanderMM4I (dylan_value);
static _KLpairGVKd K24;
static _KLpairGVKd K25;
static _KLpairGVKd K26;
static _KLpairGVKd K27;
static _KLpairGVKd K28;
static _KLbyte_stringGVKd_28 K29;
static _KLsignatureGVKe K30;
static _KLsimple_object_vectorGVKd_1 K31;
static _KLsymbolGVKd KJmake_braces_fragment_;
static _KLsymbolGVKd KJlist_;
static _KLbyte_stringGVKd_4 K34;
static _KLbyte_stringGVKd_20 K35;
static _KLsignatureGVKe K36;
static _KLsimple_object_vectorGVKd_1 K37;
static _KLsymbolGVKd KJmake_brackets_fragment_;
static _KLbyte_stringGVKd_22 K39;
static _KLsignatureGVKe K40;
static _KLsimple_object_vectorGVKd_1 K41;
static _KLsymbolGVKd KJmake_parens_fragment_;
static _KLbyte_stringGVKd_20 K43;
static _KLsignatureGVKe K44;
static _KLsimple_object_vectorGVKd_1 K45;
static _KLsignatureGVKe K46;
static _KLsimple_object_vectorGVKd_1 K47;
static _KLsignatureGVKe K48;
static _KLsimple_object_vectorGVKd_2 K49;
static _KLsignatureGVKe K50;
static _KLsimple_object_vectorGVKd_2 K51;
static _KLunionGVKe K52;
extern _KLsimple_methodGVKe Kcompile_macro_template_to_codeVdfmc_macro_expanderMM0;
dylan_value Kcompile_macro_template_to_codeVdfmc_macro_expanderMM0I (dylan_value);
static _KLsymbolGVKd KJmake_template_;
static _KLbyte_stringGVKd_13 K56;

/* Indirection variables */

static dylan_value IKJmaybe_substitute_separator_ = &KJmaybe_substitute_separator_;
static dylan_value IKJmake_braces_fragment_ = &KJmake_braces_fragment_;
static dylan_value IKJlist_ = &KJlist_;
static dylan_value IKJmake_brackets_fragment_ = &KJmake_brackets_fragment_;
static dylan_value IKJmake_parens_fragment_ = &KJmake_parens_fragment_;
static dylan_value IKJmake_template_ = &KJmake_template_;

/* Variables */

dylan_value compile_macro_template_to_codeVdfmc_macro_expander = &Kcompile_macro_template_to_codeVdfmc_macro_expanderMM0;

/* Objects */

_KLsealed_generic_functionGVKe Kcompile_template_elementVdfmc_macro_expander = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_2,
  &KDsignature_LobjectG_object_rest_value_2VKi,
  (dylan_value) 9,
  &K8,
  &K6,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsimple_methodGVKe Kcompile_template_elementVdfmc_macro_expanderMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K50,
  &Kcompile_template_elementVdfmc_macro_expanderMM0I
};

_KLsimple_methodGVKe Kcompile_template_elementVdfmc_macro_expanderMM1 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_2,
  &K48,
  &Kcompile_template_elementVdfmc_macro_expanderMM1I
};

static _KLpairGVKd K6 = {
  &KLpairGVKdW /* wrapper */,
  &Kcompile_template_elementVdfmc_macro_expanderMM0,
  &K7
};

static _KLpairGVKd K7 = {
  &KLpairGVKdW /* wrapper */,
  &Kcompile_template_elementVdfmc_macro_expanderMM1,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_24 K8 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 97,
  "compile-template-element"
};

_KLsealed_generic_functionGVKe Kcompile_one_template_elementVdfmc_macro_expander = {
  &KLsealed_generic_functionGVKeW /* wrapper */,
  &gf_xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  (dylan_value) 1,
  &K29,
  &K24,
  &RSINGULAR_Labsent_engine_nodeG
};

_KLsimple_methodGVKe Kcompile_template_elementsVdfmc_macro_expanderMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K14,
  &Kcompile_template_elementsVdfmc_macro_expanderMM0I
};

static _KLsymbolGVKd KJmaybe_substitute_separator_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K13
};

static _KLbyte_stringGVKd_26 K13 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 105,
  "maybe-substitute-separator"
};

static _KLsignatureGVKe K14 = {
  &KLsignatureGVKeW /* wrapper */,
  (dylan_value) 44040197,
  &KDsignature_LlistG_typesVKi
};

_KLsimple_methodGVKe Kcompile_one_template_elementVdfmc_macro_expanderMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K46,
  &Kcompile_one_template_elementVdfmc_macro_expanderMM0I
};

_KLsimple_methodGVKe Kcompile_one_template_elementVdfmc_macro_expanderMM1 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K44,
  &Kcompile_one_template_elementVdfmc_macro_expanderMM1I
};

_KLsimple_methodGVKe Kcompile_one_template_elementVdfmc_macro_expanderMM2 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K40,
  &Kcompile_one_template_elementVdfmc_macro_expanderMM2I
};

_KLsimple_methodGVKe Kcompile_one_template_elementVdfmc_macro_expanderMM3 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K36,
  &Kcompile_one_template_elementVdfmc_macro_expanderMM3I
};

_KLsimple_methodGVKe Kcompile_one_template_elementVdfmc_macro_expanderMM4 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &K30,
  &Kcompile_one_template_elementVdfmc_macro_expanderMM4I
};

static _KLpairGVKd K24 = {
  &KLpairGVKdW /* wrapper */,
  &Kcompile_one_template_elementVdfmc_macro_expanderMM0,
  &K25
};

static _KLpairGVKd K25 = {
  &KLpairGVKdW /* wrapper */,
  &Kcompile_one_template_elementVdfmc_macro_expanderMM1,
  &K26
};

static _KLpairGVKd K26 = {
  &KLpairGVKdW /* wrapper */,
  &Kcompile_one_template_elementVdfmc_macro_expanderMM2,
  &K27
};

static _KLpairGVKd K27 = {
  &KLpairGVKdW /* wrapper */,
  &Kcompile_one_template_elementVdfmc_macro_expanderMM3,
  &K28
};

static _KLpairGVKd K28 = {
  &KLpairGVKdW /* wrapper */,
  &Kcompile_one_template_elementVdfmc_macro_expanderMM4,
  &KPempty_listVKi
};

static _KLbyte_stringGVKd_28 K29 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 113,
  "compile-one-template-element"
};

static _KLsignatureGVKe K30 = {
  &KLsignatureGVKeW /* wrapper */,
  (dylan_value) 44040197,
  &K31
};

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

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

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

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

static _KLbyte_stringGVKd_20 K35 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 81,
  "make-braces-fragment"
};

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

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

static _KLsymbolGVKd KJmake_brackets_fragment_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K39
};

static _KLbyte_stringGVKd_22 K39 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 89,
  "make-brackets-fragment"
};

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

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

static _KLsymbolGVKd KJmake_parens_fragment_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K43
};

static _KLbyte_stringGVKd_20 K43 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 81,
  "make-parens-fragment"
};

static _KLsignatureGVKe K44 = {
  &KLsignatureGVKeW /* wrapper */,
  (dylan_value) 44040197,
  &K45
};

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

static _KLsignatureGVKe K46 = {
  &KLsignatureGVKeW /* wrapper */,
  (dylan_value) 44040197,
  &K47
};

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

static _KLsignatureGVKe K48 = {
  &KLsignatureGVKeW /* wrapper */,
  (dylan_value) 48234505,
  &K49
};

static _KLsimple_object_vectorGVKd_2 K49 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 9,
  &KLseparator_fragmentGVdfmc_reader,
  &KLlistGVKd
};

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

static _KLsimple_object_vectorGVKd_2 K51 = {
  &KLsimple_object_vectorGVKdW /* wrapper */,
  (dylan_value) 9,
  &K52,
  &KLlistGVKd
};

static _KLunionGVKe K52 = {
  &KLunionGVKeW /* wrapper */,
  &Kunion_instanceQVKiI,
  &KLfragmentGVdfmc_reader,
  &KLsubstitutionGVdfmc_macro_expander
};

_KLsimple_methodGVKe Kcompile_macro_template_to_codeVdfmc_macro_expanderMM0 = {
  &KLsimple_methodGVKeW /* wrapper */,
  &xep_1,
  &KDsignature_LobjectG_object_rest_value_1VKi,
  &Kcompile_macro_template_to_codeVdfmc_macro_expanderMM0I
};

static _KLsymbolGVKd KJmake_template_ = {
  &KLsymbolGVKdW /* wrapper */,
  &K56
};

static _KLbyte_stringGVKd_13 K56 = {
  &KLbyte_stringGVKdW /* wrapper */,
  (dylan_value) 53,
  "make-template"
};

/* Code */

dylan_value Kcompile_template_elementsVdfmc_macro_expanderMM0I (dylan_value elements_) {
  dylan_value T2;
  dylan_value T3;
  dylan_value T4;
  dylan_value T5;
  dylan_value T6;
  dylan_value T7;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:14
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:15
  T5 = primitive_idQ(elements_,&KPempty_listVKi);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:15
  if (T5 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:16
    T2 = Kmake_templateVdfmc_macro_expanderI(&KPempty_vectorVKi);
    T4 = T2;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:18
    T6 = SLOT_VALUE_INITD(elements_, 0);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:18
    T7 = SLOT_VALUE_INITD(elements_, 1);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:18
    CONGRUENT_CALL_PROLOG(&Kcompile_template_elementVdfmc_macro_expander, 2);
    T3 = CONGRUENT_CALL2(T6, T7);
    T4 = T3;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:15
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:14
  return(T4);
}

dylan_value Kcompile_template_elementVdfmc_macro_expanderMM0I (dylan_value element_, dylan_value rest_) {
  dylan_value this_;
  dylan_value restF4;
  dylan_value T5;
  dylan_value T6;
  dylan_value T7;
  dylan_value T8;
  dylan_value T9;
  _KLsimple_object_vectorGVKd_2 T10 = {&KLsimple_object_vectorGVKdW, (dylan_value) 9};

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:22
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:24
  CONGRUENT_CALL_PROLOG(&Kcompile_one_template_elementVdfmc_macro_expander, 1);
  this_ = CONGRUENT_CALL1(element_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:25
  restF4 = Kcompile_template_elementsVdfmc_macro_expanderMM0I(rest_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:26
  CONGRUENT_CALL_PROLOG(&Kimport_to_templateVdfmc_macro_expander, 1);
  T5 = CONGRUENT_CALL1(this_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:26
  T6 = Kmake_comma_fragmentVdfmc_macro_expanderI();
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:26
  CONGRUENT_CALL_PROLOG(&Kimport_to_templateVdfmc_macro_expander, 1);
  T7 = CONGRUENT_CALL1(restF4);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:26
  CONGRUENT_CALL_PROLOG(&Kmaybe_substitute_separatorVdfmc_macro_expander, 2);
  T8 = CONGRUENT_CALL2(T6, T7);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:26
  T10.vector_element_[0] = T5;
  T10.vector_element_[1] = T8;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:26
  T9 = Kmake_templateVdfmc_macro_expanderI(&T10);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:22
  return(T9);
}

dylan_value Kcompile_template_elementVdfmc_macro_expanderMM1I (dylan_value element_, dylan_value rest_) {
  dylan_value T3;
  dylan_value subst_;
  dylan_value restF5;
  dylan_value T6;
  dylan_value T7;
  dylan_value T8;
  dylan_value T9;
  dylan_value T10;
  dylan_value T11;
  dylan_value T12;
  dylan_value T13;
  dylan_value T14;
  dylan_value T15;
  dylan_value T16;
  dylan_value T17;
  dylan_value T18;
  dylan_value T19;
  dylan_value T20;
  dylan_value T21;
  dylan_value T22;
  dylan_value sep_;
  dylan_value T24;
  dylan_value T25;
  _KLsimple_object_vectorGVKd_2 T26 = {&KLsimple_object_vectorGVKdW, (dylan_value) 9};
  _KLsimple_object_vectorGVKd_3 T27 = {&KLsimple_object_vectorGVKdW, (dylan_value) 13};

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:29
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:31
  T18 = primitive_idQ(rest_,&KPempty_listVKi);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:31
  if (T18 != &KPfalseVKi) {
    T3 = T18;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:31
    T19 = SLOT_VALUE_INITD(rest_, 0);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:31
    T20 = primitive_instanceQ(T19,&KLmaybe_empty_substitutionGVdfmc_macro_expander);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:31
    T21 = primitive_not(T20);
    T3 = T21;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:31
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:31
  if (T3 != &KPfalseVKi) {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:32
    T22 = Kcompile_template_elementVdfmc_macro_expanderMM0I(element_, rest_);
    T17 = T22;
  } else {
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:34
    sep_ = Kcompile_one_template_elementVdfmc_macro_expanderMM0I(element_);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:35
    T24 = SLOT_VALUE_INITD(rest_, 0);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:35
    CONGRUENT_CALL_PROLOG(&Kcompile_one_template_elementVdfmc_macro_expander, 1);
    subst_ = CONGRUENT_CALL1(T24);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:36
    T25 = SLOT_VALUE_INITD(rest_, 1);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:36
    restF5 = CALL1(&Kcompile_template_elementsVdfmc_macro_expanderMM0, T25);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:37
    T6 = Kmake_name_fragmentVdfmc_macro_expanderI(IKJmaybe_substitute_separator_);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:37
    CONGRUENT_CALL_PROLOG(&Kimport_to_templateVdfmc_macro_expander, 1);
    T7 = CONGRUENT_CALL1(sep_);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:37
    T8 = Kmake_comma_fragmentVdfmc_macro_expanderI();
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:37
    CONGRUENT_CALL_PROLOG(&Kimport_to_templateVdfmc_macro_expander, 1);
    T9 = CONGRUENT_CALL1(subst_);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:37
    CONGRUENT_CALL_PROLOG(&Kmaybe_substitute_separatorVdfmc_macro_expander, 2);
    T10 = CONGRUENT_CALL2(T8, T9);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:37
    T26.vector_element_[0] = T7;
    T26.vector_element_[1] = T10;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:37
    T11 = KlistVKdI(&T26);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:37
    T12 = Kmake_parens_fragmentVdfmc_macro_expanderI(T11);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:37
    T13 = Kmake_comma_fragmentVdfmc_macro_expanderI();
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:37
    CONGRUENT_CALL_PROLOG(&Kimport_to_templateVdfmc_macro_expander, 1);
    T14 = CONGRUENT_CALL1(restF5);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:37
    CONGRUENT_CALL_PROLOG(&Kmaybe_substitute_separatorVdfmc_macro_expander, 2);
    T15 = CONGRUENT_CALL2(T13, T14);
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:37
    T27.vector_element_[0] = T6;
    T27.vector_element_[1] = T12;
    T27.vector_element_[2] = T15;
    // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:37
    T16 = Kmake_templateVdfmc_macro_expanderI(&T27);
    T17 = T16;
  }
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:31
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:29
  return(T17);
}

dylan_value Kcompile_one_template_elementVdfmc_macro_expanderMM0I (dylan_value element_) {
  dylan_value T2;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:41
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:42
  CONGRUENT_CALL_PROLOG(&Kgenerate_constructorVdfmc_macro_expander, 1);
  T2 = CONGRUENT_CALL1(element_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:41
  return(T2);
}

dylan_value Kcompile_one_template_elementVdfmc_macro_expanderMM1I (dylan_value element_) {
  dylan_value nested_;
  dylan_value T3;
  dylan_value T4;
  dylan_value T5;
  dylan_value T6;
  dylan_value T7;
  dylan_value T8;
  dylan_value T9;
  dylan_value T10;
  dylan_value T11;
  _KLsimple_object_vectorGVKd_1 T12 = {&KLsimple_object_vectorGVKdW, (dylan_value) 5};
  _KLsimple_object_vectorGVKd_2 T13 = {&KLsimple_object_vectorGVKdW, (dylan_value) 9};
  _KLsimple_object_vectorGVKd_2 T14 = {&KLsimple_object_vectorGVKdW, (dylan_value) 9};

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:45
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:46
  T11 = SLOT_VALUE_INITD(element_, 3);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:46
  nested_ = CALL1(&Kcompile_template_elementsVdfmc_macro_expanderMM0, T11);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:47
  T3 = Kmake_name_fragmentVdfmc_macro_expanderI(IKJmake_parens_fragment_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:47
  T4 = Kmake_name_fragmentVdfmc_macro_expanderI(IKJlist_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:47
  CONGRUENT_CALL_PROLOG(&Kimport_to_templateVdfmc_macro_expander, 1);
  T5 = CONGRUENT_CALL1(nested_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:47
  T12.vector_element_[0] = T5;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:47
  T6 = KlistVKdI(&T12);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:47
  T7 = Kmake_parens_fragmentVdfmc_macro_expanderI(T6);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:47
  T13.vector_element_[0] = T4;
  T13.vector_element_[1] = T7;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:47
  T8 = KlistVKdI(&T13);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:47
  T9 = Kmake_parens_fragmentVdfmc_macro_expanderI(T8);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:47
  T14.vector_element_[0] = T3;
  T14.vector_element_[1] = T9;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:47
  T10 = Kmake_templateVdfmc_macro_expanderI(&T14);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:45
  return(T10);
}

dylan_value Kcompile_one_template_elementVdfmc_macro_expanderMM2I (dylan_value element_) {
  dylan_value nested_;
  dylan_value T3;
  dylan_value T4;
  dylan_value T5;
  dylan_value T6;
  dylan_value T7;
  dylan_value T8;
  dylan_value T9;
  dylan_value T10;
  dylan_value T11;
  _KLsimple_object_vectorGVKd_1 T12 = {&KLsimple_object_vectorGVKdW, (dylan_value) 5};
  _KLsimple_object_vectorGVKd_2 T13 = {&KLsimple_object_vectorGVKdW, (dylan_value) 9};
  _KLsimple_object_vectorGVKd_2 T14 = {&KLsimple_object_vectorGVKdW, (dylan_value) 9};

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:50
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:51
  T11 = SLOT_VALUE_INITD(element_, 3);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:51
  nested_ = CALL1(&Kcompile_template_elementsVdfmc_macro_expanderMM0, T11);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:52
  T3 = Kmake_name_fragmentVdfmc_macro_expanderI(IKJmake_brackets_fragment_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:52
  T4 = Kmake_name_fragmentVdfmc_macro_expanderI(IKJlist_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:52
  CONGRUENT_CALL_PROLOG(&Kimport_to_templateVdfmc_macro_expander, 1);
  T5 = CONGRUENT_CALL1(nested_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:52
  T12.vector_element_[0] = T5;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:52
  T6 = KlistVKdI(&T12);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:52
  T7 = Kmake_parens_fragmentVdfmc_macro_expanderI(T6);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:52
  T13.vector_element_[0] = T4;
  T13.vector_element_[1] = T7;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:52
  T8 = KlistVKdI(&T13);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:52
  T9 = Kmake_parens_fragmentVdfmc_macro_expanderI(T8);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:52
  T14.vector_element_[0] = T3;
  T14.vector_element_[1] = T9;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:52
  T10 = Kmake_templateVdfmc_macro_expanderI(&T14);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:50
  return(T10);
}

dylan_value Kcompile_one_template_elementVdfmc_macro_expanderMM3I (dylan_value element_) {
  dylan_value nested_;
  dylan_value T3;
  dylan_value T4;
  dylan_value T5;
  dylan_value T6;
  dylan_value T7;
  dylan_value T8;
  dylan_value T9;
  dylan_value T10;
  dylan_value T11;
  _KLsimple_object_vectorGVKd_1 T12 = {&KLsimple_object_vectorGVKdW, (dylan_value) 5};
  _KLsimple_object_vectorGVKd_2 T13 = {&KLsimple_object_vectorGVKdW, (dylan_value) 9};
  _KLsimple_object_vectorGVKd_2 T14 = {&KLsimple_object_vectorGVKdW, (dylan_value) 9};

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:55
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:56
  T11 = SLOT_VALUE_INITD(element_, 3);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:56
  nested_ = CALL1(&Kcompile_template_elementsVdfmc_macro_expanderMM0, T11);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:57
  T3 = Kmake_name_fragmentVdfmc_macro_expanderI(IKJmake_braces_fragment_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:57
  T4 = Kmake_name_fragmentVdfmc_macro_expanderI(IKJlist_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:57
  CONGRUENT_CALL_PROLOG(&Kimport_to_templateVdfmc_macro_expander, 1);
  T5 = CONGRUENT_CALL1(nested_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:57
  T12.vector_element_[0] = T5;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:57
  T6 = KlistVKdI(&T12);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:57
  T7 = Kmake_parens_fragmentVdfmc_macro_expanderI(T6);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:57
  T13.vector_element_[0] = T4;
  T13.vector_element_[1] = T7;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:57
  T8 = KlistVKdI(&T13);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:57
  T9 = Kmake_parens_fragmentVdfmc_macro_expanderI(T8);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:57
  T14.vector_element_[0] = T3;
  T14.vector_element_[1] = T9;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:57
  T10 = Kmake_templateVdfmc_macro_expanderI(&T14);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:55
  return(T10);
}

dylan_value Kcompile_one_template_elementVdfmc_macro_expanderMM4I (dylan_value element_) {
  dylan_value T2;

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:60
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:61
  CONGRUENT_CALL_PROLOG(&Kgenerate_substitutionVdfmc_macro_expander, 1);
  T2 = CONGRUENT_CALL1(element_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:60
  return(T2);
}

dylan_value Kcompile_macro_template_to_codeVdfmc_macro_expanderMM0I (dylan_value contents_) {
  dylan_value constructor_code_;
  dylan_value T3;
  dylan_value T4;
  dylan_value T5;
  dylan_value T6;
  dylan_value T7;
  _KLsimple_object_vectorGVKd_1 T8 = {&KLsimple_object_vectorGVKdW, (dylan_value) 5};
  _KLsimple_object_vectorGVKd_2 T9 = {&KLsimple_object_vectorGVKdW, (dylan_value) 9};

  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:9
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:10
  constructor_code_ = CALL1(&Kcompile_template_elementsVdfmc_macro_expanderMM0, contents_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:11
  T3 = Kmake_name_fragmentVdfmc_macro_expanderI(IKJmake_template_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:11
  CONGRUENT_CALL_PROLOG(&Kimport_to_templateVdfmc_macro_expander, 1);
  T4 = CONGRUENT_CALL1(constructor_code_);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:11
  T8.vector_element_[0] = T4;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:11
  T5 = KlistVKdI(&T8);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:11
  T6 = Kmake_parens_fragmentVdfmc_macro_expanderI(T5);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:11
  T9.vector_element_[0] = T3;
  T9.vector_element_[1] = T6;
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:11
  T7 = Kmake_templateVdfmc_macro_expanderI(&T9);
  // /home/bruce/Development/dylan/opendylan/sources/dfmc/macro-expander/template-compilation.dylan:9
  return(T7);
}


/* SYSTEM INIT CODE */

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

    T0 = KPresolve_symbolVKiI(&KJmaybe_substitute_separator_);
    if (T0 != &KJmaybe_substitute_separator_) {
      IKJmaybe_substitute_separator_ = T0;
    }
  }
  {
    dylan_value T0;

    T0 = KPresolve_symbolVKiI(&KJmake_braces_fragment_);
    if (T0 != &KJmake_braces_fragment_) {
      IKJmake_braces_fragment_ = T0;
    }
  }
  {
    dylan_value T0;

    T0 = KPresolve_symbolVKiI(&KJlist_);
    if (T0 != &KJlist_) {
      IKJlist_ = T0;
    }
  }
  {
    dylan_value T0;

    T0 = KPresolve_symbolVKiI(&KJmake_brackets_fragment_);
    if (T0 != &KJmake_brackets_fragment_) {
      IKJmake_brackets_fragment_ = T0;
    }
  }
  {
    dylan_value T0;

    T0 = KPresolve_symbolVKiI(&KJmake_parens_fragment_);
    if (T0 != &KJmake_parens_fragment_) {
      IKJmake_parens_fragment_ = T0;
    }
  }
  {
    dylan_value T0;

    T0 = KPresolve_symbolVKiI(&KJmake_template_);
    if (T0 != &KJmake_template_) {
      IKJmake_template_ = T0;
    }
  }
  return;
}

/* USER INIT CODE */

void _Init_dfmc_macro_expander__X_template_compilation_for_user () {
  return;
}


/* eof */
