#include <stdlib.h>

#include <stdio.h>

#include <runtime.h>

#include <math.h>

extern descriptor_t dylan_roots[];
extern descriptor_t tableext_roots[];
extern descriptor_t collext_roots[];
extern descriptor_t stringext_roots[];
extern descriptor_t regexp_roots[];
extern descriptor_t melange_roots[];
extern descriptor_t streams_roots[];
extern descriptor_t stdio_roots[];
extern descriptor_t print_roots[];
extern descriptor_t format_roots[];
extern descriptor_t cdecl_roots[];

extern descriptor_t dylanZtrue;	/* #t */

#define obj_True dylanZtrue.heapptr
extern descriptor_t dylanZfalse;	/* #f */

#define obj_False dylanZfalse.heapptr

#define GENERAL_ENTRY(func) \
    ((entry_t)SLOT(func, void *, 8))
#define GENERIC_ENTRY(func) \
    ((entry_t)SLOT(func, void *, 32))


/* {Implicit} Define Generic simple-name */

/* simple-name is simple-name */


/* {Implicit} Define Generic simple-name-setter */

/* simple-name-setter is simple-name-setter */

extern descriptor_t cdeclZc_declarationsZsimple_name_setter_METH(descriptor_t *orig_sp, descriptor_t A0, heapptr_t A1);	/* simple-name-setter{<string>, <declaration>} */

/* generic-entry for simple-name-setter{<string>, <declaration>} */
descriptor_t * cdeclZc_declarationsZsimple_name_setter_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    descriptor_t L_arg_2; /* arg */
    descriptor_t L_arg_3; /* arg */
    heapptr_t L_arg_4; /* arg */
    descriptor_t L_result0; /* result0 */

    L_args = ((void *)(orig_sp - 2));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = (((descriptor_t *)L_args)[1]);
    L_arg_3 = L_arg;
    L_arg_4 = L_arg_2.heapptr;
    orig_sp = L_args;
    /* simple-name-setter{<string>, <declaration>} */
    L_result0 = cdeclZc_declarationsZsimple_name_setter_METH(orig_sp, L_arg_3, L_arg_4);
    orig_sp[0] = L_result0;
    return orig_sp + 1;
}


/* {Implicit} Define Generic c-name */

/* c-name is c-name */

extern descriptor_t cdeclZc_declarationsZc_name_METH(descriptor_t *orig_sp, heapptr_t A0);	/* c-name{<declaration>} */

/* generic-entry for c-name{<declaration>} */
descriptor_t * cdeclZc_declarationsZc_name_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    descriptor_t L_result0; /* result0 */

    L_args = ((void *)(orig_sp - 1));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    orig_sp = L_args;
    /* c-name{<declaration>} */
    L_result0 = cdeclZc_declarationsZc_name_METH(orig_sp, L_arg_2);
    orig_sp[0] = L_result0;
    return orig_sp + 1;
}


/* {Implicit} Define Generic c-name-setter */

/* c-name-setter is c-name-setter */

extern descriptor_t cdeclZc_declarationsZc_name_setter_METH(descriptor_t *orig_sp, descriptor_t A0, heapptr_t A1);	/* c-name-setter{type-union(<string>, <false>), <declaration>} */

/* generic-entry for c-name-setter{type-union(<string>, <false>), <declaration>} */
descriptor_t * cdeclZc_declarationsZc_name_setter_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    descriptor_t L_arg_2; /* arg */
    descriptor_t L_arg_3; /* arg */
    heapptr_t L_arg_4; /* arg */
    descriptor_t L_result0; /* result0 */

    L_args = ((void *)(orig_sp - 2));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = (((descriptor_t *)L_args)[1]);
    L_arg_3 = L_arg;
    L_arg_4 = L_arg_2.heapptr;
    orig_sp = L_args;
    /* c-name-setter{type-union(<string>, <false>), <declaration>} */
    L_result0 = cdeclZc_declarationsZc_name_setter_METH(orig_sp, L_arg_3, L_arg_4);
    orig_sp[0] = L_result0;
    return orig_sp + 1;
}


/* {Implicit} Define Generic d-name */

/* d-name is d-name */

extern descriptor_t cdeclZc_declarationsZd_name_METH(descriptor_t *orig_sp, heapptr_t A0);	/* d-name{<declaration>} */

/* generic-entry for d-name{<declaration>} */
descriptor_t * cdeclZc_declarationsZd_name_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    descriptor_t L_result0; /* result0 */

    L_args = ((void *)(orig_sp - 1));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    orig_sp = L_args;
    /* d-name{<declaration>} */
    L_result0 = cdeclZc_declarationsZd_name_METH(orig_sp, L_arg_2);
    orig_sp[0] = L_result0;
    return orig_sp + 1;
}


/* {Implicit} Define Generic d-name-setter */

/* d-name-setter is d-name-setter */

extern descriptor_t cdeclZc_declarationsZd_name_setter_METH(descriptor_t *orig_sp, descriptor_t A0, heapptr_t A1);	/* d-name-setter{type-union(<string>, <false>), <declaration>} */

/* generic-entry for d-name-setter{type-union(<string>, <false>), <declaration>} */
descriptor_t * cdeclZc_declarationsZd_name_setter_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    descriptor_t L_arg_2; /* arg */
    descriptor_t L_arg_3; /* arg */
    heapptr_t L_arg_4; /* arg */
    descriptor_t L_result0; /* result0 */

    L_args = ((void *)(orig_sp - 2));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = (((descriptor_t *)L_args)[1]);
    L_arg_3 = L_arg;
    L_arg_4 = L_arg_2.heapptr;
    orig_sp = L_args;
    /* d-name-setter{type-union(<string>, <false>), <declaration>} */
    L_result0 = cdeclZc_declarationsZd_name_setter_METH(orig_sp, L_arg_3, L_arg_4);
    orig_sp[0] = L_result0;
    return orig_sp + 1;
}


/* {Implicit} Define Generic map-type */

/* map-type is map-type */

extern descriptor_t cdeclZc_declarationsZmap_type_METH(descriptor_t *orig_sp, heapptr_t A0);	/* map-type{<declaration>} */

/* generic-entry for map-type{<declaration>} */
descriptor_t * cdeclZc_declarationsZmap_type_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    descriptor_t L_result0; /* result0 */

    L_args = ((void *)(orig_sp - 1));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    orig_sp = L_args;
    /* map-type{<declaration>} */
    L_result0 = cdeclZc_declarationsZmap_type_METH(orig_sp, L_arg_2);
    orig_sp[0] = L_result0;
    return orig_sp + 1;
}


/* {Implicit} Define Generic map-type-setter */

/* map-type-setter is map-type-setter */

extern descriptor_t cdeclZc_declarationsZmap_type_setter_METH(descriptor_t *orig_sp, descriptor_t A0, heapptr_t A1);	/* map-type-setter{type-union(<string>, <false>), <declaration>} */

/* generic-entry for map-type-setter{type-union(<string>, <false>), <declaration>} */
descriptor_t * cdeclZc_declarationsZmap_type_setter_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    descriptor_t L_arg_2; /* arg */
    descriptor_t L_arg_3; /* arg */
    heapptr_t L_arg_4; /* arg */
    descriptor_t L_result0; /* result0 */

    L_args = ((void *)(orig_sp - 2));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = (((descriptor_t *)L_args)[1]);
    L_arg_3 = L_arg;
    L_arg_4 = L_arg_2.heapptr;
    orig_sp = L_args;
    /* map-type-setter{type-union(<string>, <false>), <declaration>} */
    L_result0 = cdeclZc_declarationsZmap_type_setter_METH(orig_sp, L_arg_3, L_arg_4);
    orig_sp[0] = L_result0;
    return orig_sp + 1;
}


/* {Implicit} Define Generic declared? */

/* declared? is declared? */

extern boolean cdeclZc_declarationsZdeclaredQUERY_METH(descriptor_t *orig_sp, heapptr_t A0);	/* declared?{<declaration>} */

/* generic-entry for declared?{<declaration>} */
descriptor_t * cdeclZc_declarationsZdeclaredQUERY_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    boolean L_result0; /* result0 */
    descriptor_t L_temp;

    L_args = ((void *)(orig_sp - 1));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    orig_sp = L_args;
    /* declared?{<declaration>} */
    L_result0 = cdeclZc_declarationsZdeclaredQUERY_METH(orig_sp, L_arg_2);
    L_temp.heapptr = (L_result0 ? obj_True : obj_False);
    L_temp.dataword.l = 0;
    orig_sp[0] = L_temp;
    return orig_sp + 1;
}


/* {Implicit} Define Generic declared?-setter */

/* declared?-setter is declared?-setter */

extern boolean cdeclZc_declarationsZdeclaredQUERY_setter_METH(descriptor_t *orig_sp, boolean A0, heapptr_t A1);	/* declared?-setter{<boolean>, <declaration>} */

/* generic-entry for declared?-setter{<boolean>, <declaration>} */
descriptor_t * cdeclZc_declarationsZdeclaredQUERY_setter_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    descriptor_t L_arg_2; /* arg */
    boolean L_arg_3; /* arg */
    heapptr_t L_arg_4; /* arg */
    boolean L_result0; /* result0 */
    descriptor_t L_temp;

    L_args = ((void *)(orig_sp - 2));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = (((descriptor_t *)L_args)[1]);
    L_arg_3 = (L_arg.heapptr != obj_False);
    L_arg_4 = L_arg_2.heapptr;
    orig_sp = L_args;
    /* declared?-setter{<boolean>, <declaration>} */
    L_result0 = cdeclZc_declarationsZdeclaredQUERY_setter_METH(orig_sp, L_arg_3, L_arg_4);
    L_temp.heapptr = (L_result0 ? obj_True : obj_False);
    L_temp.dataword.l = 0;
    orig_sp[0] = L_temp;
    return orig_sp + 1;
}


/* Define Class <declaration> */

/* <declaration> is <declaration> */

/* getter for simple-name{<declaration>} */
descriptor_t cdeclZc_declarationsZsimple_name_METH(descriptor_t *orig_sp, heapptr_t A0 /* object */)
{
    heapptr_t L_object; /* object */
    descriptor_t L_result; /* result */

    L_object = A0;
    if ((SLOT(SLOT(L_object, heapptr_t, 0), long, 8) < 10004)) {
	L_result = SLOT(L_object, descriptor_t, 12);
    }
    else {
	L_result = SLOT(L_object, descriptor_t, 4);
    }
    return L_result;
}

/* setter for simple-name-setter{<string>, <declaration>} */
descriptor_t cdeclZc_declarationsZsimple_name_setter_METH(descriptor_t *orig_sp, descriptor_t A0 /* new-value */, heapptr_t A1 /* object */)
{
    descriptor_t L_new_value; /* new-value */
    heapptr_t L_object; /* object */

    L_new_value = A0;
    L_object = A1;
    if ((SLOT(SLOT(L_object, heapptr_t, 0), long, 8) < 10004)) {
	SLOT(L_object, descriptor_t, 12) = L_new_value;
    }
    else {
	SLOT(L_object, descriptor_t, 4) = L_new_value;
    }
    return L_new_value;
}

/* getter for c-name{<declaration>} */
descriptor_t cdeclZc_declarationsZc_name_METH(descriptor_t *orig_sp, heapptr_t A0 /* object */)
{
    heapptr_t L_object; /* object */
    descriptor_t L_result; /* result */

    L_object = A0;
    if ((SLOT(SLOT(L_object, heapptr_t, 0), long, 8) < 10004)) {
	L_result = SLOT(L_object, descriptor_t, 20);
    }
    else {
	L_result = SLOT(L_object, descriptor_t, 12);
    }
    return L_result;
}

/* setter for c-name-setter{type-union(<string>, <false>), <declaration>} */
descriptor_t cdeclZc_declarationsZc_name_setter_METH(descriptor_t *orig_sp, descriptor_t A0 /* new-value */, heapptr_t A1 /* object */)
{
    descriptor_t L_new_value; /* new-value */
    heapptr_t L_object; /* object */

    L_new_value = A0;
    L_object = A1;
    if ((SLOT(SLOT(L_object, heapptr_t, 0), long, 8) < 10004)) {
	SLOT(L_object, descriptor_t, 20) = L_new_value;
    }
    else {
	SLOT(L_object, descriptor_t, 12) = L_new_value;
    }
    return L_new_value;
}

/* getter for d-name{<declaration>} */
descriptor_t cdeclZc_declarationsZd_name_METH(descriptor_t *orig_sp, heapptr_t A0 /* object */)
{
    heapptr_t L_object; /* object */
    descriptor_t L_result; /* result */

    L_object = A0;
    if ((SLOT(SLOT(L_object, heapptr_t, 0), long, 8) < 10004)) {
	L_result = SLOT(L_object, descriptor_t, 28);
    }
    else {
	L_result = SLOT(L_object, descriptor_t, 20);
    }
    return L_result;
}

/* setter for d-name-setter{type-union(<string>, <false>), <declaration>} */
descriptor_t cdeclZc_declarationsZd_name_setter_METH(descriptor_t *orig_sp, descriptor_t A0 /* new-value */, heapptr_t A1 /* object */)
{
    descriptor_t L_new_value; /* new-value */
    heapptr_t L_object; /* object */

    L_new_value = A0;
    L_object = A1;
    if ((SLOT(SLOT(L_object, heapptr_t, 0), long, 8) < 10004)) {
	SLOT(L_object, descriptor_t, 28) = L_new_value;
    }
    else {
	SLOT(L_object, descriptor_t, 20) = L_new_value;
    }
    return L_new_value;
}

/* getter for map-type{<declaration>} */
descriptor_t cdeclZc_declarationsZmap_type_METH(descriptor_t *orig_sp, heapptr_t A0 /* object */)
{
    heapptr_t L_object; /* object */
    descriptor_t L_result; /* result */

    L_object = A0;
    if ((SLOT(SLOT(L_object, heapptr_t, 0), long, 8) < 10004)) {
	L_result = SLOT(L_object, descriptor_t, 36);
    }
    else {
	L_result = SLOT(L_object, descriptor_t, 28);
    }
    return L_result;
}

/* setter for map-type-setter{type-union(<string>, <false>), <declaration>} */
descriptor_t cdeclZc_declarationsZmap_type_setter_METH(descriptor_t *orig_sp, descriptor_t A0 /* new-value */, heapptr_t A1 /* object */)
{
    descriptor_t L_new_value; /* new-value */
    heapptr_t L_object; /* object */

    L_new_value = A0;
    L_object = A1;
    if ((SLOT(SLOT(L_object, heapptr_t, 0), long, 8) < 10004)) {
	SLOT(L_object, descriptor_t, 36) = L_new_value;
    }
    else {
	SLOT(L_object, descriptor_t, 28) = L_new_value;
    }
    return L_new_value;
}

/* getter for declared?{<declaration>} */
boolean cdeclZc_declarationsZdeclaredQUERY_METH(descriptor_t *orig_sp, heapptr_t A0 /* object */)
{
    heapptr_t L_object; /* object */
    boolean L_result; /* result */

    L_object = A0;
    if ((SLOT(SLOT(L_object, heapptr_t, 0), long, 8) < 10004)) {
	L_result = SLOT(L_object, bool, 44);
    }
    else {
	L_result = SLOT(L_object, bool, 36);
    }
    return L_result;
}

/* setter for declared?-setter{<boolean>, <declaration>} */
boolean cdeclZc_declarationsZdeclaredQUERY_setter_METH(descriptor_t *orig_sp, boolean A0 /* new-value */, heapptr_t A1 /* object */)
{
    boolean L_new_value; /* new-value */
    heapptr_t L_object; /* object */

    L_new_value = A0;
    L_object = A1;
    if ((SLOT(SLOT(L_object, heapptr_t, 0), long, 8) < 10004)) {
	SLOT(L_object, bool, 44) = L_new_value;
    }
    else {
	SLOT(L_object, bool, 36) = L_new_value;
    }
    return L_new_value;
}


/* {Implicit} Define Generic type */

/* type is type */

extern heapptr_t dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(descriptor_t *orig_sp, long A0, descriptor_t A1);	/* maker for <simple-object-vector> */

extern void dylanZdylan_visceraZno_applicable_methods_error_METH(descriptor_t *orig_sp, heapptr_t A0, heapptr_t A1);	/* no-applicable-methods-error{<generic-function>, <simple-object-vector>} */

extern descriptor_t cdeclZc_declarationsZtype_2;	/* type */

/* discriminator for type */
descriptor_t * cdeclZc_declarationsZtype_DISCRIM_FUN(descriptor_t *orig_sp, descriptor_t A0 /* arg0 */)
{
    descriptor_t L_arg0; /* arg0 */
    long L_unique_id; /* unique-id */
    heapptr_t L_instance; /* instance */
    heapptr_t L_type; /* type */
    heapptr_t L_result0; /* result0 */
    heapptr_t L_type_2; /* type */
    heapptr_t L_instance_2; /* instance */
    heapptr_t L_type_3; /* type */
    heapptr_t L_instance_3; /* instance */
    descriptor_t L_temp;

    L_arg0 = A0;
    L_unique_id = SLOT(SLOT(L_arg0.heapptr, heapptr_t, 0), long, 8);
    if ((L_unique_id < 10097)) {
	if ((L_unique_id < 10090)) {
	    if ((L_unique_id < 10089)) {
		/* maker for <simple-object-vector> */
		L_instance = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 1, dylanZfalse);
		SLOT(L_instance, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_arg0;
		/* no-applicable-methods-error{<generic-function>, <simple-object-vector>} */
		dylanZdylan_visceraZno_applicable_methods_error_METH(orig_sp, cdeclZc_declarationsZtype_2.heapptr, L_instance);
		not_reached();
	    }
	    else {
		L_type = SLOT(L_arg0.heapptr, heapptr_t, 40);
		L_result0 = L_type;
	    }
	}
	else {
	    L_type_2 = SLOT(L_arg0.heapptr, heapptr_t, 40);
	    L_result0 = L_type_2;
	}
    }
    else if ((L_unique_id < 10103)) {
	if ((L_unique_id < 10102)) {
	    /* maker for <simple-object-vector> */
	    L_instance_2 = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 1, dylanZfalse);
	    SLOT(L_instance_2, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_arg0;
	    /* no-applicable-methods-error{<generic-function>, <simple-object-vector>} */
	    dylanZdylan_visceraZno_applicable_methods_error_METH(orig_sp, cdeclZc_declarationsZtype_2.heapptr, L_instance_2);
	    not_reached();
	}
	else {
	    L_type_3 = SLOT(L_arg0.heapptr, heapptr_t, 40);
	    L_result0 = L_type_3;
	}
    }
    else {
	/* maker for <simple-object-vector> */
	L_instance_3 = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 1, dylanZfalse);
	SLOT(L_instance_3, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_arg0;
	/* no-applicable-methods-error{<generic-function>, <simple-object-vector>} */
	dylanZdylan_visceraZno_applicable_methods_error_METH(orig_sp, cdeclZc_declarationsZtype_2.heapptr, L_instance_3);
	not_reached();
    }
    L_temp.heapptr = L_result0;
    L_temp.dataword.l = 0;
    orig_sp[0] = L_temp;
    return orig_sp + 1;
}

extern void dylanZdylan_visceraZwrong_number_of_arguments_error_METH(descriptor_t *orig_sp, boolean A0, long A1, long A2);	/* wrong-number-of-arguments-error{<boolean>, <integer>, <integer>} */

/* general-entry for discriminator for type */
descriptor_t * cdeclZc_declarationsZtype_DISCRIM_GENERAL(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */)
{
    descriptor_t *cluster_0_top;
    long L_nargs; /* nargs */
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */

    L_nargs = A1;
    if ((L_nargs == 1)) {
	L_args = ((void *)(orig_sp - 1));
	L_arg = (((descriptor_t *)L_args)[0]);
	orig_sp = L_args;
	/* discriminator for type */
	cluster_0_top = cdeclZc_declarationsZtype_DISCRIM_FUN(orig_sp, L_arg);
	return cluster_0_top;
    }
    else {
	/* wrong-number-of-arguments-error{<boolean>, <integer>, <integer>} */
	dylanZdylan_visceraZwrong_number_of_arguments_error_METH(orig_sp, TRUE, 1, L_nargs);
	not_reached();
    }
}


/* {Implicit} Define Generic type-setter */

/* type-setter is type-setter */

extern descriptor_t cdeclZc_declarationsZtype_setter_2;	/* type-setter */

/* discriminator for type-setter */
descriptor_t * cdeclZc_declarationsZtype_setter_DISCRIM_FUN(descriptor_t *orig_sp, descriptor_t A0 /* arg0 */, descriptor_t A1 /* arg1 */)
{
    descriptor_t L_arg0; /* arg0 */
    descriptor_t L_arg1; /* arg1 */
    long L_unique_id; /* unique-id */
    heapptr_t L_instance; /* instance */
    heapptr_t L_arg0_2; /* arg0 */
    long L_unique_id_2; /* unique-id */
    heapptr_t L_instance_2; /* instance */
    descriptor_t L_temp;
    heapptr_t L_result0; /* result0 */
    heapptr_t L_instance_3; /* instance */
    descriptor_t L_temp_2;
    heapptr_t L_instance_4; /* instance */
    descriptor_t L_temp_3;
    heapptr_t L_instance_5; /* instance */
    heapptr_t L_arg0_3; /* arg0 */
    long L_unique_id_3; /* unique-id */
    heapptr_t L_instance_6; /* instance */
    descriptor_t L_temp_4;
    heapptr_t L_instance_7; /* instance */
    descriptor_t L_temp_5;
    heapptr_t L_instance_8; /* instance */
    descriptor_t L_temp_6;
    heapptr_t L_arg0_4; /* arg0 */
    long L_unique_id_4; /* unique-id */
    heapptr_t L_instance_9; /* instance */
    descriptor_t L_temp_7;
    heapptr_t L_instance_10; /* instance */
    descriptor_t L_temp_8;
    heapptr_t L_instance_11; /* instance */
    descriptor_t L_temp_9;
    heapptr_t L_arg0_5; /* arg0 */
    long L_unique_id_5; /* unique-id */
    heapptr_t L_instance_12; /* instance */
    descriptor_t L_temp_10;
    heapptr_t L_instance_13; /* instance */
    descriptor_t L_temp_11;
    heapptr_t L_instance_14; /* instance */
    descriptor_t L_temp_12;
    heapptr_t L_instance_15; /* instance */
    descriptor_t L_temp_13;

    L_arg0 = A0;
    L_arg1 = A1;
    L_unique_id = SLOT(SLOT(L_arg0.heapptr, heapptr_t, 0), long, 8);
    if ((L_unique_id < 10099)) {
	if ((L_unique_id < 10004)) {
	    if ((L_unique_id < 10000)) {
		/* maker for <simple-object-vector> */
		L_instance = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 2, dylanZfalse);
		SLOT(L_instance, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_arg0;
		SLOT(L_instance, descriptor_t, 8 + 1 * sizeof(descriptor_t)) = L_arg1;
		/* no-applicable-methods-error{<generic-function>, <simple-object-vector>} */
		dylanZdylan_visceraZno_applicable_methods_error_METH(orig_sp, cdeclZc_declarationsZtype_setter_2.heapptr, L_instance);
		not_reached();
	    }
	    else {
		L_arg0_2 = L_arg0.heapptr;
		L_unique_id_2 = SLOT(SLOT(L_arg1.heapptr, heapptr_t, 0), long, 8);
		if ((L_unique_id_2 < 10102)) {
		    if ((L_unique_id_2 < 10097)) {
			if ((L_unique_id_2 < 10090)) {
			    /* maker for <simple-object-vector> */
			    L_instance_2 = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 2, dylanZfalse);
			    L_temp.heapptr = L_arg0_2;
			    L_temp.dataword.l = 0;
			    SLOT(L_instance_2, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_temp;
			    SLOT(L_instance_2, descriptor_t, 8 + 1 * sizeof(descriptor_t)) = L_arg1;
			    /* no-applicable-methods-error{<generic-function>, <simple-object-vector>} */
			    dylanZdylan_visceraZno_applicable_methods_error_METH(orig_sp, cdeclZc_declarationsZtype_setter_2.heapptr, L_instance_2);
			    not_reached();
			}
			else {
			    SLOT(L_arg1.heapptr, heapptr_t, 40) = L_arg0_2;
			    L_result0 = L_arg0_2;
			}
		    }
		    else {
			/* maker for <simple-object-vector> */
			L_instance_3 = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 2, dylanZfalse);
			L_temp_2.heapptr = L_arg0_2;
			L_temp_2.dataword.l = 0;
			SLOT(L_instance_3, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_temp_2;
			SLOT(L_instance_3, descriptor_t, 8 + 1 * sizeof(descriptor_t)) = L_arg1;
			/* no-applicable-methods-error{<generic-function>, <simple-object-vector>} */
			dylanZdylan_visceraZno_applicable_methods_error_METH(orig_sp, cdeclZc_declarationsZtype_setter_2.heapptr, L_instance_3);
			not_reached();
		    }
		}
		else if ((L_unique_id_2 < 10103)) {
		    SLOT(L_arg1.heapptr, heapptr_t, 40) = L_arg0_2;
		    L_result0 = L_arg0_2;
		}
		else {
		    /* maker for <simple-object-vector> */
		    L_instance_4 = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 2, dylanZfalse);
		    L_temp_3.heapptr = L_arg0_2;
		    L_temp_3.dataword.l = 0;
		    SLOT(L_instance_4, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_temp_3;
		    SLOT(L_instance_4, descriptor_t, 8 + 1 * sizeof(descriptor_t)) = L_arg1;
		    /* no-applicable-methods-error{<generic-function>, <simple-object-vector>} */
		    dylanZdylan_visceraZno_applicable_methods_error_METH(orig_sp, cdeclZc_declarationsZtype_setter_2.heapptr, L_instance_4);
		    not_reached();
		}
	    }
	}
	else if ((L_unique_id < 10097)) {
	    /* maker for <simple-object-vector> */
	    L_instance_5 = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 2, dylanZfalse);
	    SLOT(L_instance_5, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_arg0;
	    SLOT(L_instance_5, descriptor_t, 8 + 1 * sizeof(descriptor_t)) = L_arg1;
	    /* no-applicable-methods-error{<generic-function>, <simple-object-vector>} */
	    dylanZdylan_visceraZno_applicable_methods_error_METH(orig_sp, cdeclZc_declarationsZtype_setter_2.heapptr, L_instance_5);
	    not_reached();
	}
	else {
	    L_arg0_3 = L_arg0.heapptr;
	    L_unique_id_3 = SLOT(SLOT(L_arg1.heapptr, heapptr_t, 0), long, 8);
	    if ((L_unique_id_3 < 10102)) {
		if ((L_unique_id_3 < 10097)) {
		    if ((L_unique_id_3 < 10090)) {
			/* maker for <simple-object-vector> */
			L_instance_6 = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 2, dylanZfalse);
			L_temp_4.heapptr = L_arg0_3;
			L_temp_4.dataword.l = 0;
			SLOT(L_instance_6, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_temp_4;
			SLOT(L_instance_6, descriptor_t, 8 + 1 * sizeof(descriptor_t)) = L_arg1;
			/* no-applicable-methods-error{<generic-function>, <simple-object-vector>} */
			dylanZdylan_visceraZno_applicable_methods_error_METH(orig_sp, cdeclZc_declarationsZtype_setter_2.heapptr, L_instance_6);
			not_reached();
		    }
		    else {
			SLOT(L_arg1.heapptr, heapptr_t, 40) = L_arg0_3;
			L_result0 = L_arg0_3;
		    }
		}
		else {
		    /* maker for <simple-object-vector> */
		    L_instance_7 = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 2, dylanZfalse);
		    L_temp_5.heapptr = L_arg0_3;
		    L_temp_5.dataword.l = 0;
		    SLOT(L_instance_7, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_temp_5;
		    SLOT(L_instance_7, descriptor_t, 8 + 1 * sizeof(descriptor_t)) = L_arg1;
		    /* no-applicable-methods-error{<generic-function>, <simple-object-vector>} */
		    dylanZdylan_visceraZno_applicable_methods_error_METH(orig_sp, cdeclZc_declarationsZtype_setter_2.heapptr, L_instance_7);
		    not_reached();
		}
	    }
	    else if ((L_unique_id_3 < 10103)) {
		SLOT(L_arg1.heapptr, heapptr_t, 40) = L_arg0_3;
		L_result0 = L_arg0_3;
	    }
	    else {
		/* maker for <simple-object-vector> */
		L_instance_8 = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 2, dylanZfalse);
		L_temp_6.heapptr = L_arg0_3;
		L_temp_6.dataword.l = 0;
		SLOT(L_instance_8, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_temp_6;
		SLOT(L_instance_8, descriptor_t, 8 + 1 * sizeof(descriptor_t)) = L_arg1;
		/* no-applicable-methods-error{<generic-function>, <simple-object-vector>} */
		dylanZdylan_visceraZno_applicable_methods_error_METH(orig_sp, cdeclZc_declarationsZtype_setter_2.heapptr, L_instance_8);
		not_reached();
	    }
	}
    }
    else if ((L_unique_id < 10105)) {
	if ((L_unique_id < 10102)) {
	    L_arg0_4 = L_arg0.heapptr;
	    L_unique_id_4 = SLOT(SLOT(L_arg1.heapptr, heapptr_t, 0), long, 8);
	    if ((L_unique_id_4 < 10097)) {
		if ((L_unique_id_4 < 10090)) {
		    if ((L_unique_id_4 < 10089)) {
			/* maker for <simple-object-vector> */
			L_instance_9 = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 2, dylanZfalse);
			L_temp_7.heapptr = L_arg0_4;
			L_temp_7.dataword.l = 0;
			SLOT(L_instance_9, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_temp_7;
			SLOT(L_instance_9, descriptor_t, 8 + 1 * sizeof(descriptor_t)) = L_arg1;
			/* no-applicable-methods-error{<generic-function>, <simple-object-vector>} */
			dylanZdylan_visceraZno_applicable_methods_error_METH(orig_sp, cdeclZc_declarationsZtype_setter_2.heapptr, L_instance_9);
			not_reached();
		    }
		    else {
			SLOT(L_arg1.heapptr, heapptr_t, 40) = L_arg0_4;
			L_result0 = L_arg0_4;
		    }
		}
		else {
		    SLOT(L_arg1.heapptr, heapptr_t, 40) = L_arg0_4;
		    L_result0 = L_arg0_4;
		}
	    }
	    else if ((L_unique_id_4 < 10103)) {
		if ((L_unique_id_4 < 10102)) {
		    /* maker for <simple-object-vector> */
		    L_instance_10 = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 2, dylanZfalse);
		    L_temp_8.heapptr = L_arg0_4;
		    L_temp_8.dataword.l = 0;
		    SLOT(L_instance_10, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_temp_8;
		    SLOT(L_instance_10, descriptor_t, 8 + 1 * sizeof(descriptor_t)) = L_arg1;
		    /* no-applicable-methods-error{<generic-function>, <simple-object-vector>} */
		    dylanZdylan_visceraZno_applicable_methods_error_METH(orig_sp, cdeclZc_declarationsZtype_setter_2.heapptr, L_instance_10);
		    not_reached();
		}
		else {
		    SLOT(L_arg1.heapptr, heapptr_t, 40) = L_arg0_4;
		    L_result0 = L_arg0_4;
		}
	    }
	    else {
		/* maker for <simple-object-vector> */
		L_instance_11 = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 2, dylanZfalse);
		L_temp_9.heapptr = L_arg0_4;
		L_temp_9.dataword.l = 0;
		SLOT(L_instance_11, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_temp_9;
		SLOT(L_instance_11, descriptor_t, 8 + 1 * sizeof(descriptor_t)) = L_arg1;
		/* no-applicable-methods-error{<generic-function>, <simple-object-vector>} */
		dylanZdylan_visceraZno_applicable_methods_error_METH(orig_sp, cdeclZc_declarationsZtype_setter_2.heapptr, L_instance_11);
		not_reached();
	    }
	}
	else {
	    L_arg0_5 = L_arg0.heapptr;
	    L_unique_id_5 = SLOT(SLOT(L_arg1.heapptr, heapptr_t, 0), long, 8);
	    if ((L_unique_id_5 < 10102)) {
		if ((L_unique_id_5 < 10097)) {
		    if ((L_unique_id_5 < 10090)) {
			/* maker for <simple-object-vector> */
			L_instance_12 = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 2, dylanZfalse);
			L_temp_10.heapptr = L_arg0_5;
			L_temp_10.dataword.l = 0;
			SLOT(L_instance_12, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_temp_10;
			SLOT(L_instance_12, descriptor_t, 8 + 1 * sizeof(descriptor_t)) = L_arg1;
			/* no-applicable-methods-error{<generic-function>, <simple-object-vector>} */
			dylanZdylan_visceraZno_applicable_methods_error_METH(orig_sp, cdeclZc_declarationsZtype_setter_2.heapptr, L_instance_12);
			not_reached();
		    }
		    else {
			SLOT(L_arg1.heapptr, heapptr_t, 40) = L_arg0_5;
			L_result0 = L_arg0_5;
		    }
		}
		else {
		    /* maker for <simple-object-vector> */
		    L_instance_13 = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 2, dylanZfalse);
		    L_temp_11.heapptr = L_arg0_5;
		    L_temp_11.dataword.l = 0;
		    SLOT(L_instance_13, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_temp_11;
		    SLOT(L_instance_13, descriptor_t, 8 + 1 * sizeof(descriptor_t)) = L_arg1;
		    /* no-applicable-methods-error{<generic-function>, <simple-object-vector>} */
		    dylanZdylan_visceraZno_applicable_methods_error_METH(orig_sp, cdeclZc_declarationsZtype_setter_2.heapptr, L_instance_13);
		    not_reached();
		}
	    }
	    else if ((L_unique_id_5 < 10103)) {
		SLOT(L_arg1.heapptr, heapptr_t, 40) = L_arg0_5;
		L_result0 = L_arg0_5;
	    }
	    else {
		/* maker for <simple-object-vector> */
		L_instance_14 = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 2, dylanZfalse);
		L_temp_12.heapptr = L_arg0_5;
		L_temp_12.dataword.l = 0;
		SLOT(L_instance_14, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_temp_12;
		SLOT(L_instance_14, descriptor_t, 8 + 1 * sizeof(descriptor_t)) = L_arg1;
		/* no-applicable-methods-error{<generic-function>, <simple-object-vector>} */
		dylanZdylan_visceraZno_applicable_methods_error_METH(orig_sp, cdeclZc_declarationsZtype_setter_2.heapptr, L_instance_14);
		not_reached();
	    }
	}
    }
    else {
	/* maker for <simple-object-vector> */
	L_instance_15 = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 2, dylanZfalse);
	SLOT(L_instance_15, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_arg0;
	SLOT(L_instance_15, descriptor_t, 8 + 1 * sizeof(descriptor_t)) = L_arg1;
	/* no-applicable-methods-error{<generic-function>, <simple-object-vector>} */
	dylanZdylan_visceraZno_applicable_methods_error_METH(orig_sp, cdeclZc_declarationsZtype_setter_2.heapptr, L_instance_15);
	not_reached();
    }
    L_temp_13.heapptr = L_result0;
    L_temp_13.dataword.l = 0;
    orig_sp[0] = L_temp_13;
    return orig_sp + 1;
}

/* general-entry for discriminator for type-setter */
descriptor_t * cdeclZc_declarationsZtype_setter_DISCRIM_GENERAL(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */)
{
    descriptor_t *cluster_0_top;
    long L_nargs; /* nargs */
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    descriptor_t L_arg_2; /* arg */

    L_nargs = A1;
    if ((L_nargs == 2)) {
	L_args = ((void *)(orig_sp - 2));
	L_arg = (((descriptor_t *)L_args)[0]);
	L_arg_2 = (((descriptor_t *)L_args)[1]);
	orig_sp = L_args;
	/* discriminator for type-setter */
	cluster_0_top = cdeclZc_declarationsZtype_setter_DISCRIM_FUN(orig_sp, L_arg, L_arg_2);
	return cluster_0_top;
    }
    else {
	/* wrong-number-of-arguments-error{<boolean>, <integer>, <integer>} */
	dylanZdylan_visceraZwrong_number_of_arguments_error_METH(orig_sp, TRUE, 2, L_nargs);
	not_reached();
    }
}


/* Define Class <typed> */

/* <typed> is <typed> */

/* getter for type{<typed>} */
heapptr_t cdeclZc_declarationsZtype_METH(descriptor_t *orig_sp, heapptr_t A0 /* object */)
{
    heapptr_t L_result; /* result */

    L_result = SLOT(A0, heapptr_t, 40);
    return L_result;
}

/* setter for type-setter{<type-declaration>, <typed>} */
heapptr_t cdeclZc_declarationsZtype_setter_METH(descriptor_t *orig_sp, heapptr_t A0 /* new-value */, heapptr_t A1 /* object */)
{
    heapptr_t L_new_value; /* new-value */

    L_new_value = A0;
    SLOT(A1, heapptr_t, 40) = L_new_value;
    return L_new_value;
}


/* Define Generic mapped-name */

/* mapped-name is mapped-name */

extern void dylanZdylan_visceraZverify_keywords_METH_2(descriptor_t *orig_sp, heapptr_t A0, heapptr_t A1);	/* verify-keywords{<simple-object-vector>, <simple-object-vector>} */

extern descriptor_t cdeclZliteral_24;	/* {a <simple-object-vector>} */

extern descriptor_t cdeclZliteral_25;	/* {a <pair>} */

extern descriptor_t * cdeclZc_declarationsZmapped_name_METH_GENERIC_2(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */, heapptr_t A2 /* next-info */);

extern descriptor_t cdeclZc_declarationsZmapped_name_METH_2;	/* mapped-name{<vector-declaration>} */

extern descriptor_t * cdeclZc_declarationsZmapped_name_METH_GENERIC_3(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */, heapptr_t A2 /* next-info */);

extern descriptor_t cdeclZc_declarationsZmapped_name_METH_3;	/* mapped-name{<pointer-declaration>} */

extern descriptor_t dylanZempty_list;	/* #() */

extern descriptor_t * cdeclZc_declarationsZmapped_name_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */, heapptr_t A2 /* next-info */);

extern descriptor_t cdeclZc_declarationsZmapped_name_METH_4;	/* mapped-name{<declaration>} */

extern heapptr_t dylanZdylan_visceraZmake_rest_arg_FUN(descriptor_t *orig_sp, void * A0, long A1);	/* make-rest-arg */

extern descriptor_t cdeclZc_declarationsZmapped_name_2;	/* mapped-name */

extern descriptor_t * cdeclZc_declarationsZmapped_name_METH_GENERIC_4(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */, heapptr_t A2 /* next-info */);

extern descriptor_t cdeclZc_declarationsZmapped_name_METH_5;	/* mapped-name{<object-declaration>} */

extern descriptor_t * cdeclZc_declarationsZmapped_name_METH_GENERIC_5(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */, heapptr_t A2 /* next-info */);

extern descriptor_t cdeclZc_declarationsZmapped_name_METH_6;	/* mapped-name{<typedef-declaration>} */

/* discriminator for mapped-name */
descriptor_t cdeclZc_declarationsZmapped_name_DISCRIM_FUN(descriptor_t *orig_sp, heapptr_t A0 /* arg0 */, heapptr_t A1 /* rest */)
{
    descriptor_t *cluster_0_top;
    descriptor_t *cluster_1_top;
    heapptr_t L_arg0; /* arg0 */
    heapptr_t L_rest; /* rest */
    long L_unique_id; /* unique-id */
    descriptor_t L_temp;
    descriptor_t L_result0; /* result0 */
    descriptor_t L_temp_2;
    descriptor_t L_temp_3;
    descriptor_t L_temp_4;
    heapptr_t L_temp_5; /* temp */
    descriptor_t L_temp_6;
    descriptor_t L_temp_7;
    descriptor_t L_temp_8;
    descriptor_t L_temp_9;
    descriptor_t L_temp_10;

    L_arg0 = A0;
    L_rest = A1;
    L_unique_id = SLOT(SLOT(L_arg0, heapptr_t, 0), long, 8);
    if ((L_unique_id < 10091)) {
	if ((L_unique_id < 10004)) {
	    if ((L_unique_id < 10002)) {
		if ((L_unique_id < 10001)) {
		    /* verify-keywords{<simple-object-vector>, <simple-object-vector>} */
		    dylanZdylan_visceraZverify_keywords_METH_2(orig_sp, L_rest, cdeclZliteral_24.heapptr);
		    L_temp.heapptr = L_arg0;
		    L_temp.dataword.l = 0;
		    cluster_0_top = orig_sp + 1;
		    orig_sp[0] = L_temp;
		    cluster_1_top = values_sequence(cluster_0_top, L_rest);
		    cluster_0_top = cluster_1_top;
		    /* mapped-name{<vector-declaration>} */
		    cluster_0_top = cdeclZc_declarationsZmapped_name_METH_GENERIC_2(cluster_0_top, cdeclZc_declarationsZmapped_name_METH_2.heapptr, cluster_0_top - orig_sp, cdeclZliteral_25.heapptr);
		    L_result0 = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
		}
		else {
		    /* verify-keywords{<simple-object-vector>, <simple-object-vector>} */
		    dylanZdylan_visceraZverify_keywords_METH_2(orig_sp, L_rest, cdeclZliteral_24.heapptr);
		    L_temp_2.heapptr = L_arg0;
		    L_temp_2.dataword.l = 0;
		    cluster_0_top = orig_sp + 1;
		    orig_sp[0] = L_temp_2;
		    cluster_1_top = values_sequence(cluster_0_top, L_rest);
		    cluster_0_top = cluster_1_top;
		    /* mapped-name{<pointer-declaration>} */
		    cluster_0_top = cdeclZc_declarationsZmapped_name_METH_GENERIC_3(cluster_0_top, cdeclZc_declarationsZmapped_name_METH_3.heapptr, cluster_0_top - orig_sp, cdeclZliteral_25.heapptr);
		    L_result0 = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
		}
	    }
	    else {
		/* verify-keywords{<simple-object-vector>, <simple-object-vector>} */
		dylanZdylan_visceraZverify_keywords_METH_2(orig_sp, L_rest, cdeclZliteral_24.heapptr);
		L_temp_3.heapptr = L_arg0;
		L_temp_3.dataword.l = 0;
		cluster_0_top = orig_sp + 1;
		orig_sp[0] = L_temp_3;
		cluster_1_top = values_sequence(cluster_0_top, L_rest);
		cluster_0_top = cluster_1_top;
		/* mapped-name{<declaration>} */
		cluster_0_top = cdeclZc_declarationsZmapped_name_METH_GENERIC(cluster_0_top, cdeclZc_declarationsZmapped_name_METH_4.heapptr, cluster_0_top - orig_sp, dylanZempty_list.heapptr);
		L_result0 = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
	    }
	}
	else if ((L_unique_id < 10087)) {
	    L_temp_4.heapptr = L_arg0;
	    L_temp_4.dataword.l = 0;
	    cluster_0_top = orig_sp + 1;
	    orig_sp[0] = L_temp_4;
	    cluster_1_top = values_sequence(cluster_0_top, L_rest);
	    cluster_0_top = cluster_1_top;
	    L_temp_5 = dylanZdylan_visceraZmake_rest_arg_FUN(cluster_0_top, orig_sp + 0, cluster_0_top - orig_sp - 0);
	    /* no-applicable-methods-error{<generic-function>, <simple-object-vector>} */
	    dylanZdylan_visceraZno_applicable_methods_error_METH(orig_sp, cdeclZc_declarationsZmapped_name_2.heapptr, L_temp_5);
	    not_reached();
	}
	else {
	    /* verify-keywords{<simple-object-vector>, <simple-object-vector>} */
	    dylanZdylan_visceraZverify_keywords_METH_2(orig_sp, L_rest, cdeclZliteral_24.heapptr);
	    L_temp_6.heapptr = L_arg0;
	    L_temp_6.dataword.l = 0;
	    cluster_0_top = orig_sp + 1;
	    orig_sp[0] = L_temp_6;
	    cluster_1_top = values_sequence(cluster_0_top, L_rest);
	    cluster_0_top = cluster_1_top;
	    /* mapped-name{<declaration>} */
	    cluster_0_top = cdeclZc_declarationsZmapped_name_METH_GENERIC(cluster_0_top, cdeclZc_declarationsZmapped_name_METH_4.heapptr, cluster_0_top - orig_sp, dylanZempty_list.heapptr);
	    L_result0 = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
	}
    }
    else if ((L_unique_id < 10102)) {
	if ((L_unique_id < 10097)) {
	    /* verify-keywords{<simple-object-vector>, <simple-object-vector>} */
	    dylanZdylan_visceraZverify_keywords_METH_2(orig_sp, L_rest, cdeclZliteral_24.heapptr);
	    L_temp_7.heapptr = L_arg0;
	    L_temp_7.dataword.l = 0;
	    cluster_0_top = orig_sp + 1;
	    orig_sp[0] = L_temp_7;
	    cluster_1_top = values_sequence(cluster_0_top, L_rest);
	    cluster_0_top = cluster_1_top;
	    /* mapped-name{<object-declaration>} */
	    cluster_0_top = cdeclZc_declarationsZmapped_name_METH_GENERIC_4(cluster_0_top, cdeclZc_declarationsZmapped_name_METH_5.heapptr, cluster_0_top - orig_sp, cdeclZliteral_25.heapptr);
	    L_result0 = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
	}
	else {
	    /* verify-keywords{<simple-object-vector>, <simple-object-vector>} */
	    dylanZdylan_visceraZverify_keywords_METH_2(orig_sp, L_rest, cdeclZliteral_24.heapptr);
	    L_temp_8.heapptr = L_arg0;
	    L_temp_8.dataword.l = 0;
	    cluster_0_top = orig_sp + 1;
	    orig_sp[0] = L_temp_8;
	    cluster_1_top = values_sequence(cluster_0_top, L_rest);
	    cluster_0_top = cluster_1_top;
	    /* mapped-name{<declaration>} */
	    cluster_0_top = cdeclZc_declarationsZmapped_name_METH_GENERIC(cluster_0_top, cdeclZc_declarationsZmapped_name_METH_4.heapptr, cluster_0_top - orig_sp, dylanZempty_list.heapptr);
	    L_result0 = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
	}
    }
    else if ((L_unique_id < 10103)) {
	/* verify-keywords{<simple-object-vector>, <simple-object-vector>} */
	dylanZdylan_visceraZverify_keywords_METH_2(orig_sp, L_rest, cdeclZliteral_24.heapptr);
	L_temp_9.heapptr = L_arg0;
	L_temp_9.dataword.l = 0;
	cluster_0_top = orig_sp + 1;
	orig_sp[0] = L_temp_9;
	cluster_1_top = values_sequence(cluster_0_top, L_rest);
	cluster_0_top = cluster_1_top;
	/* mapped-name{<typedef-declaration>} */
	cluster_0_top = cdeclZc_declarationsZmapped_name_METH_GENERIC_5(cluster_0_top, cdeclZc_declarationsZmapped_name_METH_6.heapptr, cluster_0_top - orig_sp, cdeclZliteral_25.heapptr);
	L_result0 = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
    }
    else {
	/* verify-keywords{<simple-object-vector>, <simple-object-vector>} */
	dylanZdylan_visceraZverify_keywords_METH_2(orig_sp, L_rest, cdeclZliteral_24.heapptr);
	L_temp_10.heapptr = L_arg0;
	L_temp_10.dataword.l = 0;
	cluster_0_top = orig_sp + 1;
	orig_sp[0] = L_temp_10;
	cluster_1_top = values_sequence(cluster_0_top, L_rest);
	cluster_0_top = cluster_1_top;
	/* mapped-name{<declaration>} */
	cluster_0_top = cdeclZc_declarationsZmapped_name_METH_GENERIC(cluster_0_top, cdeclZc_declarationsZmapped_name_METH_4.heapptr, cluster_0_top - orig_sp, dylanZempty_list.heapptr);
	L_result0 = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
    }
    return L_result0;
}

extern void dylanZdylan_visceraZodd_number_of_keywordSLASHvalue_arguments_error_METH(descriptor_t *orig_sp);	/* odd-number-of-keyword/value-arguments-error{} */

extern descriptor_t cdeclZc_declarationsZCLS_varargs_declaration;	/* <varargs-declaration> */

extern descriptor_t cdeclZc_declarationsZCLS_arg_declaration;	/* <arg-declaration> */

extern descriptor_t cdeclZc_declarationsZCLS_bitfield_declaration;	/* <bitfield-declaration> */

extern descriptor_t cdeclZc_declarationsZCLS_incomplete_type_declaration;	/* <incomplete-type-declaration> */

extern descriptor_t cdeclZc_declarationsZCLS_result_declaration;	/* <result-declaration> */

extern descriptor_t cdeclZc_declarationsZCLS_macro_declaration;	/* <macro-declaration> */

extern descriptor_t cdeclZc_declarationsZCLS_function_declaration;	/* <function-declaration> */

extern descriptor_t cdeclZc_declarationsZCLS_variable_declaration;	/* <variable-declaration> */

extern descriptor_t cdeclZc_declarationsZCLS_enum_slot_declaration;	/* <enum-slot-declaration> */

extern descriptor_t cdeclZc_declarationsZCLS_coalesced_bitfields;	/* <coalesced-bitfields> */

extern descriptor_t cdeclZc_declarationsZCLS_slot_declaration;	/* <slot-declaration> */

extern descriptor_t cdeclZc_declarationsZCLS_object_declaration;	/* <object-declaration> */

extern descriptor_t cdeclZc_declarationsZCLS_float_type_declaration;	/* <float-type-declaration> */

extern descriptor_t cdeclZc_declarationsZCLS_integer_type_declaration;	/* <integer-type-declaration> */

extern descriptor_t cdeclZc_declarationsZCLS_predefined_type_declaration;	/* <predefined-type-declaration> */

extern descriptor_t cdeclZc_declarationsZCLS_typedef_declaration;	/* <typedef-declaration> */

extern descriptor_t cdeclZc_declarationsZCLS_function_type_declaration;	/* <function-type-declaration> */

extern descriptor_t cdeclZc_declarationsZCLS_vector_declaration;	/* <vector-declaration> */

extern descriptor_t cdeclZc_declarationsZCLS_pointer_declaration;	/* <pointer-declaration> */

extern descriptor_t cdeclZc_declarationsZCLS_enum_declaration;	/* <enum-declaration> */

extern descriptor_t cdeclZc_declarationsZCLS_struct_declaration;	/* <struct-declaration> */

extern descriptor_t cdeclZc_declarationsZCLS_union_declaration;	/* <union-declaration> */

extern descriptor_t dylanZdylan_visceraZCLS_symbol;	/* <symbol> */

extern void dylanZdylan_visceraZtype_error_METH(descriptor_t *orig_sp, descriptor_t A0, heapptr_t A1);	/* type-error{<object>, <type>} */

extern descriptor_t cdeclZc_declarationsZCLS_declaration;	/* <declaration> */

/* general-entry for discriminator for mapped-name */
descriptor_t * cdeclZc_declarationsZmapped_name_DISCRIM_GENERAL(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */)
{
    long L_nargs; /* nargs */
    void * L_args; /* args */
    descriptor_t L_temp; /* temp */
    heapptr_t L_PCTobject_class; /* %object-class */
    boolean L_temp_2; /* temp */
    heapptr_t L_rest; /* rest */
    heapptr_t L_arg; /* arg */
    long L_index; /* index */
    descriptor_t L_temp_3; /* temp */
    descriptor_t L_result0; /* result0 */

    L_nargs = A1;
    if ((L_nargs < 1)) {
	/* wrong-number-of-arguments-error{<boolean>, <integer>, <integer>} */
	dylanZdylan_visceraZwrong_number_of_arguments_error_METH(orig_sp, FALSE, 1, L_nargs);
	not_reached();
    }
    else {
	if (((L_nargs & 1) == 0)) {
	    /* odd-number-of-keyword/value-arguments-error{} */
	    dylanZdylan_visceraZodd_number_of_keywordSLASHvalue_arguments_error_METH(orig_sp);
	    not_reached();
	}
	else {
	    L_args = ((void *)(orig_sp - L_nargs));
	    L_temp = (((descriptor_t *)L_args)[0]);
	    L_PCTobject_class = SLOT(L_temp.heapptr, heapptr_t, 0);
	    if ((cdeclZc_declarationsZCLS_varargs_declaration.heapptr == L_PCTobject_class)) {
		L_temp_2 = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_arg_declaration.heapptr == L_PCTobject_class)) {
		L_temp_2 = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_bitfield_declaration.heapptr == L_PCTobject_class)) {
		L_temp_2 = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_incomplete_type_declaration.heapptr == L_PCTobject_class)) {
		L_temp_2 = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_result_declaration.heapptr == L_PCTobject_class)) {
		L_temp_2 = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_macro_declaration.heapptr == L_PCTobject_class)) {
		L_temp_2 = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_function_declaration.heapptr == L_PCTobject_class)) {
		L_temp_2 = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_variable_declaration.heapptr == L_PCTobject_class)) {
		L_temp_2 = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_enum_slot_declaration.heapptr == L_PCTobject_class)) {
		L_temp_2 = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_coalesced_bitfields.heapptr == L_PCTobject_class)) {
		L_temp_2 = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_slot_declaration.heapptr == L_PCTobject_class)) {
		L_temp_2 = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_object_declaration.heapptr == L_PCTobject_class)) {
		L_temp_2 = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_float_type_declaration.heapptr == L_PCTobject_class)) {
		L_temp_2 = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_integer_type_declaration.heapptr == L_PCTobject_class)) {
		L_temp_2 = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_predefined_type_declaration.heapptr == L_PCTobject_class)) {
		L_temp_2 = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_typedef_declaration.heapptr == L_PCTobject_class)) {
		L_temp_2 = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_function_type_declaration.heapptr == L_PCTobject_class)) {
		L_temp_2 = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_vector_declaration.heapptr == L_PCTobject_class)) {
		L_temp_2 = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_pointer_declaration.heapptr == L_PCTobject_class)) {
		L_temp_2 = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_enum_declaration.heapptr == L_PCTobject_class)) {
		L_temp_2 = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_struct_declaration.heapptr == L_PCTobject_class)) {
		L_temp_2 = TRUE;
	    }
	    else {
		L_temp_2 = (cdeclZc_declarationsZCLS_union_declaration.heapptr == L_PCTobject_class);
	    }
	    if (L_temp_2) {
		L_rest = dylanZdylan_visceraZmake_rest_arg_FUN(orig_sp, (descriptor_t *)L_args + 1, L_nargs - 1);
		L_arg = L_temp.heapptr;
		L_index = (L_nargs - 2);
		while (1) {
		    if ((L_index < 1)) {
			goto block0;
		    }
		    else {
			L_temp_3 = (((descriptor_t *)L_args)[L_index]);
			if ((dylanZdylan_visceraZCLS_symbol.heapptr == SLOT(L_temp_3.heapptr, heapptr_t, 0))) {
			    L_index = (L_index - 2);
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp_3, dylanZdylan_visceraZCLS_symbol.heapptr);
			    not_reached();
			}
		    }
		}
	      block0:;
		orig_sp = L_args;
		/* discriminator for mapped-name */
		L_result0 = cdeclZc_declarationsZmapped_name_DISCRIM_FUN(orig_sp, L_arg, L_rest);
		orig_sp[0] = L_result0;
		return orig_sp + 1;
	    }
	    else {
		/* type-error{<object>, <type>} */
		dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp, cdeclZc_declarationsZCLS_declaration.heapptr);
		not_reached();
	    }
	}
    }
}

extern descriptor_t cdeclZSYM_explicit_onlyQUERY;	/* #"explicit-only?" */

extern descriptor_t cdeclZc_declarationsZmapped_name_METH_7(descriptor_t *orig_sp, heapptr_t A0, descriptor_t A1);	/* mapped-name{<declaration>} */

/* generic-entry for mapped-name{<declaration>} */
descriptor_t * cdeclZc_declarationsZmapped_name_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */, heapptr_t A2)
{
    long L_nargs; /* nargs */
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    descriptor_t L_explicit_onlyQUERY; /* explicit-only? */
    long L_index; /* index */
    descriptor_t L_key; /* key */
    descriptor_t L_value; /* value */
    descriptor_t L_result0; /* result0 */

    L_nargs = A1;
    L_args = ((void *)(orig_sp - L_nargs));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    L_explicit_onlyQUERY = dylanZfalse;
    L_index = (L_nargs - 2);
    while (1) {
	if ((L_index < 1)) {
	    goto block0;
	}
	else {
	    L_key = (((descriptor_t *)L_args)[L_index]);
	    L_value = (((descriptor_t *)L_args)[(L_index + 1)]);
	    if ((L_key.heapptr == cdeclZSYM_explicit_onlyQUERY.heapptr)) {
		L_explicit_onlyQUERY = L_value;
	    }
	    else {
	    }
	    L_index = (L_index - 2);
	}
    }
  block0:;
    orig_sp = L_args;
    /* mapped-name{<declaration>} */
    L_result0 = cdeclZc_declarationsZmapped_name_METH_7(orig_sp, L_arg_2, L_explicit_onlyQUERY);
    orig_sp[0] = L_result0;
    return orig_sp + 1;
}

extern descriptor_t cdeclZc_declarationsZmapped_name_METH_8(descriptor_t *orig_sp, heapptr_t A0, descriptor_t A1);	/* mapped-name{<vector-declaration>} */

/* generic-entry for mapped-name{<vector-declaration>} */
descriptor_t * cdeclZc_declarationsZmapped_name_METH_GENERIC_2(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */, heapptr_t A2)
{
    long L_nargs; /* nargs */
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    descriptor_t L_explicit_onlyQUERY; /* explicit-only? */
    long L_index; /* index */
    descriptor_t L_key; /* key */
    descriptor_t L_value; /* value */
    descriptor_t L_result0; /* result0 */

    L_nargs = A1;
    L_args = ((void *)(orig_sp - L_nargs));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    L_explicit_onlyQUERY = dylanZfalse;
    L_index = (L_nargs - 2);
    while (1) {
	if ((L_index < 1)) {
	    goto block0;
	}
	else {
	    L_key = (((descriptor_t *)L_args)[L_index]);
	    L_value = (((descriptor_t *)L_args)[(L_index + 1)]);
	    if ((L_key.heapptr == cdeclZSYM_explicit_onlyQUERY.heapptr)) {
		L_explicit_onlyQUERY = L_value;
	    }
	    else {
	    }
	    L_index = (L_index - 2);
	}
    }
  block0:;
    orig_sp = L_args;
    /* mapped-name{<vector-declaration>} */
    L_result0 = cdeclZc_declarationsZmapped_name_METH_8(orig_sp, L_arg_2, L_explicit_onlyQUERY);
    orig_sp[0] = L_result0;
    return orig_sp + 1;
}

extern descriptor_t cdeclZc_declarationsZmapped_name_METH_9(descriptor_t *orig_sp, heapptr_t A0, descriptor_t A1);	/* mapped-name{<pointer-declaration>} */

/* generic-entry for mapped-name{<pointer-declaration>} */
descriptor_t * cdeclZc_declarationsZmapped_name_METH_GENERIC_3(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */, heapptr_t A2)
{
    long L_nargs; /* nargs */
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    descriptor_t L_explicit_onlyQUERY; /* explicit-only? */
    long L_index; /* index */
    descriptor_t L_key; /* key */
    descriptor_t L_value; /* value */
    descriptor_t L_result0; /* result0 */

    L_nargs = A1;
    L_args = ((void *)(orig_sp - L_nargs));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    L_explicit_onlyQUERY = dylanZfalse;
    L_index = (L_nargs - 2);
    while (1) {
	if ((L_index < 1)) {
	    goto block0;
	}
	else {
	    L_key = (((descriptor_t *)L_args)[L_index]);
	    L_value = (((descriptor_t *)L_args)[(L_index + 1)]);
	    if ((L_key.heapptr == cdeclZSYM_explicit_onlyQUERY.heapptr)) {
		L_explicit_onlyQUERY = L_value;
	    }
	    else {
	    }
	    L_index = (L_index - 2);
	}
    }
  block0:;
    orig_sp = L_args;
    /* mapped-name{<pointer-declaration>} */
    L_result0 = cdeclZc_declarationsZmapped_name_METH_9(orig_sp, L_arg_2, L_explicit_onlyQUERY);
    orig_sp[0] = L_result0;
    return orig_sp + 1;
}

extern descriptor_t cdeclZc_declarationsZmapped_name_METH(descriptor_t *orig_sp, heapptr_t A0, descriptor_t A1);	/* mapped-name{<object-declaration>} */

/* generic-entry for mapped-name{<object-declaration>} */
descriptor_t * cdeclZc_declarationsZmapped_name_METH_GENERIC_4(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */, heapptr_t A2)
{
    long L_nargs; /* nargs */
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    descriptor_t L_explicit_onlyQUERY; /* explicit-only? */
    long L_index; /* index */
    descriptor_t L_key; /* key */
    descriptor_t L_value; /* value */
    descriptor_t L_result0; /* result0 */

    L_nargs = A1;
    L_args = ((void *)(orig_sp - L_nargs));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    L_explicit_onlyQUERY = dylanZfalse;
    L_index = (L_nargs - 2);
    while (1) {
	if ((L_index < 1)) {
	    goto block0;
	}
	else {
	    L_key = (((descriptor_t *)L_args)[L_index]);
	    L_value = (((descriptor_t *)L_args)[(L_index + 1)]);
	    if ((L_key.heapptr == cdeclZSYM_explicit_onlyQUERY.heapptr)) {
		L_explicit_onlyQUERY = L_value;
	    }
	    else {
	    }
	    L_index = (L_index - 2);
	}
    }
  block0:;
    orig_sp = L_args;
    /* mapped-name{<object-declaration>} */
    L_result0 = cdeclZc_declarationsZmapped_name_METH(orig_sp, L_arg_2, L_explicit_onlyQUERY);
    orig_sp[0] = L_result0;
    return orig_sp + 1;
}

extern descriptor_t cdeclZc_declarationsZmapped_name_METH_10(descriptor_t *orig_sp, heapptr_t A0, descriptor_t A1);	/* mapped-name{<typedef-declaration>} */

/* generic-entry for mapped-name{<typedef-declaration>} */
descriptor_t * cdeclZc_declarationsZmapped_name_METH_GENERIC_5(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */, heapptr_t A2)
{
    long L_nargs; /* nargs */
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    descriptor_t L_explicit_onlyQUERY; /* explicit-only? */
    long L_index; /* index */
    descriptor_t L_key; /* key */
    descriptor_t L_value; /* value */
    descriptor_t L_result0; /* result0 */

    L_nargs = A1;
    L_args = ((void *)(orig_sp - L_nargs));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    L_explicit_onlyQUERY = dylanZfalse;
    L_index = (L_nargs - 2);
    while (1) {
	if ((L_index < 1)) {
	    goto block0;
	}
	else {
	    L_key = (((descriptor_t *)L_args)[L_index]);
	    L_value = (((descriptor_t *)L_args)[(L_index + 1)]);
	    if ((L_key.heapptr == cdeclZSYM_explicit_onlyQUERY.heapptr)) {
		L_explicit_onlyQUERY = L_value;
	    }
	    else {
	    }
	    L_index = (L_index - 2);
	}
    }
  block0:;
    orig_sp = L_args;
    /* mapped-name{<typedef-declaration>} */
    L_result0 = cdeclZc_declarationsZmapped_name_METH_10(orig_sp, L_arg_2, L_explicit_onlyQUERY);
    orig_sp[0] = L_result0;
    return orig_sp + 1;
}


/* Define Generic remap */

/* remap is remap */

extern void cdeclZc_declarationsZremap_METH(descriptor_t *orig_sp, heapptr_t A0, descriptor_t A1);	/* remap{<declaration>, <string>} */

/* generic-entry for remap{<declaration>, <string>} */
descriptor_t * cdeclZc_declarationsZremap_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    descriptor_t L_arg_2; /* arg */
    heapptr_t L_arg_3; /* arg */
    descriptor_t L_arg_4; /* arg */

    L_args = ((void *)(orig_sp - 2));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = (((descriptor_t *)L_args)[1]);
    L_arg_3 = L_arg.heapptr;
    L_arg_4 = L_arg_2;
    orig_sp = L_args;
    /* remap{<declaration>, <string>} */
    cdeclZc_declarationsZremap_METH(orig_sp, L_arg_3, L_arg_4);
    return orig_sp + 0;
}


/* Define Generic dylan-name */

/* dylan-name is dylan-name */


/* Define Generic dylan-name-setter */

/* dylan-name-setter is dylan-name-setter */


/* Define Generic compute-dylan-name */

/* compute-dylan-name is compute-dylan-name */

extern descriptor_t cdeclZc_declarationsZcompute_dylan_name_METH(descriptor_t *orig_sp, heapptr_t A0, heapptr_t A1, descriptor_t A2, descriptor_t A3, boolean A4, descriptor_t A5);	/* compute-dylan-name{<vector-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */

extern descriptor_t cdeclZc_declarationsZcompute_dylan_name_METH_2(descriptor_t *orig_sp, heapptr_t A0, heapptr_t A1, descriptor_t A2, descriptor_t A3, boolean A4, descriptor_t A5);	/* compute-dylan-name{<pointer-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */

extern descriptor_t cdeclZc_declarationsZcompute_dylan_name_METH_3(descriptor_t *orig_sp, heapptr_t A0, heapptr_t A1, descriptor_t A2, descriptor_t A3, boolean A4, descriptor_t A5);	/* compute-dylan-name{<type-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */

extern descriptor_t cdeclZc_declarationsZcompute_dylan_name_2;	/* compute-dylan-name */

extern descriptor_t cdeclZc_declarationsZcompute_dylan_name_METH_4(descriptor_t *orig_sp, heapptr_t A0, heapptr_t A1, descriptor_t A2, descriptor_t A3, boolean A4, descriptor_t A5);	/* compute-dylan-name{<macro-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */

extern descriptor_t cdeclZc_declarationsZcompute_dylan_name_METH_5(descriptor_t *orig_sp, heapptr_t A0, heapptr_t A1, descriptor_t A2, descriptor_t A3, boolean A4, descriptor_t A5);	/* compute-dylan-name{<constant-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */

extern descriptor_t cdeclZc_declarationsZcompute_dylan_name_METH_6(descriptor_t *orig_sp, heapptr_t A0, heapptr_t A1, descriptor_t A2, descriptor_t A3, boolean A4, descriptor_t A5);	/* compute-dylan-name{<function-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */

extern descriptor_t cdeclZc_declarationsZcompute_dylan_name_METH_7(descriptor_t *orig_sp, heapptr_t A0, heapptr_t A1, descriptor_t A2, descriptor_t A3, boolean A4, descriptor_t A5);	/* compute-dylan-name{<object-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */

extern descriptor_t cdeclZc_declarationsZcompute_dylan_name_METH_8(descriptor_t *orig_sp, heapptr_t A0, heapptr_t A1, descriptor_t A2, descriptor_t A3, boolean A4, descriptor_t A5);	/* compute-dylan-name{<arg-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */

extern descriptor_t cdeclZc_declarationsZcompute_dylan_name_METH_9(descriptor_t *orig_sp, heapptr_t A0, heapptr_t A1, descriptor_t A2, descriptor_t A3, boolean A4, descriptor_t A5);	/* compute-dylan-name{<typedef-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */

extern descriptor_t cdeclZc_declarationsZcompute_dylan_name_METH_10(descriptor_t *orig_sp, heapptr_t A0, heapptr_t A1, descriptor_t A2, descriptor_t A3, boolean A4, descriptor_t A5);	/* compute-dylan-name{<function-type-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */

/* discriminator for compute-dylan-name */
descriptor_t cdeclZc_declarationsZcompute_dylan_name_DISCRIM_FUN(descriptor_t *orig_sp, heapptr_t A0 /* arg0 */, heapptr_t A1 /* arg1 */, descriptor_t A2 /* arg2 */, descriptor_t A3 /* arg3 */, boolean A4 /* arg4 */, descriptor_t A5 /* arg5 */)
{
    heapptr_t L_arg0; /* arg0 */
    heapptr_t L_arg1; /* arg1 */
    descriptor_t L_arg2; /* arg2 */
    descriptor_t L_arg3; /* arg3 */
    boolean L_arg4; /* arg4 */
    descriptor_t L_arg5; /* arg5 */
    long L_unique_id; /* unique-id */
    descriptor_t L_result0; /* result0 */
    heapptr_t L_instance; /* instance */
    descriptor_t L_temp;
    descriptor_t L_temp_2;
    descriptor_t L_temp_3;
    heapptr_t L_instance_2; /* instance */
    descriptor_t L_temp_4;
    descriptor_t L_temp_5;
    descriptor_t L_temp_6;

    L_arg0 = A0;
    L_arg1 = A1;
    L_arg2 = A2;
    L_arg3 = A3;
    L_arg4 = A4;
    L_arg5 = A5;
    L_unique_id = SLOT(SLOT(L_arg0, heapptr_t, 0), long, 8);
    if ((L_unique_id < 10091)) {
	if ((L_unique_id < 10087)) {
	    if ((L_unique_id < 10002)) {
		if ((L_unique_id < 10001)) {
		    /* compute-dylan-name{<vector-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
		    L_result0 = cdeclZc_declarationsZcompute_dylan_name_METH(orig_sp, L_arg0, L_arg1, L_arg2, L_arg3, L_arg4, L_arg5);
		}
		else {
		    /* compute-dylan-name{<pointer-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
		    L_result0 = cdeclZc_declarationsZcompute_dylan_name_METH_2(orig_sp, L_arg0, L_arg1, L_arg2, L_arg3, L_arg4, L_arg5);
		}
	    }
	    else if ((L_unique_id < 10004)) {
		/* compute-dylan-name{<type-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
		L_result0 = cdeclZc_declarationsZcompute_dylan_name_METH_3(orig_sp, L_arg0, L_arg1, L_arg2, L_arg3, L_arg4, L_arg5);
	    }
	    else {
		/* maker for <simple-object-vector> */
		L_instance = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 6, dylanZfalse);
		L_temp.heapptr = L_arg0;
		L_temp.dataword.l = 0;
		SLOT(L_instance, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_temp;
		L_temp_2.heapptr = L_arg1;
		L_temp_2.dataword.l = 0;
		SLOT(L_instance, descriptor_t, 8 + 1 * sizeof(descriptor_t)) = L_temp_2;
		SLOT(L_instance, descriptor_t, 8 + 2 * sizeof(descriptor_t)) = L_arg2;
		SLOT(L_instance, descriptor_t, 8 + 3 * sizeof(descriptor_t)) = L_arg3;
		L_temp_3.heapptr = (L_arg4 ? obj_True : obj_False);
		L_temp_3.dataword.l = 0;
		SLOT(L_instance, descriptor_t, 8 + 4 * sizeof(descriptor_t)) = L_temp_3;
		SLOT(L_instance, descriptor_t, 8 + 5 * sizeof(descriptor_t)) = L_arg5;
		/* no-applicable-methods-error{<generic-function>, <simple-object-vector>} */
		dylanZdylan_visceraZno_applicable_methods_error_METH(orig_sp, cdeclZc_declarationsZcompute_dylan_name_2.heapptr, L_instance);
		not_reached();
	    }
	}
	else if ((L_unique_id < 10089)) {
	    if ((L_unique_id < 10088)) {
		/* compute-dylan-name{<macro-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
		L_result0 = cdeclZc_declarationsZcompute_dylan_name_METH_4(orig_sp, L_arg0, L_arg1, L_arg2, L_arg3, L_arg4, L_arg5);
	    }
	    else {
		/* compute-dylan-name{<constant-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
		L_result0 = cdeclZc_declarationsZcompute_dylan_name_METH_5(orig_sp, L_arg0, L_arg1, L_arg2, L_arg3, L_arg4, L_arg5);
	    }
	}
	else if ((L_unique_id < 10090)) {
	    /* maker for <simple-object-vector> */
	    L_instance_2 = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 6, dylanZfalse);
	    L_temp_4.heapptr = L_arg0;
	    L_temp_4.dataword.l = 0;
	    SLOT(L_instance_2, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_temp_4;
	    L_temp_5.heapptr = L_arg1;
	    L_temp_5.dataword.l = 0;
	    SLOT(L_instance_2, descriptor_t, 8 + 1 * sizeof(descriptor_t)) = L_temp_5;
	    SLOT(L_instance_2, descriptor_t, 8 + 2 * sizeof(descriptor_t)) = L_arg2;
	    SLOT(L_instance_2, descriptor_t, 8 + 3 * sizeof(descriptor_t)) = L_arg3;
	    L_temp_6.heapptr = (L_arg4 ? obj_True : obj_False);
	    L_temp_6.dataword.l = 0;
	    SLOT(L_instance_2, descriptor_t, 8 + 4 * sizeof(descriptor_t)) = L_temp_6;
	    SLOT(L_instance_2, descriptor_t, 8 + 5 * sizeof(descriptor_t)) = L_arg5;
	    /* no-applicable-methods-error{<generic-function>, <simple-object-vector>} */
	    dylanZdylan_visceraZno_applicable_methods_error_METH(orig_sp, cdeclZc_declarationsZcompute_dylan_name_2.heapptr, L_instance_2);
	    not_reached();
	}
	else {
	    /* compute-dylan-name{<function-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
	    L_result0 = cdeclZc_declarationsZcompute_dylan_name_METH_6(orig_sp, L_arg0, L_arg1, L_arg2, L_arg3, L_arg4, L_arg5);
	}
    }
    else if ((L_unique_id < 10102)) {
	if ((L_unique_id < 10094)) {
	    if ((L_unique_id < 10092)) {
		/* compute-dylan-name{<object-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
		L_result0 = cdeclZc_declarationsZcompute_dylan_name_METH_7(orig_sp, L_arg0, L_arg1, L_arg2, L_arg3, L_arg4, L_arg5);
	    }
	    else {
		/* compute-dylan-name{<arg-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
		L_result0 = cdeclZc_declarationsZcompute_dylan_name_METH_8(orig_sp, L_arg0, L_arg1, L_arg2, L_arg3, L_arg4, L_arg5);
	    }
	}
	else if ((L_unique_id < 10097)) {
	    /* compute-dylan-name{<object-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
	    L_result0 = cdeclZc_declarationsZcompute_dylan_name_METH_7(orig_sp, L_arg0, L_arg1, L_arg2, L_arg3, L_arg4, L_arg5);
	}
	else {
	    /* compute-dylan-name{<type-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
	    L_result0 = cdeclZc_declarationsZcompute_dylan_name_METH_3(orig_sp, L_arg0, L_arg1, L_arg2, L_arg3, L_arg4, L_arg5);
	}
    }
    else if ((L_unique_id < 10104)) {
	if ((L_unique_id < 10103)) {
	    /* compute-dylan-name{<typedef-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
	    L_result0 = cdeclZc_declarationsZcompute_dylan_name_METH_9(orig_sp, L_arg0, L_arg1, L_arg2, L_arg3, L_arg4, L_arg5);
	}
	else {
	    /* compute-dylan-name{<function-type-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
	    L_result0 = cdeclZc_declarationsZcompute_dylan_name_METH_10(orig_sp, L_arg0, L_arg1, L_arg2, L_arg3, L_arg4, L_arg5);
	}
    }
    else {
	/* compute-dylan-name{<type-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
	L_result0 = cdeclZc_declarationsZcompute_dylan_name_METH_3(orig_sp, L_arg0, L_arg1, L_arg2, L_arg3, L_arg4, L_arg5);
    }
    return L_result0;
}

extern boolean dylanZdylan_visceraZPCTinstanceQUERY_METH(descriptor_t *orig_sp, descriptor_t A0, heapptr_t A1);	/* %instance?{<object>, <class>} */

extern descriptor_t dylanZdylan_visceraZCLS_string;	/* <string> */

extern descriptor_t dylanZdylan_visceraZCLS_sequence;	/* <sequence> */

extern descriptor_t dylanZdylan_visceraZCLS_true;	/* <true> */

extern descriptor_t dylanZdylan_visceraZCLS_false;	/* <false> */

extern descriptor_t dylanZdylan_visceraZCLS_boolean;	/* <boolean> */

extern descriptor_t dylanZdylan_visceraZCLS_function;	/* <function> */

/* general-entry for discriminator for compute-dylan-name */
descriptor_t * cdeclZc_declarationsZcompute_dylan_name_DISCRIM_GENERAL(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */)
{
    long L_nargs; /* nargs */
    void * L_args; /* args */
    descriptor_t L_temp; /* temp */
    heapptr_t L_PCTobject_class; /* %object-class */
    boolean L_temp_2; /* temp */
    descriptor_t L_temp_3; /* temp */
    long L_unique_id; /* unique-id */
    heapptr_t L_arg; /* arg */
    boolean L_temp_4; /* temp */
    descriptor_t L_temp_5; /* temp */
    boolean L_condition; /* condition */
    heapptr_t L_arg_2; /* arg */
    descriptor_t L_temp_6; /* temp */
    boolean L_condition_2; /* condition */
    descriptor_t L_arg_3; /* arg */
    descriptor_t L_temp_7; /* temp */
    heapptr_t L_PCTobject_class_2; /* %object-class */
    descriptor_t L_arg_4; /* arg */
    boolean L_temp_8; /* temp */
    descriptor_t L_temp_9; /* temp */
    boolean L_condition_3; /* condition */
    boolean L_arg_5; /* arg */
    descriptor_t L_arg_6; /* arg */
    descriptor_t L_result0; /* result0 */

    L_nargs = A1;
    if ((L_nargs == 6)) {
	L_args = ((void *)(orig_sp - 6));
	L_temp = (((descriptor_t *)L_args)[0]);
	L_PCTobject_class = SLOT(L_temp.heapptr, heapptr_t, 0);
	if ((cdeclZc_declarationsZCLS_varargs_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_arg_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_bitfield_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_incomplete_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_result_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_macro_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_function_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_variable_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_enum_slot_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_coalesced_bitfields.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_slot_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_object_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_float_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_integer_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_predefined_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_typedef_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_function_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_vector_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_pointer_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_enum_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_struct_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else {
	    L_temp_2 = (cdeclZc_declarationsZCLS_union_declaration.heapptr == L_PCTobject_class);
	}
	if (L_temp_2) {
	    L_temp_3 = (((descriptor_t *)L_args)[1]);
	    L_unique_id = SLOT(SLOT(L_temp_3.heapptr, heapptr_t, 0), long, 8);
	    L_arg = L_temp.heapptr;
	    if ((L_unique_id < 24)) {
		L_temp_4 = FALSE;
	    }
	    else if ((30 < L_unique_id)) {
		L_temp_4 = FALSE;
	    }
	    else {
		L_temp_4 = TRUE;
	    }
	    if (L_temp_4) {
		L_temp_5 = (((descriptor_t *)L_args)[2]);
		/* %instance?{<object>, <class>} */
		L_condition = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_temp_5, dylanZdylan_visceraZCLS_string.heapptr);
		L_arg_2 = L_temp_3.heapptr;
		if (L_condition) {
		    L_temp_6 = (((descriptor_t *)L_args)[3]);
		    /* %instance?{<object>, <class>} */
		    L_condition_2 = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_temp_6, dylanZdylan_visceraZCLS_sequence.heapptr);
		    L_arg_3 = L_temp_5;
		    if (L_condition_2) {
			L_temp_7 = (((descriptor_t *)L_args)[4]);
			L_PCTobject_class_2 = SLOT(L_temp_7.heapptr, heapptr_t, 0);
			L_arg_4 = L_temp_6;
			if ((dylanZdylan_visceraZCLS_true.heapptr == L_PCTobject_class_2)) {
			    L_temp_8 = TRUE;
			}
			else {
			    L_temp_8 = (dylanZdylan_visceraZCLS_false.heapptr == L_PCTobject_class_2);
			}
			if (L_temp_8) {
			    L_temp_9 = (((descriptor_t *)L_args)[5]);
			    /* %instance?{<object>, <class>} */
			    L_condition_3 = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_temp_9, dylanZdylan_visceraZCLS_string.heapptr);
			    L_arg_5 = (L_temp_7.heapptr != obj_False);
			    if (L_condition_3) {
				L_arg_6 = L_temp_9;
				orig_sp = L_args;
				/* discriminator for compute-dylan-name */
				L_result0 = cdeclZc_declarationsZcompute_dylan_name_DISCRIM_FUN(orig_sp, L_arg, L_arg_2, L_arg_3, L_arg_4, L_arg_5, L_arg_6);
				orig_sp[0] = L_result0;
				return orig_sp + 1;
			    }
			    else {
				/* type-error{<object>, <type>} */
				dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp_9, dylanZdylan_visceraZCLS_string.heapptr);
				not_reached();
			    }
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp_7, dylanZdylan_visceraZCLS_boolean.heapptr);
			    not_reached();
			}
		    }
		    else {
			/* type-error{<object>, <type>} */
			dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp_6, dylanZdylan_visceraZCLS_sequence.heapptr);
			not_reached();
		    }
		}
		else {
		    /* type-error{<object>, <type>} */
		    dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp_5, dylanZdylan_visceraZCLS_string.heapptr);
		    not_reached();
		}
	    }
	    else {
		/* type-error{<object>, <type>} */
		dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp_3, dylanZdylan_visceraZCLS_function.heapptr);
		not_reached();
	    }
	}
	else {
	    /* type-error{<object>, <type>} */
	    dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp, cdeclZc_declarationsZCLS_declaration.heapptr);
	    not_reached();
	}
    }
    else {
	/* wrong-number-of-arguments-error{<boolean>, <integer>, <integer>} */
	dylanZdylan_visceraZwrong_number_of_arguments_error_METH(orig_sp, TRUE, 6, L_nargs);
	not_reached();
    }
}


/* Define Generic find-dylan-name */

/* find-dylan-name is find-dylan-name */

extern descriptor_t cdeclZc_declarationsZfind_dylan_name_METH(descriptor_t *orig_sp, heapptr_t A0, heapptr_t A1, descriptor_t A2, descriptor_t A3, boolean A4, descriptor_t A5);	/* find-dylan-name{<declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */

extern descriptor_t cdeclZc_declarationsZfind_dylan_name_METH_2(descriptor_t *orig_sp, heapptr_t A0, heapptr_t A1, descriptor_t A2, descriptor_t A3, boolean A4, descriptor_t A5);	/* find-dylan-name{<structured-type-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */

extern descriptor_t cdeclZc_declarationsZfind_dylan_name_2;	/* find-dylan-name */

extern descriptor_t cdeclZc_declarationsZfind_dylan_name_METH_3(descriptor_t *orig_sp, heapptr_t A0, heapptr_t A1, descriptor_t A2, descriptor_t A3, boolean A4, descriptor_t A5);	/* find-dylan-name{<function-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */

extern descriptor_t cdeclZc_declarationsZfind_dylan_name_METH_4(descriptor_t *orig_sp, heapptr_t A0, heapptr_t A1, descriptor_t A2, descriptor_t A3, boolean A4, descriptor_t A5);	/* find-dylan-name{<object-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */

extern descriptor_t cdeclZc_declarationsZfind_dylan_name_METH_5(descriptor_t *orig_sp, heapptr_t A0, heapptr_t A1, descriptor_t A2, descriptor_t A3, boolean A4, descriptor_t A5, heapptr_t A6);	/* find-dylan-name{<arg-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */

extern descriptor_t cdeclZliteral_26;	/* {a <pair>} */

extern descriptor_t cdeclZc_declarationsZfind_dylan_name_METH_6(descriptor_t *orig_sp, heapptr_t A0, heapptr_t A1, descriptor_t A2, descriptor_t A3, boolean A4, descriptor_t A5);	/* find-dylan-name{<variable-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */

extern descriptor_t cdeclZc_declarationsZfind_dylan_name_METH_7(descriptor_t *orig_sp, heapptr_t A0, heapptr_t A1, descriptor_t A2, descriptor_t A3, boolean A4, descriptor_t A5);	/* find-dylan-name{<function-type-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */

/* discriminator for find-dylan-name */
descriptor_t cdeclZc_declarationsZfind_dylan_name_DISCRIM_FUN(descriptor_t *orig_sp, heapptr_t A0 /* arg0 */, heapptr_t A1 /* arg1 */, descriptor_t A2 /* arg2 */, descriptor_t A3 /* arg3 */, boolean A4 /* arg4 */, descriptor_t A5 /* arg5 */)
{
    heapptr_t L_arg0; /* arg0 */
    heapptr_t L_arg1; /* arg1 */
    descriptor_t L_arg2; /* arg2 */
    descriptor_t L_arg3; /* arg3 */
    boolean L_arg4; /* arg4 */
    descriptor_t L_arg5; /* arg5 */
    long L_unique_id; /* unique-id */
    descriptor_t L_result0; /* result0 */
    heapptr_t L_instance; /* instance */
    descriptor_t L_temp;
    descriptor_t L_temp_2;
    descriptor_t L_temp_3;

    L_arg0 = A0;
    L_arg1 = A1;
    L_arg2 = A2;
    L_arg3 = A3;
    L_arg4 = A4;
    L_arg5 = A5;
    L_unique_id = SLOT(SLOT(L_arg0, heapptr_t, 0), long, 8);
    if ((L_unique_id < 10094)) {
	if ((L_unique_id < 10090)) {
	    if ((L_unique_id < 10004)) {
		if ((L_unique_id < 10002)) {
		    /* find-dylan-name{<declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
		    L_result0 = cdeclZc_declarationsZfind_dylan_name_METH(orig_sp, L_arg0, L_arg1, L_arg2, L_arg3, L_arg4, L_arg5);
		}
		else {
		    /* find-dylan-name{<structured-type-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
		    L_result0 = cdeclZc_declarationsZfind_dylan_name_METH_2(orig_sp, L_arg0, L_arg1, L_arg2, L_arg3, L_arg4, L_arg5);
		}
	    }
	    else if ((L_unique_id < 10087)) {
		/* maker for <simple-object-vector> */
		L_instance = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 6, dylanZfalse);
		L_temp.heapptr = L_arg0;
		L_temp.dataword.l = 0;
		SLOT(L_instance, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_temp;
		L_temp_2.heapptr = L_arg1;
		L_temp_2.dataword.l = 0;
		SLOT(L_instance, descriptor_t, 8 + 1 * sizeof(descriptor_t)) = L_temp_2;
		SLOT(L_instance, descriptor_t, 8 + 2 * sizeof(descriptor_t)) = L_arg2;
		SLOT(L_instance, descriptor_t, 8 + 3 * sizeof(descriptor_t)) = L_arg3;
		L_temp_3.heapptr = (L_arg4 ? obj_True : obj_False);
		L_temp_3.dataword.l = 0;
		SLOT(L_instance, descriptor_t, 8 + 4 * sizeof(descriptor_t)) = L_temp_3;
		SLOT(L_instance, descriptor_t, 8 + 5 * sizeof(descriptor_t)) = L_arg5;
		/* no-applicable-methods-error{<generic-function>, <simple-object-vector>} */
		dylanZdylan_visceraZno_applicable_methods_error_METH(orig_sp, cdeclZc_declarationsZfind_dylan_name_2.heapptr, L_instance);
		not_reached();
	    }
	    else {
		/* find-dylan-name{<declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
		L_result0 = cdeclZc_declarationsZfind_dylan_name_METH(orig_sp, L_arg0, L_arg1, L_arg2, L_arg3, L_arg4, L_arg5);
	    }
	}
	else if ((L_unique_id < 10092)) {
	    if ((L_unique_id < 10091)) {
		/* find-dylan-name{<function-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
		L_result0 = cdeclZc_declarationsZfind_dylan_name_METH_3(orig_sp, L_arg0, L_arg1, L_arg2, L_arg3, L_arg4, L_arg5);
	    }
	    else {
		/* find-dylan-name{<object-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
		L_result0 = cdeclZc_declarationsZfind_dylan_name_METH_4(orig_sp, L_arg0, L_arg1, L_arg2, L_arg3, L_arg4, L_arg5);
	    }
	}
	else {
	    /* find-dylan-name{<arg-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
	    L_result0 = cdeclZc_declarationsZfind_dylan_name_METH_5(orig_sp, L_arg0, L_arg1, L_arg2, L_arg3, L_arg4, L_arg5, cdeclZliteral_26.heapptr);
	}
    }
    else if ((L_unique_id < 10097)) {
	if ((L_unique_id < 10096)) {
	    if ((L_unique_id < 10095)) {
		/* find-dylan-name{<object-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
		L_result0 = cdeclZc_declarationsZfind_dylan_name_METH_4(orig_sp, L_arg0, L_arg1, L_arg2, L_arg3, L_arg4, L_arg5);
	    }
	    else {
		/* find-dylan-name{<variable-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
		L_result0 = cdeclZc_declarationsZfind_dylan_name_METH_6(orig_sp, L_arg0, L_arg1, L_arg2, L_arg3, L_arg4, L_arg5);
	    }
	}
	else {
	    /* find-dylan-name{<object-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
	    L_result0 = cdeclZc_declarationsZfind_dylan_name_METH_4(orig_sp, L_arg0, L_arg1, L_arg2, L_arg3, L_arg4, L_arg5);
	}
    }
    else if ((L_unique_id < 10104)) {
	if ((L_unique_id < 10103)) {
	    /* find-dylan-name{<declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
	    L_result0 = cdeclZc_declarationsZfind_dylan_name_METH(orig_sp, L_arg0, L_arg1, L_arg2, L_arg3, L_arg4, L_arg5);
	}
	else {
	    /* find-dylan-name{<function-type-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
	    L_result0 = cdeclZc_declarationsZfind_dylan_name_METH_7(orig_sp, L_arg0, L_arg1, L_arg2, L_arg3, L_arg4, L_arg5);
	}
    }
    else {
	/* find-dylan-name{<structured-type-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
	L_result0 = cdeclZc_declarationsZfind_dylan_name_METH_2(orig_sp, L_arg0, L_arg1, L_arg2, L_arg3, L_arg4, L_arg5);
    }
    return L_result0;
}

/* general-entry for discriminator for find-dylan-name */
descriptor_t * cdeclZc_declarationsZfind_dylan_name_DISCRIM_GENERAL(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */)
{
    long L_nargs; /* nargs */
    void * L_args; /* args */
    descriptor_t L_temp; /* temp */
    heapptr_t L_PCTobject_class; /* %object-class */
    boolean L_temp_2; /* temp */
    descriptor_t L_temp_3; /* temp */
    long L_unique_id; /* unique-id */
    heapptr_t L_arg; /* arg */
    boolean L_temp_4; /* temp */
    descriptor_t L_temp_5; /* temp */
    boolean L_condition; /* condition */
    heapptr_t L_arg_2; /* arg */
    descriptor_t L_temp_6; /* temp */
    boolean L_condition_2; /* condition */
    descriptor_t L_arg_3; /* arg */
    descriptor_t L_temp_7; /* temp */
    heapptr_t L_PCTobject_class_2; /* %object-class */
    descriptor_t L_arg_4; /* arg */
    boolean L_temp_8; /* temp */
    descriptor_t L_temp_9; /* temp */
    boolean L_condition_3; /* condition */
    boolean L_arg_5; /* arg */
    descriptor_t L_arg_6; /* arg */
    descriptor_t L_result0; /* result0 */

    L_nargs = A1;
    if ((L_nargs == 6)) {
	L_args = ((void *)(orig_sp - 6));
	L_temp = (((descriptor_t *)L_args)[0]);
	L_PCTobject_class = SLOT(L_temp.heapptr, heapptr_t, 0);
	if ((cdeclZc_declarationsZCLS_varargs_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_arg_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_bitfield_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_incomplete_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_result_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_macro_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_function_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_variable_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_enum_slot_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_coalesced_bitfields.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_slot_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_object_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_float_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_integer_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_predefined_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_typedef_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_function_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_vector_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_pointer_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_enum_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_struct_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else {
	    L_temp_2 = (cdeclZc_declarationsZCLS_union_declaration.heapptr == L_PCTobject_class);
	}
	if (L_temp_2) {
	    L_temp_3 = (((descriptor_t *)L_args)[1]);
	    L_unique_id = SLOT(SLOT(L_temp_3.heapptr, heapptr_t, 0), long, 8);
	    L_arg = L_temp.heapptr;
	    if ((L_unique_id < 24)) {
		L_temp_4 = FALSE;
	    }
	    else if ((30 < L_unique_id)) {
		L_temp_4 = FALSE;
	    }
	    else {
		L_temp_4 = TRUE;
	    }
	    if (L_temp_4) {
		L_temp_5 = (((descriptor_t *)L_args)[2]);
		/* %instance?{<object>, <class>} */
		L_condition = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_temp_5, dylanZdylan_visceraZCLS_string.heapptr);
		L_arg_2 = L_temp_3.heapptr;
		if (L_condition) {
		    L_temp_6 = (((descriptor_t *)L_args)[3]);
		    /* %instance?{<object>, <class>} */
		    L_condition_2 = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_temp_6, dylanZdylan_visceraZCLS_sequence.heapptr);
		    L_arg_3 = L_temp_5;
		    if (L_condition_2) {
			L_temp_7 = (((descriptor_t *)L_args)[4]);
			L_PCTobject_class_2 = SLOT(L_temp_7.heapptr, heapptr_t, 0);
			L_arg_4 = L_temp_6;
			if ((dylanZdylan_visceraZCLS_true.heapptr == L_PCTobject_class_2)) {
			    L_temp_8 = TRUE;
			}
			else {
			    L_temp_8 = (dylanZdylan_visceraZCLS_false.heapptr == L_PCTobject_class_2);
			}
			if (L_temp_8) {
			    L_temp_9 = (((descriptor_t *)L_args)[5]);
			    /* %instance?{<object>, <class>} */
			    L_condition_3 = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_temp_9, dylanZdylan_visceraZCLS_string.heapptr);
			    L_arg_5 = (L_temp_7.heapptr != obj_False);
			    if (L_condition_3) {
				L_arg_6 = L_temp_9;
				orig_sp = L_args;
				/* discriminator for find-dylan-name */
				L_result0 = cdeclZc_declarationsZfind_dylan_name_DISCRIM_FUN(orig_sp, L_arg, L_arg_2, L_arg_3, L_arg_4, L_arg_5, L_arg_6);
				orig_sp[0] = L_result0;
				return orig_sp + 1;
			    }
			    else {
				/* type-error{<object>, <type>} */
				dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp_9, dylanZdylan_visceraZCLS_string.heapptr);
				not_reached();
			    }
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp_7, dylanZdylan_visceraZCLS_boolean.heapptr);
			    not_reached();
			}
		    }
		    else {
			/* type-error{<object>, <type>} */
			dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp_6, dylanZdylan_visceraZCLS_sequence.heapptr);
			not_reached();
		    }
		}
		else {
		    /* type-error{<object>, <type>} */
		    dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp_5, dylanZdylan_visceraZCLS_string.heapptr);
		    not_reached();
		}
	    }
	    else {
		/* type-error{<object>, <type>} */
		dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp_3, dylanZdylan_visceraZCLS_function.heapptr);
		not_reached();
	    }
	}
	else {
	    /* type-error{<object>, <type>} */
	    dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp, cdeclZc_declarationsZCLS_declaration.heapptr);
	    not_reached();
	}
    }
    else {
	/* wrong-number-of-arguments-error{<boolean>, <integer>, <integer>} */
	dylanZdylan_visceraZwrong_number_of_arguments_error_METH(orig_sp, TRUE, 6, L_nargs);
	not_reached();
    }
}

/* generic-entry for find-dylan-name{<object-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
descriptor_t * cdeclZc_declarationsZfind_dylan_name_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    descriptor_t L_arg_2; /* arg */
    descriptor_t L_arg_3; /* arg */
    descriptor_t L_arg_4; /* arg */
    descriptor_t L_arg_5; /* arg */
    descriptor_t L_arg_6; /* arg */
    heapptr_t L_arg_7; /* arg */
    heapptr_t L_arg_8; /* arg */
    descriptor_t L_arg_9; /* arg */
    descriptor_t L_arg_10; /* arg */
    boolean L_arg_11; /* arg */
    descriptor_t L_arg_12; /* arg */
    descriptor_t L_result0; /* result0 */

    L_args = ((void *)(orig_sp - 6));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = (((descriptor_t *)L_args)[1]);
    L_arg_3 = (((descriptor_t *)L_args)[2]);
    L_arg_4 = (((descriptor_t *)L_args)[3]);
    L_arg_5 = (((descriptor_t *)L_args)[4]);
    L_arg_6 = (((descriptor_t *)L_args)[5]);
    L_arg_7 = L_arg.heapptr;
    L_arg_8 = L_arg_2.heapptr;
    L_arg_9 = L_arg_3;
    L_arg_10 = L_arg_4;
    L_arg_11 = (L_arg_5.heapptr != obj_False);
    L_arg_12 = L_arg_6;
    orig_sp = L_args;
    /* find-dylan-name{<object-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
    L_result0 = cdeclZc_declarationsZfind_dylan_name_METH_4(orig_sp, L_arg_7, L_arg_8, L_arg_9, L_arg_10, L_arg_11, L_arg_12);
    orig_sp[0] = L_result0;
    return orig_sp + 1;
}

extern descriptor_t cdeclZc_declarationsZfind_dylan_name_METH_8(descriptor_t *orig_sp, heapptr_t A0, heapptr_t A1, descriptor_t A2, descriptor_t A3, boolean A4, descriptor_t A5);	/* find-dylan-name{<value-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */

/* generic-entry for find-dylan-name{<value-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
descriptor_t * cdeclZc_declarationsZfind_dylan_name_METH_GENERIC_2(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    descriptor_t L_arg_2; /* arg */
    descriptor_t L_arg_3; /* arg */
    descriptor_t L_arg_4; /* arg */
    descriptor_t L_arg_5; /* arg */
    descriptor_t L_arg_6; /* arg */
    heapptr_t L_arg_7; /* arg */
    heapptr_t L_arg_8; /* arg */
    descriptor_t L_arg_9; /* arg */
    descriptor_t L_arg_10; /* arg */
    boolean L_arg_11; /* arg */
    descriptor_t L_arg_12; /* arg */
    descriptor_t L_result0; /* result0 */

    L_args = ((void *)(orig_sp - 6));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = (((descriptor_t *)L_args)[1]);
    L_arg_3 = (((descriptor_t *)L_args)[2]);
    L_arg_4 = (((descriptor_t *)L_args)[3]);
    L_arg_5 = (((descriptor_t *)L_args)[4]);
    L_arg_6 = (((descriptor_t *)L_args)[5]);
    L_arg_7 = L_arg.heapptr;
    L_arg_8 = L_arg_2.heapptr;
    L_arg_9 = L_arg_3;
    L_arg_10 = L_arg_4;
    L_arg_11 = (L_arg_5.heapptr != obj_False);
    L_arg_12 = L_arg_6;
    orig_sp = L_args;
    /* find-dylan-name{<value-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
    L_result0 = cdeclZc_declarationsZfind_dylan_name_METH_8(orig_sp, L_arg_7, L_arg_8, L_arg_9, L_arg_10, L_arg_11, L_arg_12);
    orig_sp[0] = L_result0;
    return orig_sp + 1;
}

/* generic-entry for find-dylan-name{<declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
descriptor_t * cdeclZc_declarationsZfind_dylan_name_METH_GENERIC_3(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    descriptor_t L_arg_2; /* arg */
    descriptor_t L_arg_3; /* arg */
    descriptor_t L_arg_4; /* arg */
    descriptor_t L_arg_5; /* arg */
    descriptor_t L_arg_6; /* arg */
    heapptr_t L_arg_7; /* arg */
    heapptr_t L_arg_8; /* arg */
    descriptor_t L_arg_9; /* arg */
    descriptor_t L_arg_10; /* arg */
    boolean L_arg_11; /* arg */
    descriptor_t L_arg_12; /* arg */
    descriptor_t L_result0; /* result0 */

    L_args = ((void *)(orig_sp - 6));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = (((descriptor_t *)L_args)[1]);
    L_arg_3 = (((descriptor_t *)L_args)[2]);
    L_arg_4 = (((descriptor_t *)L_args)[3]);
    L_arg_5 = (((descriptor_t *)L_args)[4]);
    L_arg_6 = (((descriptor_t *)L_args)[5]);
    L_arg_7 = L_arg.heapptr;
    L_arg_8 = L_arg_2.heapptr;
    L_arg_9 = L_arg_3;
    L_arg_10 = L_arg_4;
    L_arg_11 = (L_arg_5.heapptr != obj_False);
    L_arg_12 = L_arg_6;
    orig_sp = L_args;
    /* find-dylan-name{<declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
    L_result0 = cdeclZc_declarationsZfind_dylan_name_METH(orig_sp, L_arg_7, L_arg_8, L_arg_9, L_arg_10, L_arg_11, L_arg_12);
    orig_sp[0] = L_result0;
    return orig_sp + 1;
}


/* Define Generic rename */

/* rename is rename */

extern void cdeclZc_declarationsZrename_METH(descriptor_t *orig_sp, heapptr_t A0, descriptor_t A1);	/* rename{<declaration>, <string>} */

extern void cdeclZc_declarationsZrename_METH_2(descriptor_t *orig_sp, heapptr_t A0, descriptor_t A1);	/* rename{<pointer-declaration>, <string>} */

extern descriptor_t cdeclZc_declarationsZrename_2;	/* rename */

/* discriminator for rename */
void cdeclZc_declarationsZrename_DISCRIM_FUN(descriptor_t *orig_sp, heapptr_t A0 /* arg0 */, descriptor_t A1 /* arg1 */)
{
    heapptr_t L_arg0; /* arg0 */
    descriptor_t L_arg1; /* arg1 */
    long L_unique_id; /* unique-id */
    heapptr_t L_instance; /* instance */
    descriptor_t L_temp;

    L_arg0 = A0;
    L_arg1 = A1;
    L_unique_id = SLOT(SLOT(L_arg0, heapptr_t, 0), long, 8);
    if ((L_unique_id < 10004)) {
	if ((L_unique_id < 10002)) {
	    if ((L_unique_id < 10001)) {
		/* rename{<declaration>, <string>} */
		cdeclZc_declarationsZrename_METH(orig_sp, L_arg0, L_arg1);
	    }
	    else {
		/* rename{<pointer-declaration>, <string>} */
		cdeclZc_declarationsZrename_METH_2(orig_sp, L_arg0, L_arg1);
	    }
	}
	else {
	    /* rename{<declaration>, <string>} */
	    cdeclZc_declarationsZrename_METH(orig_sp, L_arg0, L_arg1);
	}
    }
    else if ((L_unique_id < 10087)) {
	/* maker for <simple-object-vector> */
	L_instance = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 2, dylanZfalse);
	L_temp.heapptr = L_arg0;
	L_temp.dataword.l = 0;
	SLOT(L_instance, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_temp;
	SLOT(L_instance, descriptor_t, 8 + 1 * sizeof(descriptor_t)) = L_arg1;
	/* no-applicable-methods-error{<generic-function>, <simple-object-vector>} */
	dylanZdylan_visceraZno_applicable_methods_error_METH(orig_sp, cdeclZc_declarationsZrename_2.heapptr, L_instance);
	not_reached();
    }
    else {
	/* rename{<declaration>, <string>} */
	cdeclZc_declarationsZrename_METH(orig_sp, L_arg0, L_arg1);
    }
    return;
}

/* general-entry for discriminator for rename */
descriptor_t * cdeclZc_declarationsZrename_DISCRIM_GENERAL(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */)
{
    long L_nargs; /* nargs */
    void * L_args; /* args */
    descriptor_t L_temp; /* temp */
    heapptr_t L_PCTobject_class; /* %object-class */
    boolean L_temp_2; /* temp */
    descriptor_t L_temp_3; /* temp */
    boolean L_condition; /* condition */
    heapptr_t L_arg; /* arg */
    descriptor_t L_arg_2; /* arg */

    L_nargs = A1;
    if ((L_nargs == 2)) {
	L_args = ((void *)(orig_sp - 2));
	L_temp = (((descriptor_t *)L_args)[0]);
	L_PCTobject_class = SLOT(L_temp.heapptr, heapptr_t, 0);
	if ((cdeclZc_declarationsZCLS_varargs_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_arg_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_bitfield_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_incomplete_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_result_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_macro_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_function_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_variable_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_enum_slot_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_coalesced_bitfields.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_slot_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_object_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_float_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_integer_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_predefined_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_typedef_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_function_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_vector_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_pointer_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_enum_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_struct_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else {
	    L_temp_2 = (cdeclZc_declarationsZCLS_union_declaration.heapptr == L_PCTobject_class);
	}
	if (L_temp_2) {
	    L_temp_3 = (((descriptor_t *)L_args)[1]);
	    /* %instance?{<object>, <class>} */
	    L_condition = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_temp_3, dylanZdylan_visceraZCLS_string.heapptr);
	    L_arg = L_temp.heapptr;
	    if (L_condition) {
		L_arg_2 = L_temp_3;
		orig_sp = L_args;
		/* discriminator for rename */
		cdeclZc_declarationsZrename_DISCRIM_FUN(orig_sp, L_arg, L_arg_2);
		return orig_sp + 0;
	    }
	    else {
		/* type-error{<object>, <type>} */
		dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp_3, dylanZdylan_visceraZCLS_string.heapptr);
		not_reached();
	    }
	}
	else {
	    /* type-error{<object>, <type>} */
	    dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp, cdeclZc_declarationsZCLS_declaration.heapptr);
	    not_reached();
	}
    }
    else {
	/* wrong-number-of-arguments-error{<boolean>, <integer>, <integer>} */
	dylanZdylan_visceraZwrong_number_of_arguments_error_METH(orig_sp, TRUE, 2, L_nargs);
	not_reached();
    }
}


/* Define Generic equate */

/* equate is equate */

extern void cdeclZc_declarationsZequate_METH(descriptor_t *orig_sp, heapptr_t A0, descriptor_t A1);	/* equate{<type-declaration>, <string>} */

extern descriptor_t cdeclZc_declarationsZequate_2;	/* equate */

extern void cdeclZc_declarationsZequate_METH_2(descriptor_t *orig_sp, heapptr_t A0, descriptor_t A1);	/* equate{<object-declaration>, <string>} */

/* discriminator for equate */
void cdeclZc_declarationsZequate_DISCRIM_FUN(descriptor_t *orig_sp, heapptr_t A0 /* arg0 */, descriptor_t A1 /* arg1 */)
{
    heapptr_t L_arg0; /* arg0 */
    descriptor_t L_arg1; /* arg1 */
    long L_unique_id; /* unique-id */
    heapptr_t L_instance; /* instance */
    descriptor_t L_temp;

    L_arg0 = A0;
    L_arg1 = A1;
    L_unique_id = SLOT(SLOT(L_arg0, heapptr_t, 0), long, 8);
    if ((L_unique_id < 10091)) {
	if ((L_unique_id < 10004)) {
	    /* equate{<type-declaration>, <string>} */
	    cdeclZc_declarationsZequate_METH(orig_sp, L_arg0, L_arg1);
	}
	else {
	    /* maker for <simple-object-vector> */
	    L_instance = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 2, dylanZfalse);
	    L_temp.heapptr = L_arg0;
	    L_temp.dataword.l = 0;
	    SLOT(L_instance, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_temp;
	    SLOT(L_instance, descriptor_t, 8 + 1 * sizeof(descriptor_t)) = L_arg1;
	    /* no-applicable-methods-error{<generic-function>, <simple-object-vector>} */
	    dylanZdylan_visceraZno_applicable_methods_error_METH(orig_sp, cdeclZc_declarationsZequate_2.heapptr, L_instance);
	    not_reached();
	}
    }
    else if ((L_unique_id < 10097)) {
	/* equate{<object-declaration>, <string>} */
	cdeclZc_declarationsZequate_METH_2(orig_sp, L_arg0, L_arg1);
    }
    else {
	/* equate{<type-declaration>, <string>} */
	cdeclZc_declarationsZequate_METH(orig_sp, L_arg0, L_arg1);
    }
    return;
}

/* general-entry for discriminator for equate */
descriptor_t * cdeclZc_declarationsZequate_DISCRIM_GENERAL(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */)
{
    long L_nargs; /* nargs */
    void * L_args; /* args */
    descriptor_t L_temp; /* temp */
    heapptr_t L_PCTobject_class; /* %object-class */
    boolean L_temp_2; /* temp */
    descriptor_t L_temp_3; /* temp */
    boolean L_condition; /* condition */
    heapptr_t L_arg; /* arg */
    descriptor_t L_arg_2; /* arg */

    L_nargs = A1;
    if ((L_nargs == 2)) {
	L_args = ((void *)(orig_sp - 2));
	L_temp = (((descriptor_t *)L_args)[0]);
	L_PCTobject_class = SLOT(L_temp.heapptr, heapptr_t, 0);
	if ((cdeclZc_declarationsZCLS_varargs_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_arg_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_bitfield_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_incomplete_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_result_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_macro_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_function_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_variable_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_enum_slot_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_coalesced_bitfields.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_slot_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_object_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_float_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_integer_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_predefined_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_typedef_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_function_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_vector_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_pointer_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_enum_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_struct_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else {
	    L_temp_2 = (cdeclZc_declarationsZCLS_union_declaration.heapptr == L_PCTobject_class);
	}
	if (L_temp_2) {
	    L_temp_3 = (((descriptor_t *)L_args)[1]);
	    /* %instance?{<object>, <class>} */
	    L_condition = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_temp_3, dylanZdylan_visceraZCLS_string.heapptr);
	    L_arg = L_temp.heapptr;
	    if (L_condition) {
		L_arg_2 = L_temp_3;
		orig_sp = L_args;
		/* discriminator for equate */
		cdeclZc_declarationsZequate_DISCRIM_FUN(orig_sp, L_arg, L_arg_2);
		return orig_sp + 0;
	    }
	    else {
		/* type-error{<object>, <type>} */
		dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp_3, dylanZdylan_visceraZCLS_string.heapptr);
		not_reached();
	    }
	}
	else {
	    /* type-error{<object>, <type>} */
	    dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp, cdeclZc_declarationsZCLS_declaration.heapptr);
	    not_reached();
	}
    }
    else {
	/* wrong-number-of-arguments-error{<boolean>, <integer>, <integer>} */
	dylanZdylan_visceraZwrong_number_of_arguments_error_METH(orig_sp, TRUE, 2, L_nargs);
	not_reached();
    }
}


/* Define Generic canonical-name */

/* canonical-name is canonical-name */

extern descriptor_t cdeclZc_declarationsZcanonical_name_METH(descriptor_t *orig_sp, heapptr_t A0);	/* canonical-name{<vector-declaration>} */

extern descriptor_t cdeclZc_declarationsZcanonical_name_METH_2(descriptor_t *orig_sp, heapptr_t A0);	/* canonical-name{<pointer-declaration>} */

extern descriptor_t cdeclZc_declarationsZcanonical_name_METH_3(descriptor_t *orig_sp, heapptr_t A0);	/* canonical-name{<struct-declaration>} */

extern descriptor_t cdeclZc_declarationsZcanonical_name_METH_4(descriptor_t *orig_sp, heapptr_t A0);	/* canonical-name{<union-declaration>} */

extern descriptor_t cdeclZc_declarationsZcanonical_name_2;	/* canonical-name */

extern descriptor_t cdeclZc_declarationsZcanonical_name_METH_5(descriptor_t *orig_sp, heapptr_t A0);	/* canonical-name{<declaration>} */

extern descriptor_t cdeclZc_declarationsZcanonical_name_METH_6(descriptor_t *orig_sp, heapptr_t A0);	/* canonical-name{<function-type-declaration>} */

extern descriptor_t cdeclZc_declarationsZcanonical_name_METH_7(descriptor_t *orig_sp, heapptr_t A0);	/* canonical-name{<enum-declaration>} */

/* discriminator for canonical-name */
descriptor_t cdeclZc_declarationsZcanonical_name_DISCRIM_FUN(descriptor_t *orig_sp, heapptr_t A0 /* arg0 */)
{
    heapptr_t L_arg0; /* arg0 */
    long L_unique_id; /* unique-id */
    descriptor_t L_result0; /* result0 */
    heapptr_t L_instance; /* instance */
    descriptor_t L_temp;

    L_arg0 = A0;
    L_unique_id = SLOT(SLOT(L_arg0, heapptr_t, 0), long, 8);
    if ((L_unique_id < 10004)) {
	if ((L_unique_id < 10002)) {
	    if ((L_unique_id < 10001)) {
		/* canonical-name{<vector-declaration>} */
		L_result0 = cdeclZc_declarationsZcanonical_name_METH(orig_sp, L_arg0);
	    }
	    else {
		/* canonical-name{<pointer-declaration>} */
		L_result0 = cdeclZc_declarationsZcanonical_name_METH_2(orig_sp, L_arg0);
	    }
	}
	else if ((L_unique_id < 10003)) {
	    /* canonical-name{<struct-declaration>} */
	    L_result0 = cdeclZc_declarationsZcanonical_name_METH_3(orig_sp, L_arg0);
	}
	else {
	    /* canonical-name{<union-declaration>} */
	    L_result0 = cdeclZc_declarationsZcanonical_name_METH_4(orig_sp, L_arg0);
	}
    }
    else if ((L_unique_id < 10103)) {
	if ((L_unique_id < 10087)) {
	    /* maker for <simple-object-vector> */
	    L_instance = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 1, dylanZfalse);
	    L_temp.heapptr = L_arg0;
	    L_temp.dataword.l = 0;
	    SLOT(L_instance, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_temp;
	    /* no-applicable-methods-error{<generic-function>, <simple-object-vector>} */
	    dylanZdylan_visceraZno_applicable_methods_error_METH(orig_sp, cdeclZc_declarationsZcanonical_name_2.heapptr, L_instance);
	    not_reached();
	}
	else {
	    /* canonical-name{<declaration>} */
	    L_result0 = cdeclZc_declarationsZcanonical_name_METH_5(orig_sp, L_arg0);
	}
    }
    else if ((L_unique_id < 10104)) {
	/* canonical-name{<function-type-declaration>} */
	L_result0 = cdeclZc_declarationsZcanonical_name_METH_6(orig_sp, L_arg0);
    }
    else {
	/* canonical-name{<enum-declaration>} */
	L_result0 = cdeclZc_declarationsZcanonical_name_METH_7(orig_sp, L_arg0);
    }
    return L_result0;
}

/* general-entry for discriminator for canonical-name */
descriptor_t * cdeclZc_declarationsZcanonical_name_DISCRIM_GENERAL(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */)
{
    long L_nargs; /* nargs */
    void * L_args; /* args */
    descriptor_t L_temp; /* temp */
    heapptr_t L_PCTobject_class; /* %object-class */
    boolean L_temp_2; /* temp */
    heapptr_t L_arg; /* arg */
    descriptor_t L_result0; /* result0 */

    L_nargs = A1;
    if ((L_nargs == 1)) {
	L_args = ((void *)(orig_sp - 1));
	L_temp = (((descriptor_t *)L_args)[0]);
	L_PCTobject_class = SLOT(L_temp.heapptr, heapptr_t, 0);
	if ((cdeclZc_declarationsZCLS_varargs_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_arg_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_bitfield_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_incomplete_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_result_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_macro_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_function_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_variable_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_enum_slot_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_coalesced_bitfields.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_slot_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_object_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_float_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_integer_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_predefined_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_typedef_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_function_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_vector_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_pointer_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_enum_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_struct_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else {
	    L_temp_2 = (cdeclZc_declarationsZCLS_union_declaration.heapptr == L_PCTobject_class);
	}
	if (L_temp_2) {
	    L_arg = L_temp.heapptr;
	    orig_sp = L_args;
	    /* discriminator for canonical-name */
	    L_result0 = cdeclZc_declarationsZcanonical_name_DISCRIM_FUN(orig_sp, L_arg);
	    orig_sp[0] = L_result0;
	    return orig_sp + 1;
	}
	else {
	    /* type-error{<object>, <type>} */
	    dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp, cdeclZc_declarationsZCLS_declaration.heapptr);
	    not_reached();
	}
    }
    else {
	/* wrong-number-of-arguments-error{<boolean>, <integer>, <integer>} */
	dylanZdylan_visceraZwrong_number_of_arguments_error_METH(orig_sp, TRUE, 1, L_nargs);
	not_reached();
    }
}


/* Define Generic type-name */

/* type-name is type-name */

extern descriptor_t cdeclZc_declarationsZtype_name_METH(descriptor_t *orig_sp, heapptr_t A0);	/* type-name{<type-declaration>} */

extern descriptor_t cdeclZc_declarationsZtype_name_2;	/* type-name */

extern descriptor_t cdeclZc_declarationsZtype_name_METH_2(descriptor_t *orig_sp, heapptr_t A0);	/* type-name{<object-declaration>} */

/* discriminator for type-name */
descriptor_t cdeclZc_declarationsZtype_name_DISCRIM_FUN(descriptor_t *orig_sp, heapptr_t A0 /* arg0 */)
{
    heapptr_t L_arg0; /* arg0 */
    long L_unique_id; /* unique-id */
    descriptor_t L_result0; /* result0 */
    heapptr_t L_instance; /* instance */
    descriptor_t L_temp;

    L_arg0 = A0;
    L_unique_id = SLOT(SLOT(L_arg0, heapptr_t, 0), long, 8);
    if ((L_unique_id < 10091)) {
	if ((L_unique_id < 10004)) {
	    /* type-name{<type-declaration>} */
	    L_result0 = cdeclZc_declarationsZtype_name_METH(orig_sp, L_arg0);
	}
	else {
	    /* maker for <simple-object-vector> */
	    L_instance = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 1, dylanZfalse);
	    L_temp.heapptr = L_arg0;
	    L_temp.dataword.l = 0;
	    SLOT(L_instance, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_temp;
	    /* no-applicable-methods-error{<generic-function>, <simple-object-vector>} */
	    dylanZdylan_visceraZno_applicable_methods_error_METH(orig_sp, cdeclZc_declarationsZtype_name_2.heapptr, L_instance);
	    not_reached();
	}
    }
    else if ((L_unique_id < 10097)) {
	/* type-name{<object-declaration>} */
	L_result0 = cdeclZc_declarationsZtype_name_METH_2(orig_sp, L_arg0);
    }
    else {
	/* type-name{<type-declaration>} */
	L_result0 = cdeclZc_declarationsZtype_name_METH(orig_sp, L_arg0);
    }
    return L_result0;
}

/* general-entry for discriminator for type-name */
descriptor_t * cdeclZc_declarationsZtype_name_DISCRIM_GENERAL(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */)
{
    long L_nargs; /* nargs */
    void * L_args; /* args */
    descriptor_t L_temp; /* temp */
    heapptr_t L_PCTobject_class; /* %object-class */
    boolean L_temp_2; /* temp */
    heapptr_t L_arg; /* arg */
    descriptor_t L_result0; /* result0 */

    L_nargs = A1;
    if ((L_nargs == 1)) {
	L_args = ((void *)(orig_sp - 1));
	L_temp = (((descriptor_t *)L_args)[0]);
	L_PCTobject_class = SLOT(L_temp.heapptr, heapptr_t, 0);
	if ((cdeclZc_declarationsZCLS_varargs_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_arg_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_bitfield_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_incomplete_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_result_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_macro_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_function_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_variable_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_enum_slot_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_coalesced_bitfields.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_slot_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_object_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_float_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_integer_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_predefined_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_typedef_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_function_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_vector_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_pointer_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_enum_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_struct_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else {
	    L_temp_2 = (cdeclZc_declarationsZCLS_union_declaration.heapptr == L_PCTobject_class);
	}
	if (L_temp_2) {
	    L_arg = L_temp.heapptr;
	    orig_sp = L_args;
	    /* discriminator for type-name */
	    L_result0 = cdeclZc_declarationsZtype_name_DISCRIM_FUN(orig_sp, L_arg);
	    orig_sp[0] = L_result0;
	    return orig_sp + 1;
	}
	else {
	    /* type-error{<object>, <type>} */
	    dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp, cdeclZc_declarationsZCLS_declaration.heapptr);
	    not_reached();
	}
    }
    else {
	/* wrong-number-of-arguments-error{<boolean>, <integer>, <integer>} */
	dylanZdylan_visceraZwrong_number_of_arguments_error_METH(orig_sp, TRUE, 1, L_nargs);
	not_reached();
    }
}


/* Define Generic pointer-to */

/* pointer-to is pointer-to */


/* Define Generic apply-options */

/* apply-options is apply-options */

extern void cdeclZc_declarationsZapply_options_METH(descriptor_t *orig_sp, heapptr_t A0, heapptr_t A1, descriptor_t A2, boolean A3, descriptor_t A4);	/* apply-options{<declaration>, <function>, <string>, <boolean>, <string>} */

/* generic-entry for apply-options{<declaration>, <function>, <string>, <boolean>, <string>} */
descriptor_t * cdeclZc_declarationsZapply_options_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    descriptor_t L_arg_2; /* arg */
    descriptor_t L_arg_3; /* arg */
    descriptor_t L_arg_4; /* arg */
    descriptor_t L_arg_5; /* arg */
    heapptr_t L_arg_6; /* arg */
    heapptr_t L_arg_7; /* arg */
    descriptor_t L_arg_8; /* arg */
    boolean L_arg_9; /* arg */
    descriptor_t L_arg_10; /* arg */

    L_args = ((void *)(orig_sp - 5));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = (((descriptor_t *)L_args)[1]);
    L_arg_3 = (((descriptor_t *)L_args)[2]);
    L_arg_4 = (((descriptor_t *)L_args)[3]);
    L_arg_5 = (((descriptor_t *)L_args)[4]);
    L_arg_6 = L_arg.heapptr;
    L_arg_7 = L_arg_2.heapptr;
    L_arg_8 = L_arg_3;
    L_arg_9 = (L_arg_4.heapptr != obj_False);
    L_arg_10 = L_arg_5;
    orig_sp = L_args;
    /* apply-options{<declaration>, <function>, <string>, <boolean>, <string>} */
    cdeclZc_declarationsZapply_options_METH(orig_sp, L_arg_6, L_arg_7, L_arg_8, L_arg_9, L_arg_10);
    return orig_sp + 0;
}


/* Define Method mapped-name{<declaration>} */

/* mapped-name{<declaration>} */
descriptor_t cdeclZc_declarationsZmapped_name_METH_7(descriptor_t *orig_sp, heapptr_t A0 /* decl */, descriptor_t A1 /* explicit-only? */)
{
    heapptr_t L_decl; /* decl */
    descriptor_t L_temp; /* temp */
    descriptor_t L_explicit_onlyQUERY; /* explicit-only? */
    descriptor_t L_result; /* result */

    L_decl = A0;
    /* map-type{<declaration>} */
    L_temp = cdeclZc_declarationsZmap_type_METH(orig_sp, L_decl);
    L_explicit_onlyQUERY = A1;
    if ((L_temp.heapptr != obj_False)) {
	L_result = L_temp;
    }
    else if ((L_explicit_onlyQUERY.heapptr != obj_False)) {
	L_result = dylanZfalse;
    }
    else {
	/* discriminator for type-name */
	L_result = cdeclZc_declarationsZtype_name_DISCRIM_FUN(orig_sp, L_decl);
    }
    return L_result;
}


/* Define Method remap{<declaration>, <string>} */

/* remap{<declaration>, <string>} */
void cdeclZc_declarationsZremap_METH(descriptor_t *orig_sp, heapptr_t A0 /* decl */, descriptor_t A1 /* name */)
{

    /* map-type-setter{type-union(<string>, <false>), <declaration>} */
    cdeclZc_declarationsZmap_type_setter_METH(orig_sp, A1, A0);
    return;
}


/* Define Method find-dylan-name{<declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */

/* find-dylan-name{<declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
descriptor_t cdeclZc_declarationsZfind_dylan_name_METH(descriptor_t *orig_sp, heapptr_t A0 /* decl */, heapptr_t A1 /* mapper */, descriptor_t A2 /* prefix */, descriptor_t A3 /* containers */, boolean A4 /* read-only */, descriptor_t A5 /* sealing */)
{
    heapptr_t L_decl; /* decl */
    descriptor_t L_temp; /* temp */
    heapptr_t L_mapper; /* mapper */
    descriptor_t L_prefix; /* prefix */
    descriptor_t L_containers; /* containers */
    boolean L_read_only; /* read-only */
    descriptor_t L_sealing; /* sealing */
    descriptor_t L_result; /* result */
    descriptor_t L_new_value; /* new-value */

    L_decl = A0;
    /* d-name{<declaration>} */
    L_temp = cdeclZc_declarationsZd_name_METH(orig_sp, L_decl);
    L_mapper = A1;
    L_prefix = A2;
    L_containers = A3;
    L_read_only = A4;
    L_sealing = A5;
    if ((L_temp.heapptr != obj_False)) {
	L_result = L_temp;
    }
    else {
	/* discriminator for compute-dylan-name */
	L_new_value = cdeclZc_declarationsZcompute_dylan_name_DISCRIM_FUN(orig_sp, L_decl, L_mapper, L_prefix, L_containers, L_read_only, L_sealing);
	/* d-name-setter{type-union(<string>, <false>), <declaration>} */
	cdeclZc_declarationsZd_name_setter_METH(orig_sp, L_new_value, L_decl);
	L_result = L_new_value;
    }
    return L_result;
}


/* Define Method dylan-name{<declaration>} */

extern void dylanZdylan_visceraZerror_METH(descriptor_t *orig_sp, descriptor_t A0, heapptr_t A1);	/* error{<string>} */

extern descriptor_t cdeclZstr_235;	/* "No dylan name defined for %=" */

/* dylan-name{<declaration>} */
descriptor_t cdeclZc_declarationsZdylan_name_METH(descriptor_t *orig_sp, heapptr_t A0 /* decl */)
{
    heapptr_t L_decl; /* decl */
    descriptor_t L_temp; /* temp */
    heapptr_t L_instance; /* instance */
    descriptor_t L_temp_2;

    L_decl = A0;
    /* d-name{<declaration>} */
    L_temp = cdeclZc_declarationsZd_name_METH(orig_sp, L_decl);
    if ((L_temp.heapptr != obj_False)) {
	return L_temp;
    }
    else {
	/* maker for <simple-object-vector> */
	L_instance = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 1, dylanZfalse);
	L_temp_2.heapptr = L_decl;
	L_temp_2.dataword.l = 0;
	SLOT(L_instance, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_temp_2;
	/* error{<string>} */
	dylanZdylan_visceraZerror_METH(orig_sp, cdeclZstr_235, L_instance);
	not_reached();
    }
}


/* Define Method dylan-name-setter{<string>, <declaration>} */

/* dylan-name-setter{<string>, <declaration>} */
descriptor_t cdeclZc_declarationsZdylan_name_setter_METH(descriptor_t *orig_sp, descriptor_t A0 /* value */, heapptr_t A1 /* decl */)
{
    descriptor_t L_value; /* value */

    L_value = A0;
    /* d-name-setter{type-union(<string>, <false>), <declaration>} */
    cdeclZc_declarationsZd_name_setter_METH(orig_sp, L_value, A1);
    return L_value;
}


/* Define Method rename{<declaration>, <string>} */

/* rename{<declaration>, <string>} */
void cdeclZc_declarationsZrename_METH(descriptor_t *orig_sp, heapptr_t A0 /* decl */, descriptor_t A1 /* name */)
{

    /* dylan-name-setter{<string>, <declaration>} */
    cdeclZc_declarationsZdylan_name_setter_METH(orig_sp, A1, A0);
    return;
}


/* Define Method canonical-name{<declaration>} */

/* canonical-name{<declaration>} */
descriptor_t cdeclZc_declarationsZcanonical_name_METH_5(descriptor_t *orig_sp, heapptr_t A0 /* decl */)
{
    heapptr_t L_decl; /* decl */
    descriptor_t L_temp; /* temp */
    descriptor_t L_result; /* result */
    descriptor_t L_new_value; /* new-value */

    L_decl = A0;
    /* c-name{<declaration>} */
    L_temp = cdeclZc_declarationsZc_name_METH(orig_sp, L_decl);
    if ((L_temp.heapptr != obj_False)) {
	L_result = L_temp;
    }
    else {
	/* simple-name{<declaration>} */
	L_new_value = cdeclZc_declarationsZsimple_name_METH(orig_sp, L_decl);
	/* c-name-setter{type-union(<string>, <false>), <declaration>} */
	cdeclZc_declarationsZc_name_setter_METH(orig_sp, L_new_value, L_decl);
	L_result = L_new_value;
    }
    return L_result;
}


/* {Implicit} Define Generic compute-closure */

/* compute-closure is compute-closure */


/* Define Method compute-closure{<deque>, <declaration>} */

extern descriptor_t dylanZdylan_visceraZCLS_simple_object_deque;	/* <simple-object-deque> */

extern descriptor_t dylanZdylan_visceraZpush_last_METH(descriptor_t *orig_sp, heapptr_t A0, descriptor_t A1);	/* push-last{<simple-object-deque>, <object>} */

/* compute-closure{<deque>, <declaration>} */
descriptor_t cdeclZc_declarationsZcompute_closure_METH_13(descriptor_t *orig_sp, descriptor_t A0 /* results */, heapptr_t A1 /* decl */)
{
    descriptor_t L_results; /* results */
    heapptr_t L_decl; /* decl */
    boolean L_arg0; /* arg0 */
    descriptor_t L_temp;

    L_results = A0;
    L_decl = A1;
    /* declared?{<declaration>} */
    L_arg0 = cdeclZc_declarationsZdeclaredQUERY_METH(orig_sp, L_decl);
    if (L_arg0) {
    }
    else {
	/* declared?-setter{<boolean>, <declaration>} */
	cdeclZc_declarationsZdeclaredQUERY_setter_METH(orig_sp, TRUE, L_decl);
	if ((dylanZdylan_visceraZCLS_simple_object_deque.heapptr == SLOT(L_results.heapptr, heapptr_t, 0))) {
	    L_temp.heapptr = L_decl;
	    L_temp.dataword.l = 0;
	    /* push-last{<simple-object-deque>, <object>} */
	    dylanZdylan_visceraZpush_last_METH(orig_sp, L_results.heapptr, L_temp);
	}
	else {
	    /* type-error{<object>, <type>} */
	    dylanZdylan_visceraZtype_error_METH(orig_sp, L_results, dylanZdylan_visceraZCLS_simple_object_deque.heapptr);
	    not_reached();
	}
    }
    return L_results;
}


/* Define Method apply-options{<declaration>, <function>, <string>, <boolean>, <string>} */

/* apply-options{<declaration>, <function>, <string>, <boolean>, <string>} */
void cdeclZc_declarationsZapply_options_METH(descriptor_t *orig_sp, heapptr_t A0 /* decl */, heapptr_t A1 /* map-function */, descriptor_t A2 /* prefix */, boolean A3 /* read-only */, descriptor_t A4 /* sealing */)
{

    /* discriminator for find-dylan-name */
    cdeclZc_declarationsZfind_dylan_name_DISCRIM_FUN(orig_sp, A0, A1, A2, dylanZempty_list, A3, A4);
    return;
}


/* {Implicit} Define Generic exclude-decl */

/* exclude-decl is exclude-decl */

extern descriptor_t * cdeclZc_declarationsZexclude_decl_METH(descriptor_t *orig_sp, heapptr_t A0);	/* exclude-decl{<declaration>} */

/* generic-entry for exclude-decl{<declaration>} */
descriptor_t * cdeclZc_declarationsZexclude_decl_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    descriptor_t *cluster_0_top;
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */

    L_args = ((void *)(orig_sp - 1));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    orig_sp = L_args;
    /* exclude-decl{<declaration>} */
    cluster_0_top = cdeclZc_declarationsZexclude_decl_METH(orig_sp, L_arg_2);
    return cluster_0_top;
}


/* Define Method exclude-decl{<declaration>} */

/* exclude-decl{<declaration>} */
descriptor_t * cdeclZc_declarationsZexclude_decl_METH(descriptor_t *orig_sp, heapptr_t A0 /* decl */)
{

    /* declared?-setter{<boolean>, <declaration>} */
    cdeclZc_declarationsZdeclaredQUERY_setter_METH(orig_sp, TRUE, A0);
    orig_sp[0] = dylanZtrue;
    return orig_sp + 1;
}


/* {Implicit} Define Generic equated? */

/* equated? is equated? */

extern boolean cdeclZc_declarationsZequatedQUERY_METH(descriptor_t *orig_sp, heapptr_t A0);	/* equated?{<type-declaration>} */

/* generic-entry for equated?{<type-declaration>} */
descriptor_t * cdeclZc_declarationsZequatedQUERY_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    boolean L_result0; /* result0 */
    descriptor_t L_temp;

    L_args = ((void *)(orig_sp - 1));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    orig_sp = L_args;
    /* equated?{<type-declaration>} */
    L_result0 = cdeclZc_declarationsZequatedQUERY_METH(orig_sp, L_arg_2);
    L_temp.heapptr = (L_result0 ? obj_True : obj_False);
    L_temp.dataword.l = 0;
    orig_sp[0] = L_temp;
    return orig_sp + 1;
}


/* {Implicit} Define Generic equated?-setter */

/* equated?-setter is equated?-setter */

extern boolean cdeclZc_declarationsZequatedQUERY_setter_METH(descriptor_t *orig_sp, boolean A0, heapptr_t A1);	/* equated?-setter{<boolean>, <type-declaration>} */

/* generic-entry for equated?-setter{<boolean>, <type-declaration>} */
descriptor_t * cdeclZc_declarationsZequatedQUERY_setter_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    descriptor_t L_arg_2; /* arg */
    boolean L_arg_3; /* arg */
    heapptr_t L_arg_4; /* arg */
    boolean L_result0; /* result0 */
    descriptor_t L_temp;

    L_args = ((void *)(orig_sp - 2));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = (((descriptor_t *)L_args)[1]);
    L_arg_3 = (L_arg.heapptr != obj_False);
    L_arg_4 = L_arg_2.heapptr;
    orig_sp = L_args;
    /* equated?-setter{<boolean>, <type-declaration>} */
    L_result0 = cdeclZc_declarationsZequatedQUERY_setter_METH(orig_sp, L_arg_3, L_arg_4);
    L_temp.heapptr = (L_result0 ? obj_True : obj_False);
    L_temp.dataword.l = 0;
    orig_sp[0] = L_temp;
    return orig_sp + 1;
}


/* Define Class <type-declaration> */

/* <type-declaration> is <type-declaration> */

/* getter for equated?{<type-declaration>} */
boolean cdeclZc_declarationsZequatedQUERY_METH(descriptor_t *orig_sp, heapptr_t A0 /* object */)
{
    heapptr_t L_object; /* object */
    boolean L_result; /* result */

    L_object = A0;
    if ((SLOT(SLOT(L_object, heapptr_t, 0), long, 8) < 10004)) {
	L_result = SLOT(L_object, bool, 45);
    }
    else {
	L_result = SLOT(L_object, bool, 37);
    }
    return L_result;
}

/* setter for equated?-setter{<boolean>, <type-declaration>} */
boolean cdeclZc_declarationsZequatedQUERY_setter_METH(descriptor_t *orig_sp, boolean A0 /* new-value */, heapptr_t A1 /* object */)
{
    boolean L_new_value; /* new-value */
    heapptr_t L_object; /* object */

    L_new_value = A0;
    L_object = A1;
    if ((SLOT(SLOT(L_object, heapptr_t, 0), long, 8) < 10004)) {
	SLOT(L_object, bool, 45) = L_new_value;
    }
    else {
	SLOT(L_object, bool, 37) = L_new_value;
    }
    return L_new_value;
}


/* {Implicit} Define Generic superclasses */

/* superclasses is superclasses */

/* generic-entry for superclasses{<new-static-pointer>} */
descriptor_t * cdeclZc_declarationsZsuperclasses_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    descriptor_t L_superclasses; /* superclasses */

    L_args = ((void *)(orig_sp - 1));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    orig_sp = L_args;
    L_superclasses = SLOT(L_arg_2, descriptor_t, 4);
    orig_sp[0] = L_superclasses;
    return orig_sp + 1;
}


/* {Implicit} Define Generic superclasses-setter */

/* superclasses-setter is superclasses-setter */

/* generic-entry for superclasses-setter{type-union(<false>, <sequence>), <new-static-pointer>} */
descriptor_t * cdeclZc_declarationsZsuperclasses_setter_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    descriptor_t L_arg_2; /* arg */
    descriptor_t L_arg_3; /* arg */
    heapptr_t L_arg_4; /* arg */

    L_args = ((void *)(orig_sp - 2));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg;
    L_arg_3 = (((descriptor_t *)L_args)[1]);
    L_arg_4 = L_arg_3.heapptr;
    orig_sp = L_args;
    SLOT(L_arg_4, descriptor_t, 4) = L_arg_2;
    orig_sp[0] = L_arg_2;
    return orig_sp + 1;
}


/* Define Class <new-static-pointer> */

/* <new-static-pointer> is <new-static-pointer> */


/* Define Generic true-type */

/* true-type is true-type */

extern descriptor_t * cdeclZc_declarationsZtrue_type_METH(descriptor_t *orig_sp, heapptr_t A0);	/* true-type{<type-declaration>} */

extern descriptor_t cdeclZc_declarationsZtrue_type_2;	/* true-type */

extern descriptor_t * cdeclZc_declarationsZtrue_type_METH_2(descriptor_t *orig_sp, heapptr_t A0);	/* true-type{<typedef-declaration>} */

/* discriminator for true-type */
descriptor_t * cdeclZc_declarationsZtrue_type_DISCRIM_FUN(descriptor_t *orig_sp, heapptr_t A0 /* arg0 */)
{
    descriptor_t *cluster_0_top;
    heapptr_t L_arg0; /* arg0 */
    long L_unique_id; /* unique-id */
    heapptr_t L_instance; /* instance */
    descriptor_t L_temp;

    L_arg0 = A0;
    L_unique_id = SLOT(SLOT(L_arg0, heapptr_t, 0), long, 8);
    if ((L_unique_id < 10102)) {
	if ((L_unique_id < 10097)) {
	    if ((L_unique_id < 10004)) {
		/* true-type{<type-declaration>} */
		cluster_0_top = cdeclZc_declarationsZtrue_type_METH(orig_sp, L_arg0);
	    }
	    else {
		/* maker for <simple-object-vector> */
		L_instance = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 1, dylanZfalse);
		L_temp.heapptr = L_arg0;
		L_temp.dataword.l = 0;
		SLOT(L_instance, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_temp;
		/* no-applicable-methods-error{<generic-function>, <simple-object-vector>} */
		dylanZdylan_visceraZno_applicable_methods_error_METH(orig_sp, cdeclZc_declarationsZtrue_type_2.heapptr, L_instance);
		not_reached();
	    }
	}
	else {
	    /* true-type{<type-declaration>} */
	    cluster_0_top = cdeclZc_declarationsZtrue_type_METH(orig_sp, L_arg0);
	}
    }
    else if ((L_unique_id < 10103)) {
	/* true-type{<typedef-declaration>} */
	cluster_0_top = cdeclZc_declarationsZtrue_type_METH_2(orig_sp, L_arg0);
    }
    else {
	/* true-type{<type-declaration>} */
	cluster_0_top = cdeclZc_declarationsZtrue_type_METH(orig_sp, L_arg0);
    }
    return cluster_0_top;
}

extern descriptor_t cdeclZc_declarationsZCLS_type_declaration;	/* <type-declaration> */

/* general-entry for discriminator for true-type */
descriptor_t * cdeclZc_declarationsZtrue_type_DISCRIM_GENERAL(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */)
{
    descriptor_t *cluster_0_top;
    long L_nargs; /* nargs */
    void * L_args; /* args */
    descriptor_t L_temp; /* temp */
    heapptr_t L_PCTobject_class; /* %object-class */
    boolean L_temp_2; /* temp */
    heapptr_t L_arg; /* arg */

    L_nargs = A1;
    if ((L_nargs == 1)) {
	L_args = ((void *)(orig_sp - 1));
	L_temp = (((descriptor_t *)L_args)[0]);
	L_PCTobject_class = SLOT(L_temp.heapptr, heapptr_t, 0);
	if ((cdeclZc_declarationsZCLS_bitfield_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_incomplete_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_float_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_integer_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_predefined_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_typedef_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_function_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_vector_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_pointer_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_enum_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_struct_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else {
	    L_temp_2 = (cdeclZc_declarationsZCLS_union_declaration.heapptr == L_PCTobject_class);
	}
	if (L_temp_2) {
	    L_arg = L_temp.heapptr;
	    orig_sp = L_args;
	    /* discriminator for true-type */
	    cluster_0_top = cdeclZc_declarationsZtrue_type_DISCRIM_FUN(orig_sp, L_arg);
	    return cluster_0_top;
	}
	else {
	    /* type-error{<object>, <type>} */
	    dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp, cdeclZc_declarationsZCLS_type_declaration.heapptr);
	    not_reached();
	}
    }
    else {
	/* wrong-number-of-arguments-error{<boolean>, <integer>, <integer>} */
	dylanZdylan_visceraZwrong_number_of_arguments_error_METH(orig_sp, TRUE, 1, L_nargs);
	not_reached();
    }
}


/* Define Method equate{<type-declaration>, <string>} */

extern descriptor_t cdeclZstr_236;	/* "Cannot 'equate:' predefined type: %s." */

/* equate{<type-declaration>, <string>} */
void cdeclZc_declarationsZequate_METH(descriptor_t *orig_sp, heapptr_t A0 /* decl */, descriptor_t A1 /* name */)
{
    descriptor_t *cluster_0_top;
    heapptr_t L_decl; /* decl */
    descriptor_t L_arg0; /* arg0 */
    long L_unique_id; /* unique-id */
    descriptor_t L_name; /* name */
    boolean L_temp; /* temp */
    descriptor_t L_arg1; /* arg1 */
    heapptr_t L_instance; /* instance */

    L_decl = A0;
    /* discriminator for true-type */
    cluster_0_top = cdeclZc_declarationsZtrue_type_DISCRIM_FUN(orig_sp, L_decl);
    L_arg0 = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
    L_unique_id = SLOT(SLOT(L_arg0.heapptr, heapptr_t, 0), long, 8);
    L_name = A1;
    if ((L_unique_id < 10099)) {
	L_temp = FALSE;
    }
    else if ((10101 < L_unique_id)) {
	L_temp = FALSE;
    }
    else {
	L_temp = TRUE;
    }
    if (L_temp) {
	/* simple-name{<declaration>} */
	L_arg1 = cdeclZc_declarationsZsimple_name_METH(orig_sp, L_decl);
	/* maker for <simple-object-vector> */
	L_instance = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 1, dylanZfalse);
	SLOT(L_instance, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_arg1;
	/* error{<string>} */
	dylanZdylan_visceraZerror_METH(orig_sp, cdeclZstr_236, L_instance);
	not_reached();
    }
    else {
	/* dylan-name-setter{<string>, <declaration>} */
	cdeclZc_declarationsZdylan_name_setter_METH(orig_sp, L_name, L_decl);
	/* equated?-setter{<boolean>, <type-declaration>} */
	cdeclZc_declarationsZequatedQUERY_setter_METH(orig_sp, TRUE, L_decl);
	return;
    }
}


/* Define Method compute-dylan-name{<type-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */

extern descriptor_t dylanZSYM_type;	/* #"type" */

/* compute-dylan-name{<type-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
descriptor_t cdeclZc_declarationsZcompute_dylan_name_METH_3(descriptor_t *orig_sp, heapptr_t A0 /* decl */, heapptr_t A1 /* mapper */, descriptor_t A2 /* prefix */, descriptor_t A3 /* containers */, boolean A4, descriptor_t A5)
{
    descriptor_t *cluster_0_top;
    descriptor_t L_arg2; /* arg2 */
    heapptr_t L_mapper; /* mapper */
    descriptor_t L_temp; /* temp */
    boolean L_condition; /* condition */

    /* simple-name{<declaration>} */
    L_arg2 = cdeclZc_declarationsZsimple_name_METH(orig_sp, A0);
    orig_sp[0] = dylanZSYM_type;
    orig_sp[1] = A2;
    orig_sp[2] = L_arg2;
    orig_sp[3] = A3;
    L_mapper = A1;
    cluster_0_top = GENERAL_ENTRY(L_mapper)(orig_sp + 4, L_mapper, 4);
    L_temp = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
    /* %instance?{<object>, <class>} */
    L_condition = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_temp, dylanZdylan_visceraZCLS_string.heapptr);
    if (L_condition) {
	return L_temp;
    }
    else {
	/* type-error{<object>, <type>} */
	dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp, dylanZdylan_visceraZCLS_string.heapptr);
	not_reached();
    }
}


/* Define Method type-name{<type-declaration>} */

/* type-name{<type-declaration>} */
descriptor_t cdeclZc_declarationsZtype_name_METH(descriptor_t *orig_sp, heapptr_t A0 /* decl */)
{
    descriptor_t L_result; /* result */

    /* dylan-name{<declaration>} */
    L_result = cdeclZc_declarationsZdylan_name_METH(orig_sp, A0);
    return L_result;
}


/* Define Method true-type{<type-declaration>} */

/* true-type{<type-declaration>} */
descriptor_t * cdeclZc_declarationsZtrue_type_METH(descriptor_t *orig_sp, heapptr_t A0 /* type */)
{
    descriptor_t L_temp;

    L_temp.heapptr = A0;
    L_temp.dataword.l = 0;
    orig_sp[0] = L_temp;
    return orig_sp + 1;
}


/* {Implicit} Define Generic members */

/* members is members */

extern descriptor_t cdeclZc_declarationsZmembers_METH(descriptor_t *orig_sp, heapptr_t A0);	/* members{<structured-type-declaration>} */

/* generic-entry for members{<structured-type-declaration>} */
descriptor_t * cdeclZc_declarationsZmembers_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    descriptor_t L_result0; /* result0 */

    L_args = ((void *)(orig_sp - 1));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    orig_sp = L_args;
    /* members{<structured-type-declaration>} */
    L_result0 = cdeclZc_declarationsZmembers_METH(orig_sp, L_arg_2);
    orig_sp[0] = L_result0;
    return orig_sp + 1;
}


/* {Implicit} Define Generic members-setter */

/* members-setter is members-setter */

extern descriptor_t cdeclZc_declarationsZmembers_setter_METH(descriptor_t *orig_sp, descriptor_t A0, heapptr_t A1);	/* members-setter{type-union(<false>, <sequence>), <structured-type-declaration>} */

/* generic-entry for members-setter{type-union(<false>, <sequence>), <structured-type-declaration>} */
descriptor_t * cdeclZc_declarationsZmembers_setter_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    descriptor_t L_arg_2; /* arg */
    descriptor_t L_arg_3; /* arg */
    heapptr_t L_arg_4; /* arg */
    descriptor_t L_result0; /* result0 */

    L_args = ((void *)(orig_sp - 2));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = (((descriptor_t *)L_args)[1]);
    L_arg_3 = L_arg;
    L_arg_4 = L_arg_2.heapptr;
    orig_sp = L_args;
    /* members-setter{type-union(<false>, <sequence>), <structured-type-declaration>} */
    L_result0 = cdeclZc_declarationsZmembers_setter_METH(orig_sp, L_arg_3, L_arg_4);
    orig_sp[0] = L_result0;
    return orig_sp + 1;
}


/* Define Class <structured-type-declaration> */

/* <structured-type-declaration> is <structured-type-declaration> */

/* getter for members{<structured-type-declaration>} */
descriptor_t cdeclZc_declarationsZmembers_METH(descriptor_t *orig_sp, heapptr_t A0 /* object */)
{
    heapptr_t L_object; /* object */
    descriptor_t L_result; /* result */

    L_object = A0;
    if ((SLOT(SLOT(L_object, heapptr_t, 0), long, 8) < 10004)) {
	L_result = SLOT(L_object, descriptor_t, 48);
    }
    else {
	L_result = SLOT(L_object, descriptor_t, 40);
    }
    return L_result;
}

/* setter for members-setter{type-union(<false>, <sequence>), <structured-type-declaration>} */
descriptor_t cdeclZc_declarationsZmembers_setter_METH(descriptor_t *orig_sp, descriptor_t A0 /* new-value */, heapptr_t A1 /* object */)
{
    descriptor_t L_new_value; /* new-value */
    heapptr_t L_object; /* object */

    L_new_value = A0;
    L_object = A1;
    if ((SLOT(SLOT(L_object, heapptr_t, 0), long, 8) < 10004)) {
	SLOT(L_object, descriptor_t, 48) = L_new_value;
    }
    else {
	SLOT(L_object, descriptor_t, 40) = L_new_value;
    }
    return L_new_value;
}


/* {Implicit} Define Generic coalesced-members */

/* coalesced-members is coalesced-members */

/* generic-entry for coalesced-members{<struct-declaration>} */
descriptor_t * cdeclZc_declarationsZcoalesced_members_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    descriptor_t L_coalesced_members; /* coalesced-members */

    L_args = ((void *)(orig_sp - 1));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    orig_sp = L_args;
    L_coalesced_members = SLOT(L_arg_2, descriptor_t, 56);
    orig_sp[0] = L_coalesced_members;
    return orig_sp + 1;
}


/* {Implicit} Define Generic coalesced-members-setter */

/* coalesced-members-setter is coalesced-members-setter */

/* generic-entry for coalesced-members-setter{type-union(<false>, <sequence>), <struct-declaration>} */
descriptor_t * cdeclZc_declarationsZcoalesced_members_setter_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    descriptor_t L_arg_2; /* arg */
    descriptor_t L_arg_3; /* arg */
    heapptr_t L_arg_4; /* arg */

    L_args = ((void *)(orig_sp - 2));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg;
    L_arg_3 = (((descriptor_t *)L_args)[1]);
    L_arg_4 = L_arg_3.heapptr;
    orig_sp = L_args;
    SLOT(L_arg_4, descriptor_t, 56) = L_arg_2;
    orig_sp[0] = L_arg_2;
    return orig_sp + 1;
}


/* Define Class <struct-declaration> */

/* <struct-declaration> is <struct-declaration> */

extern void dylanZdylan_visceraZmissing_required_init_keyword_error_METH(descriptor_t *orig_sp, heapptr_t A0, heapptr_t A1);	/* missing-required-init-keyword-error{<symbol>, <class>} */

extern descriptor_t dylanZSYM_name;	/* #"name" */

/* maker for <struct-declaration> */
heapptr_t cdeclZc_declarationsZCLS_struct_declaration_MAKER_FUN(descriptor_t *orig_sp, descriptor_t A0 /* name */, descriptor_t A1 /* d-name-init-value */, boolean A2 /* equated?-init-value */)
{
    descriptor_t L_name; /* name */
    descriptor_t L_d_name_init_value; /* d-name-init-value */
    boolean L_equatedQUERY_init_value; /* equated?-init-value */
    heapptr_t L_instance; /* instance */

    L_name = A0;
    L_d_name_init_value = A1;
    L_equatedQUERY_init_value = A2;
    if ((L_name.heapptr != NULL)) {
	L_instance = allocate(64);
	SLOT(L_instance, heapptr_t, 0) = cdeclZc_declarationsZCLS_struct_declaration.heapptr;
	SLOT(L_instance, descriptor_t, 4) = dylanZfalse;
	SLOT(L_instance, descriptor_t, 12) = L_name;
	SLOT(L_instance, descriptor_t, 20) = dylanZfalse;
	SLOT(L_instance, descriptor_t, 28) = L_d_name_init_value;
	SLOT(L_instance, descriptor_t, 36) = dylanZfalse;
	SLOT(L_instance, bool, 44) = FALSE;
	SLOT(L_instance, bool, 45) = L_equatedQUERY_init_value;
	SLOT(L_instance, descriptor_t, 48) = dylanZfalse;
	SLOT(L_instance, descriptor_t, 56) = dylanZfalse;
	return L_instance;
    }
    else {
	/* missing-required-init-keyword-error{<symbol>, <class>} */
	dylanZdylan_visceraZmissing_required_init_keyword_error_METH(orig_sp, dylanZSYM_name.heapptr, cdeclZc_declarationsZCLS_struct_declaration.heapptr);
	not_reached();
    }
}

extern descriptor_t cdeclZSYM_dylan_name;	/* #"dylan-name" */

extern descriptor_t cdeclZliteral_18;	/* type-union(<string>, <false>) */

extern descriptor_t cdeclZSYM_equated;	/* #"equated" */

/* general-entry for maker for <struct-declaration> */
descriptor_t * cdeclZc_declarationsZCLS_struct_declaration_MAKER_GENERAL(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */)
{
    long L_nargs; /* nargs */
    void * L_args; /* args */
    descriptor_t L_name; /* name */
    descriptor_t L_dylan_name; /* dylan-name */
    boolean L_equated; /* equated */
    long L_index; /* index */
    descriptor_t L_temp; /* temp */
    heapptr_t L_key; /* key */
    descriptor_t L_value; /* value */
    boolean L_condition; /* condition */
    boolean L_temp_2; /* temp */
    boolean L_temp_3; /* temp */
    heapptr_t L_PCTobject_class; /* %object-class */
    boolean L_temp_4; /* temp */
    heapptr_t L_result0; /* result0 */
    descriptor_t L_temp_5;

    L_nargs = A1;
    if (((L_nargs & 1) == 0)) {
	L_args = ((void *)(orig_sp - L_nargs));
	L_name.heapptr = 0;
	L_name.dataword.l = 0;
	L_dylan_name = dylanZfalse;
	L_equated = FALSE;
	L_index = (L_nargs - 2);
	while (1) {
	    if ((L_index < 0)) {
		goto block0;
	    }
	    else {
		L_temp = (((descriptor_t *)L_args)[L_index]);
		if ((dylanZdylan_visceraZCLS_symbol.heapptr == SLOT(L_temp.heapptr, heapptr_t, 0))) {
		    L_key = L_temp.heapptr;
		    L_value = (((descriptor_t *)L_args)[(L_index + 1)]);
		    if ((L_key == dylanZSYM_name.heapptr)) {
			/* %instance?{<object>, <class>} */
			L_condition = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			if (L_condition) {
			    L_name = L_value;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == cdeclZSYM_dylan_name.heapptr)) {
			/* %instance?{<object>, <class>} */
			L_temp_2 = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			if (L_temp_2) {
			    L_temp_3 = TRUE;
			}
			else if ((obj_False == L_value.heapptr)) {
			    L_temp_3 = TRUE;
			}
			else {
			    L_temp_3 = FALSE;
			}
			if (L_temp_3) {
			    L_dylan_name = L_value;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, cdeclZliteral_18.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == cdeclZSYM_equated.heapptr)) {
			L_PCTobject_class = SLOT(L_value.heapptr, heapptr_t, 0);
			if ((dylanZdylan_visceraZCLS_true.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else {
			    L_temp_4 = (dylanZdylan_visceraZCLS_false.heapptr == L_PCTobject_class);
			}
			if (L_temp_4) {
			    L_equated = (L_value.heapptr != obj_False);
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_boolean.heapptr);
			    not_reached();
			}
		    }
		    else {
		    }
		    L_index = (L_index - 2);
		}
		else {
		    /* type-error{<object>, <type>} */
		    dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp, dylanZdylan_visceraZCLS_symbol.heapptr);
		    not_reached();
		}
	    }
	}
      block0:;
	orig_sp = L_args;
	/* maker for <struct-declaration> */
	L_result0 = cdeclZc_declarationsZCLS_struct_declaration_MAKER_FUN(orig_sp, L_name, L_dylan_name, L_equated);
	L_temp_5.heapptr = L_result0;
	L_temp_5.dataword.l = 0;
	orig_sp[0] = L_temp_5;
	return orig_sp + 1;
    }
    else {
	/* odd-number-of-keyword/value-arguments-error{} */
	dylanZdylan_visceraZodd_number_of_keywordSLASHvalue_arguments_error_METH(orig_sp);
	not_reached();
    }
}


/* Define Class <union-declaration> */

/* <union-declaration> is <union-declaration> */

/* maker for <union-declaration> */
heapptr_t cdeclZc_declarationsZCLS_union_declaration_MAKER_FUN(descriptor_t *orig_sp, descriptor_t A0 /* name */, descriptor_t A1 /* d-name-init-value */, boolean A2 /* equated?-init-value */)
{
    descriptor_t L_name; /* name */
    descriptor_t L_d_name_init_value; /* d-name-init-value */
    boolean L_equatedQUERY_init_value; /* equated?-init-value */
    heapptr_t L_instance; /* instance */

    L_name = A0;
    L_d_name_init_value = A1;
    L_equatedQUERY_init_value = A2;
    if ((L_name.heapptr != NULL)) {
	L_instance = allocate(56);
	SLOT(L_instance, heapptr_t, 0) = cdeclZc_declarationsZCLS_union_declaration.heapptr;
	SLOT(L_instance, descriptor_t, 4) = dylanZfalse;
	SLOT(L_instance, descriptor_t, 12) = L_name;
	SLOT(L_instance, descriptor_t, 20) = dylanZfalse;
	SLOT(L_instance, descriptor_t, 28) = L_d_name_init_value;
	SLOT(L_instance, descriptor_t, 36) = dylanZfalse;
	SLOT(L_instance, bool, 44) = FALSE;
	SLOT(L_instance, bool, 45) = L_equatedQUERY_init_value;
	SLOT(L_instance, descriptor_t, 48) = dylanZfalse;
	return L_instance;
    }
    else {
	/* missing-required-init-keyword-error{<symbol>, <class>} */
	dylanZdylan_visceraZmissing_required_init_keyword_error_METH(orig_sp, dylanZSYM_name.heapptr, cdeclZc_declarationsZCLS_union_declaration.heapptr);
	not_reached();
    }
}

/* general-entry for maker for <union-declaration> */
descriptor_t * cdeclZc_declarationsZCLS_union_declaration_MAKER_GENERAL(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */)
{
    long L_nargs; /* nargs */
    void * L_args; /* args */
    descriptor_t L_name; /* name */
    descriptor_t L_dylan_name; /* dylan-name */
    boolean L_equated; /* equated */
    long L_index; /* index */
    descriptor_t L_temp; /* temp */
    heapptr_t L_key; /* key */
    descriptor_t L_value; /* value */
    boolean L_condition; /* condition */
    boolean L_temp_2; /* temp */
    boolean L_temp_3; /* temp */
    heapptr_t L_PCTobject_class; /* %object-class */
    boolean L_temp_4; /* temp */
    heapptr_t L_result0; /* result0 */
    descriptor_t L_temp_5;

    L_nargs = A1;
    if (((L_nargs & 1) == 0)) {
	L_args = ((void *)(orig_sp - L_nargs));
	L_name.heapptr = 0;
	L_name.dataword.l = 0;
	L_dylan_name = dylanZfalse;
	L_equated = FALSE;
	L_index = (L_nargs - 2);
	while (1) {
	    if ((L_index < 0)) {
		goto block0;
	    }
	    else {
		L_temp = (((descriptor_t *)L_args)[L_index]);
		if ((dylanZdylan_visceraZCLS_symbol.heapptr == SLOT(L_temp.heapptr, heapptr_t, 0))) {
		    L_key = L_temp.heapptr;
		    L_value = (((descriptor_t *)L_args)[(L_index + 1)]);
		    if ((L_key == dylanZSYM_name.heapptr)) {
			/* %instance?{<object>, <class>} */
			L_condition = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			if (L_condition) {
			    L_name = L_value;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == cdeclZSYM_dylan_name.heapptr)) {
			/* %instance?{<object>, <class>} */
			L_temp_2 = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			if (L_temp_2) {
			    L_temp_3 = TRUE;
			}
			else if ((obj_False == L_value.heapptr)) {
			    L_temp_3 = TRUE;
			}
			else {
			    L_temp_3 = FALSE;
			}
			if (L_temp_3) {
			    L_dylan_name = L_value;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, cdeclZliteral_18.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == cdeclZSYM_equated.heapptr)) {
			L_PCTobject_class = SLOT(L_value.heapptr, heapptr_t, 0);
			if ((dylanZdylan_visceraZCLS_true.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else {
			    L_temp_4 = (dylanZdylan_visceraZCLS_false.heapptr == L_PCTobject_class);
			}
			if (L_temp_4) {
			    L_equated = (L_value.heapptr != obj_False);
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_boolean.heapptr);
			    not_reached();
			}
		    }
		    else {
		    }
		    L_index = (L_index - 2);
		}
		else {
		    /* type-error{<object>, <type>} */
		    dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp, dylanZdylan_visceraZCLS_symbol.heapptr);
		    not_reached();
		}
	    }
	}
      block0:;
	orig_sp = L_args;
	/* maker for <union-declaration> */
	L_result0 = cdeclZc_declarationsZCLS_union_declaration_MAKER_FUN(orig_sp, L_name, L_dylan_name, L_equated);
	L_temp_5.heapptr = L_result0;
	L_temp_5.dataword.l = 0;
	orig_sp[0] = L_temp_5;
	return orig_sp + 1;
    }
    else {
	/* odd-number-of-keyword/value-arguments-error{} */
	dylanZdylan_visceraZodd_number_of_keywordSLASHvalue_arguments_error_METH(orig_sp);
	not_reached();
    }
}


/* Define Class <enum-declaration> */

/* <enum-declaration> is <enum-declaration> */

/* maker for <enum-declaration> */
heapptr_t cdeclZc_declarationsZCLS_enum_declaration_MAKER_FUN(descriptor_t *orig_sp, descriptor_t A0 /* name */, descriptor_t A1 /* d-name-init-value */, boolean A2 /* equated?-init-value */)
{
    descriptor_t L_name; /* name */
    descriptor_t L_d_name_init_value; /* d-name-init-value */
    boolean L_equatedQUERY_init_value; /* equated?-init-value */
    heapptr_t L_instance; /* instance */

    L_name = A0;
    L_d_name_init_value = A1;
    L_equatedQUERY_init_value = A2;
    if ((L_name.heapptr != NULL)) {
	L_instance = allocate(48);
	SLOT(L_instance, heapptr_t, 0) = cdeclZc_declarationsZCLS_enum_declaration.heapptr;
	SLOT(L_instance, descriptor_t, 4) = L_name;
	SLOT(L_instance, descriptor_t, 12) = dylanZfalse;
	SLOT(L_instance, descriptor_t, 20) = L_d_name_init_value;
	SLOT(L_instance, descriptor_t, 28) = dylanZfalse;
	SLOT(L_instance, bool, 36) = FALSE;
	SLOT(L_instance, bool, 37) = L_equatedQUERY_init_value;
	SLOT(L_instance, descriptor_t, 40) = dylanZfalse;
	return L_instance;
    }
    else {
	/* missing-required-init-keyword-error{<symbol>, <class>} */
	dylanZdylan_visceraZmissing_required_init_keyword_error_METH(orig_sp, dylanZSYM_name.heapptr, cdeclZc_declarationsZCLS_enum_declaration.heapptr);
	not_reached();
    }
}

/* general-entry for maker for <enum-declaration> */
descriptor_t * cdeclZc_declarationsZCLS_enum_declaration_MAKER_GENERAL(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */)
{
    long L_nargs; /* nargs */
    void * L_args; /* args */
    descriptor_t L_name; /* name */
    descriptor_t L_dylan_name; /* dylan-name */
    boolean L_equated; /* equated */
    long L_index; /* index */
    descriptor_t L_temp; /* temp */
    heapptr_t L_key; /* key */
    descriptor_t L_value; /* value */
    boolean L_condition; /* condition */
    boolean L_temp_2; /* temp */
    boolean L_temp_3; /* temp */
    heapptr_t L_PCTobject_class; /* %object-class */
    boolean L_temp_4; /* temp */
    heapptr_t L_result0; /* result0 */
    descriptor_t L_temp_5;

    L_nargs = A1;
    if (((L_nargs & 1) == 0)) {
	L_args = ((void *)(orig_sp - L_nargs));
	L_name.heapptr = 0;
	L_name.dataword.l = 0;
	L_dylan_name = dylanZfalse;
	L_equated = FALSE;
	L_index = (L_nargs - 2);
	while (1) {
	    if ((L_index < 0)) {
		goto block0;
	    }
	    else {
		L_temp = (((descriptor_t *)L_args)[L_index]);
		if ((dylanZdylan_visceraZCLS_symbol.heapptr == SLOT(L_temp.heapptr, heapptr_t, 0))) {
		    L_key = L_temp.heapptr;
		    L_value = (((descriptor_t *)L_args)[(L_index + 1)]);
		    if ((L_key == dylanZSYM_name.heapptr)) {
			/* %instance?{<object>, <class>} */
			L_condition = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			if (L_condition) {
			    L_name = L_value;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == cdeclZSYM_dylan_name.heapptr)) {
			/* %instance?{<object>, <class>} */
			L_temp_2 = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			if (L_temp_2) {
			    L_temp_3 = TRUE;
			}
			else if ((obj_False == L_value.heapptr)) {
			    L_temp_3 = TRUE;
			}
			else {
			    L_temp_3 = FALSE;
			}
			if (L_temp_3) {
			    L_dylan_name = L_value;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, cdeclZliteral_18.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == cdeclZSYM_equated.heapptr)) {
			L_PCTobject_class = SLOT(L_value.heapptr, heapptr_t, 0);
			if ((dylanZdylan_visceraZCLS_true.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else {
			    L_temp_4 = (dylanZdylan_visceraZCLS_false.heapptr == L_PCTobject_class);
			}
			if (L_temp_4) {
			    L_equated = (L_value.heapptr != obj_False);
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_boolean.heapptr);
			    not_reached();
			}
		    }
		    else {
		    }
		    L_index = (L_index - 2);
		}
		else {
		    /* type-error{<object>, <type>} */
		    dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp, dylanZdylan_visceraZCLS_symbol.heapptr);
		    not_reached();
		}
	    }
	}
      block0:;
	orig_sp = L_args;
	/* maker for <enum-declaration> */
	L_result0 = cdeclZc_declarationsZCLS_enum_declaration_MAKER_FUN(orig_sp, L_name, L_dylan_name, L_equated);
	L_temp_5.heapptr = L_result0;
	L_temp_5.dataword.l = 0;
	orig_sp[0] = L_temp_5;
	return orig_sp + 1;
    }
    else {
	/* odd-number-of-keyword/value-arguments-error{} */
	dylanZdylan_visceraZodd_number_of_keywordSLASHvalue_arguments_error_METH(orig_sp);
	not_reached();
    }
}


/* Define Generic find-slot */

/* find-slot is find-slot */

extern heapptr_t cdeclZc_declarationsZfind_slot_METH(descriptor_t *orig_sp, heapptr_t A0, descriptor_t A1);	/* find-slot{<structured-type-declaration>, <string>} */

/* generic-entry for find-slot{<structured-type-declaration>, <string>} */
descriptor_t * cdeclZc_declarationsZfind_slot_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    descriptor_t L_arg_2; /* arg */
    heapptr_t L_arg_3; /* arg */
    descriptor_t L_arg_4; /* arg */
    heapptr_t L_result0; /* result0 */
    descriptor_t L_temp;

    L_args = ((void *)(orig_sp - 2));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = (((descriptor_t *)L_args)[1]);
    L_arg_3 = L_arg.heapptr;
    L_arg_4 = L_arg_2;
    orig_sp = L_args;
    /* find-slot{<structured-type-declaration>, <string>} */
    L_result0 = cdeclZc_declarationsZfind_slot_METH(orig_sp, L_arg_3, L_arg_4);
    L_temp.heapptr = L_result0;
    L_temp.dataword.l = 0;
    orig_sp[0] = L_temp;
    return orig_sp + 1;
}


/* Define Generic exclude-slots */

/* exclude-slots is exclude-slots */

extern void cdeclZc_declarationsZexclude_slots_METH(descriptor_t *orig_sp, heapptr_t A0, descriptor_t A1, boolean A2);	/* exclude-slots{<structured-type-declaration>, <explicit-key-collection>, <boolean>} */

/* generic-entry for exclude-slots{<structured-type-declaration>, <explicit-key-collection>, <boolean>} */
descriptor_t * cdeclZc_declarationsZexclude_slots_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    descriptor_t L_arg_2; /* arg */
    descriptor_t L_arg_3; /* arg */
    heapptr_t L_arg_4; /* arg */
    descriptor_t L_arg_5; /* arg */
    boolean L_arg_6; /* arg */

    L_args = ((void *)(orig_sp - 3));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = (((descriptor_t *)L_args)[1]);
    L_arg_3 = (((descriptor_t *)L_args)[2]);
    L_arg_4 = L_arg.heapptr;
    L_arg_5 = L_arg_2;
    L_arg_6 = (L_arg_3.heapptr != obj_False);
    orig_sp = L_args;
    /* exclude-slots{<structured-type-declaration>, <explicit-key-collection>, <boolean>} */
    cdeclZc_declarationsZexclude_slots_METH(orig_sp, L_arg_4, L_arg_5, L_arg_6);
    return orig_sp + 0;
}


/* Define Generic make-struct-type */

/* make-struct-type is make-struct-type */


/* Define Generic apply-container-options */

/* apply-container-options is apply-container-options */

extern void cdeclZc_declarationsZapply_container_options_METH(descriptor_t *orig_sp, heapptr_t A0, heapptr_t A1, descriptor_t A2, boolean A3, descriptor_t A4);	/* apply-container-options{<structured-type-declaration>, <function>, <string>, <boolean>, <string>} */

/* generic-entry for apply-container-options{<structured-type-declaration>, <function>, <string>, <boolean>, <string>} */
descriptor_t * cdeclZc_declarationsZapply_container_options_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    descriptor_t L_arg_2; /* arg */
    descriptor_t L_arg_3; /* arg */
    descriptor_t L_arg_4; /* arg */
    descriptor_t L_arg_5; /* arg */
    heapptr_t L_arg_6; /* arg */
    heapptr_t L_arg_7; /* arg */
    descriptor_t L_arg_8; /* arg */
    boolean L_arg_9; /* arg */
    descriptor_t L_arg_10; /* arg */

    L_args = ((void *)(orig_sp - 5));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = (((descriptor_t *)L_args)[1]);
    L_arg_3 = (((descriptor_t *)L_args)[2]);
    L_arg_4 = (((descriptor_t *)L_args)[3]);
    L_arg_5 = (((descriptor_t *)L_args)[4]);
    L_arg_6 = L_arg.heapptr;
    L_arg_7 = L_arg_2.heapptr;
    L_arg_8 = L_arg_3;
    L_arg_9 = (L_arg_4.heapptr != obj_False);
    L_arg_10 = L_arg_5;
    orig_sp = L_args;
    /* apply-container-options{<structured-type-declaration>, <function>, <string>, <boolean>, <string>} */
    cdeclZc_declarationsZapply_container_options_METH(orig_sp, L_arg_6, L_arg_7, L_arg_8, L_arg_9, L_arg_10);
    return orig_sp + 0;
}


/* Define Method compute-closure{<deque>, type-union(<union-declaration>, <struct-declaration>)} */

extern descriptor_t dylanZdylan_visceraZforward_iteration_protocol;	/* forward-iteration-protocol */

extern descriptor_t cdeclZc_declarationsZcompute_closure;	/* compute-closure */

/* compute-closure{<deque>, type-union(<union-declaration>, <struct-declaration>)} */
descriptor_t cdeclZc_declarationsZcompute_closure_METH_12(descriptor_t *orig_sp, descriptor_t A0 /* results */, heapptr_t A1 /* decl */)
{
    descriptor_t *cluster_0_top;
    descriptor_t L_results; /* results */
    heapptr_t L_decl; /* decl */
    boolean L_declaredQUERY; /* declared? */
    descriptor_t L_members; /* members */
    descriptor_t L_members_2; /* members */
    descriptor_t L_initial_state; /* initial-state */
    descriptor_t L_limit; /* limit */
    heapptr_t L_next_state; /* next-state */
    heapptr_t L_finished_stateQUERY; /* finished-state? */
    heapptr_t L_current_element; /* current-element */
    descriptor_t L_state; /* state */
    descriptor_t L_state_2; /* state */
    descriptor_t L_condition; /* condition */
    descriptor_t L_arg0; /* arg0 */
    heapptr_t L_temp; /* temp */
    boolean L_excludedQUERY; /* excluded? */
    heapptr_t L_type; /* type */
    descriptor_t L_temp_2;
    descriptor_t L_arg0_2; /* arg0 */
    descriptor_t L_temp_3;

    L_results = A0;
    L_decl = A1;
    L_declaredQUERY = SLOT(L_decl, bool, 44);
    if (L_declaredQUERY) {
    }
    else {
	SLOT(L_decl, bool, 44) = TRUE;
	L_members = SLOT(L_decl, descriptor_t, 48);
	if ((L_members.heapptr != obj_False)) {
	    L_members_2 = SLOT(L_decl, descriptor_t, 48);
	    orig_sp[0] = L_members_2;
	    /* forward-iteration-protocol */
	    cluster_0_top = GENERAL_ENTRY(dylanZdylan_visceraZforward_iteration_protocol.heapptr)(orig_sp + 1, dylanZdylan_visceraZforward_iteration_protocol.heapptr, 1);
	    L_initial_state = orig_sp[0];
	    L_limit = orig_sp[1];
	    L_next_state = orig_sp[2].heapptr;
	    L_finished_stateQUERY = orig_sp[3].heapptr;
	    L_current_element = orig_sp[5].heapptr;
	    L_state = L_initial_state;
	    while (1) {
		L_state_2 = L_state;
		orig_sp[0] = L_members_2;
		orig_sp[1] = L_state_2;
		orig_sp[2] = L_limit;
		cluster_0_top = GENERAL_ENTRY(L_finished_stateQUERY)(orig_sp + 3, L_finished_stateQUERY, 3);
		L_condition = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
		if ((L_condition.heapptr != obj_False)) {
		    goto block0;
		}
		else {
		    orig_sp[0] = L_members_2;
		    orig_sp[1] = L_state_2;
		    cluster_0_top = GENERAL_ENTRY(L_current_element)(orig_sp + 2, L_current_element, 2);
		    L_arg0 = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
		    if ((cdeclZc_declarationsZCLS_slot_declaration.heapptr == SLOT(L_arg0.heapptr, heapptr_t, 0))) {
			L_temp = L_arg0.heapptr;
			L_excludedQUERY = SLOT(L_temp, bool, 37);
			if (L_excludedQUERY) {
			}
			else {
			    L_type = SLOT(L_temp, heapptr_t, 40);
			    L_temp_2.heapptr = L_type;
			    L_temp_2.dataword.l = 0;
			    orig_sp[0] = L_results;
			    orig_sp[1] = L_temp_2;
			    /* compute-closure */
			    GENERAL_ENTRY(cdeclZc_declarationsZcompute_closure.heapptr)(orig_sp + 2, cdeclZc_declarationsZcompute_closure.heapptr, 2);
			}
			orig_sp[0] = L_members_2;
			orig_sp[1] = L_state_2;
			cluster_0_top = GENERAL_ENTRY(L_next_state)(orig_sp + 2, L_next_state, 2);
			L_arg0_2 = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
			L_state = L_arg0_2;
		    }
		    else {
			/* type-error{<object>, <type>} */
			dylanZdylan_visceraZtype_error_METH(orig_sp, L_arg0, cdeclZc_declarationsZCLS_slot_declaration.heapptr);
			not_reached();
		    }
		}
	    }
	  block0:;
	}
	else {
	}
	if ((dylanZdylan_visceraZCLS_simple_object_deque.heapptr == SLOT(L_results.heapptr, heapptr_t, 0))) {
	    L_temp_3.heapptr = L_decl;
	    L_temp_3.dataword.l = 0;
	    /* push-last{<simple-object-deque>, <object>} */
	    dylanZdylan_visceraZpush_last_METH(orig_sp, L_results.heapptr, L_temp_3);
	}
	else {
	    /* type-error{<object>, <type>} */
	    dylanZdylan_visceraZtype_error_METH(orig_sp, L_results, dylanZdylan_visceraZCLS_simple_object_deque.heapptr);
	    not_reached();
	}
    }
    return L_results;
}


/* Define Method canonical-name{<struct-declaration>} */

extern descriptor_t cdeclZstr_237;	/* "struct " */

extern descriptor_t dylanZdylan_visceraZconcatenate_as_METH(descriptor_t *orig_sp, heapptr_t A0, descriptor_t A1, heapptr_t A2);	/* concatenate-as{<type>, <sequence>} */

/* canonical-name{<struct-declaration>} */
descriptor_t cdeclZc_declarationsZcanonical_name_METH_3(descriptor_t *orig_sp, heapptr_t A0 /* decl */)
{
    heapptr_t L_decl; /* decl */
    descriptor_t L_c_name; /* c-name */
    descriptor_t L_result; /* result */
    descriptor_t L_simple_name; /* simple-name */
    heapptr_t L_instance; /* instance */
    descriptor_t L_new_seq; /* new-seq */
    boolean L_temp; /* temp */
    boolean L_temp_2; /* temp */
    descriptor_t L_temp_3; /* temp */

    L_decl = A0;
    L_c_name = SLOT(L_decl, descriptor_t, 20);
    if ((L_c_name.heapptr != obj_False)) {
	L_result = L_c_name;
    }
    else {
	L_simple_name = SLOT(L_decl, descriptor_t, 12);
	/* maker for <simple-object-vector> */
	L_instance = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 1, dylanZfalse);
	SLOT(L_instance, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_simple_name;
	/* concatenate-as{<type>, <sequence>} */
	L_new_seq = dylanZdylan_visceraZconcatenate_as_METH(orig_sp, SLOT(cdeclZstr_237.heapptr, heapptr_t, 0), cdeclZstr_237, L_instance);
	/* %instance?{<object>, <class>} */
	L_temp = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_new_seq, dylanZdylan_visceraZCLS_string.heapptr);
	if (L_temp) {
	    L_temp_2 = TRUE;
	}
	else {
	    L_temp_2 = FALSE;
	}
	if (L_temp_2) {
	    L_temp_3 = L_new_seq;
	    SLOT(L_decl, descriptor_t, 20) = L_temp_3;
	    L_result = L_temp_3;
	}
	else {
	    /* type-error{<object>, <type>} */
	    dylanZdylan_visceraZtype_error_METH(orig_sp, L_new_seq, cdeclZliteral_18.heapptr);
	    not_reached();
	}
    }
    return L_result;
}


/* Define Method canonical-name{<union-declaration>} */

extern descriptor_t cdeclZstr_238;	/* "union " */

/* canonical-name{<union-declaration>} */
descriptor_t cdeclZc_declarationsZcanonical_name_METH_4(descriptor_t *orig_sp, heapptr_t A0 /* decl */)
{
    heapptr_t L_decl; /* decl */
    descriptor_t L_c_name; /* c-name */
    descriptor_t L_result; /* result */
    descriptor_t L_simple_name; /* simple-name */
    heapptr_t L_instance; /* instance */
    descriptor_t L_new_seq; /* new-seq */
    boolean L_temp; /* temp */
    boolean L_temp_2; /* temp */
    descriptor_t L_temp_3; /* temp */

    L_decl = A0;
    L_c_name = SLOT(L_decl, descriptor_t, 20);
    if ((L_c_name.heapptr != obj_False)) {
	L_result = L_c_name;
    }
    else {
	L_simple_name = SLOT(L_decl, descriptor_t, 12);
	/* maker for <simple-object-vector> */
	L_instance = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 1, dylanZfalse);
	SLOT(L_instance, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_simple_name;
	/* concatenate-as{<type>, <sequence>} */
	L_new_seq = dylanZdylan_visceraZconcatenate_as_METH(orig_sp, SLOT(cdeclZstr_238.heapptr, heapptr_t, 0), cdeclZstr_238, L_instance);
	/* %instance?{<object>, <class>} */
	L_temp = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_new_seq, dylanZdylan_visceraZCLS_string.heapptr);
	if (L_temp) {
	    L_temp_2 = TRUE;
	}
	else {
	    L_temp_2 = FALSE;
	}
	if (L_temp_2) {
	    L_temp_3 = L_new_seq;
	    SLOT(L_decl, descriptor_t, 20) = L_temp_3;
	    L_result = L_temp_3;
	}
	else {
	    /* type-error{<object>, <type>} */
	    dylanZdylan_visceraZtype_error_METH(orig_sp, L_new_seq, cdeclZliteral_18.heapptr);
	    not_reached();
	}
    }
    return L_result;
}


/* Define Method canonical-name{<enum-declaration>} */

extern descriptor_t cdeclZstr_239;	/* "enum " */

/* canonical-name{<enum-declaration>} */
descriptor_t cdeclZc_declarationsZcanonical_name_METH_7(descriptor_t *orig_sp, heapptr_t A0 /* decl */)
{
    heapptr_t L_decl; /* decl */
    descriptor_t L_c_name; /* c-name */
    descriptor_t L_result; /* result */
    descriptor_t L_simple_name; /* simple-name */
    heapptr_t L_instance; /* instance */
    descriptor_t L_new_seq; /* new-seq */
    boolean L_temp; /* temp */
    boolean L_temp_2; /* temp */
    descriptor_t L_temp_3; /* temp */

    L_decl = A0;
    L_c_name = SLOT(L_decl, descriptor_t, 12);
    if ((L_c_name.heapptr != obj_False)) {
	L_result = L_c_name;
    }
    else {
	L_simple_name = SLOT(L_decl, descriptor_t, 4);
	/* maker for <simple-object-vector> */
	L_instance = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 1, dylanZfalse);
	SLOT(L_instance, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_simple_name;
	/* concatenate-as{<type>, <sequence>} */
	L_new_seq = dylanZdylan_visceraZconcatenate_as_METH(orig_sp, SLOT(cdeclZstr_239.heapptr, heapptr_t, 0), cdeclZstr_239, L_instance);
	/* %instance?{<object>, <class>} */
	L_temp = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_new_seq, dylanZdylan_visceraZCLS_string.heapptr);
	if (L_temp) {
	    L_temp_2 = TRUE;
	}
	else {
	    L_temp_2 = FALSE;
	}
	if (L_temp_2) {
	    L_temp_3 = L_new_seq;
	    SLOT(L_decl, descriptor_t, 12) = L_temp_3;
	    L_result = L_temp_3;
	}
	else {
	    /* type-error{<object>, <type>} */
	    dylanZdylan_visceraZtype_error_METH(orig_sp, L_new_seq, cdeclZliteral_18.heapptr);
	    not_reached();
	}
    }
    return L_result;
}


/* {Implicit} Define Generic make-enum-slot */

/* make-enum-slot is make-enum-slot */

extern heapptr_t cdeclZc_declarationsZmake_enum_slot_METH(descriptor_t *orig_sp, descriptor_t A0, descriptor_t A1, heapptr_t A2, heapptr_t A3);	/* make-enum-slot{<string>, type-union(<integer>, <false>), type-union(<enum-slot-declaration>, <false>), <parse-state>} */

/* generic-entry for make-enum-slot{<string>, type-union(<integer>, <false>), type-union(<enum-slot-declaration>, <false>), <parse-state>} */
descriptor_t * cdeclZc_declarationsZmake_enum_slot_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    descriptor_t L_arg_2; /* arg */
    descriptor_t L_arg_3; /* arg */
    descriptor_t L_arg_4; /* arg */
    descriptor_t L_arg_5; /* arg */
    descriptor_t L_arg_6; /* arg */
    heapptr_t L_arg_7; /* arg */
    heapptr_t L_arg_8; /* arg */
    heapptr_t L_result0; /* result0 */
    descriptor_t L_temp;

    L_args = ((void *)(orig_sp - 4));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = (((descriptor_t *)L_args)[1]);
    L_arg_3 = (((descriptor_t *)L_args)[2]);
    L_arg_4 = (((descriptor_t *)L_args)[3]);
    L_arg_5 = L_arg;
    L_arg_6 = L_arg_2;
    L_arg_7 = L_arg_3.heapptr;
    L_arg_8 = L_arg_4.heapptr;
    orig_sp = L_args;
    /* make-enum-slot{<string>, type-union(<integer>, <false>), type-union(<enum-slot-declaration>, <false>), <parse-state>} */
    L_result0 = cdeclZc_declarationsZmake_enum_slot_METH(orig_sp, L_arg_5, L_arg_6, L_arg_7, L_arg_8);
    L_temp.heapptr = L_result0;
    L_temp.dataword.l = 0;
    orig_sp[0] = L_temp;
    return orig_sp + 1;
}


/* Define Method make-enum-slot{<string>, type-union(<integer>, <false>), type-union(<enum-slot-declaration>, <false>), <parse-state>} */

extern descriptor_t dylanZdylan_visceraZtable_protocol;	/* table-protocol */

extern descriptor_t dylanZdylan_visceraZCLS_integer;	/* <integer> */

extern descriptor_t dylanZdylan_visceraZtable_element_METH(descriptor_t *orig_sp, heapptr_t A0, descriptor_t A1, heapptr_t A2, long A3, boolean A4, descriptor_t A5);	/* table-element{<table>, <object>, <function>, <integer>, <false>, <object>} */

extern void cdeclZc_declarationsZparse_error_METH(descriptor_t *orig_sp, heapptr_t A0, descriptor_t A1, heapptr_t A2);	/* parse-error{<parse-state>, <string>} */

extern descriptor_t cdeclZstr_240;	/* "Enumeration literal does not have a unique name: %s" */

extern descriptor_t cdeclZliteral_6;	/* proxy for <integer> */

extern descriptor_t dylanZdylan_visceraZPLUS;	/* + */

extern heapptr_t cdeclZc_declarationsZCLS_enum_slot_declaration_MAKER_FUN(descriptor_t *orig_sp, descriptor_t A0, descriptor_t A1, descriptor_t A2);	/* maker for <enum-slot-declaration> */

extern descriptor_t dylanZSYM_value;	/* #"value" */

extern descriptor_t dylanZdylan_visceraZinitialize;	/* initialize */

extern descriptor_t cdeclZc_declarationsZCLS_parse_file_state;	/* <parse-file-state> */

extern heapptr_t cdeclZc_declarationsZadd_declaration_METH(descriptor_t *orig_sp, heapptr_t A0, heapptr_t A1);	/* add-declaration{<parse-file-state>, <declaration>} */

extern descriptor_t dylanZdylan_visceraZelement_setter;	/* element-setter */

extern void dylanZdylan_visceraZuninitialized_slot_error_METH(descriptor_t *orig_sp, heapptr_t A0, descriptor_t A1);	/* uninitialized-slot-error{<slot-descriptor>, <object>} */

extern descriptor_t cdeclZliteral;	/* {<slot-descriptor> for objects introduced by <parse-state>} */

/* make-enum-slot{<string>, type-union(<integer>, <false>), type-union(<enum-slot-declaration>, <false>), <parse-state>} */
heapptr_t cdeclZc_declarationsZmake_enum_slot_METH(descriptor_t *orig_sp, descriptor_t A0 /* name */, descriptor_t A1 /* value */, heapptr_t A2 /* prev */, heapptr_t A3 /* state */)
{
    descriptor_t *cluster_0_top;
    descriptor_t L_name; /* name */
    descriptor_t L_value; /* value */
    heapptr_t L_prev; /* prev */
    heapptr_t L_state; /* state */
    heapptr_t L_objects; /* objects */
    descriptor_t L_temp;
    heapptr_t L_keyEQUAL; /* key= */
    heapptr_t L_key_hash; /* key-hash */
    descriptor_t L_temp_2; /* temp */
    descriptor_t L_temp_3; /* temp */
    long L_key_id; /* key-id */
    descriptor_t L_result; /* result */
    heapptr_t L_instance; /* instance */
    descriptor_t L_temp_4;
    descriptor_t L_value_2; /* value */
    descriptor_t L_constant_value; /* constant-value */
    descriptor_t L_temp_5;
    descriptor_t L_value_3; /* value */
    heapptr_t L_instance_2; /* instance */
    descriptor_t L_temp_6;
    heapptr_t L_temp_7; /* temp */
    heapptr_t L_new_value; /* new-value */
    heapptr_t L_objects_2; /* objects */
    descriptor_t L_temp_8;
    descriptor_t L_temp_9;
    descriptor_t L_temp_10;
    descriptor_t L_temp_11;
    descriptor_t L_temp_12;
    descriptor_t L_temp_13;

    L_name = A0;
    L_value = A1;
    L_prev = A2;
    L_state = A3;
    L_objects = SLOT(L_state, heapptr_t, 4);
    if ((L_objects != NULL)) {
	L_temp.heapptr = L_objects;
	L_temp.dataword.l = 0;
	orig_sp[0] = L_temp;
	/* table-protocol */
	cluster_0_top = GENERAL_ENTRY(dylanZdylan_visceraZtable_protocol.heapptr)(orig_sp + 1, dylanZdylan_visceraZtable_protocol.heapptr, 1);
	L_keyEQUAL = orig_sp[0].heapptr;
	L_key_hash = orig_sp[1].heapptr;
	orig_sp[0] = L_name;
	cluster_0_top = GENERAL_ENTRY(L_key_hash)(orig_sp + 1, L_key_hash, 1);
	cluster_0_top = pad_cluster(orig_sp, cluster_0_top, 2);
	L_temp_2 = orig_sp[0];
	L_temp_3 = orig_sp[1];
	if ((dylanZdylan_visceraZCLS_integer.heapptr == SLOT(L_temp_2.heapptr, heapptr_t, 0))) {
	    L_key_id = L_temp_2.dataword.l;
	    if ((obj_False == L_temp_3.heapptr)) {
		/* table-element{<table>, <object>, <function>, <integer>, <false>, <object>} */
		L_result = dylanZdylan_visceraZtable_element_METH(orig_sp, L_objects, L_name, L_keyEQUAL, L_key_id, FALSE, dylanZfalse);
		if ((L_result.heapptr != obj_False)) {
		    /* maker for <simple-object-vector> */
		    L_instance = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 1, dylanZfalse);
		    SLOT(L_instance, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_name;
		    /* parse-error{<parse-state>, <string>} */
		    cdeclZc_declarationsZparse_error_METH(orig_sp, L_state, cdeclZstr_240, L_instance);
		    /* type-error{<object>, <type>} */
		    dylanZdylan_visceraZtype_error_METH(orig_sp, dylanZfalse, cdeclZc_declarationsZCLS_enum_slot_declaration.heapptr);
		    not_reached();
		}
		else {
		    if ((L_value.heapptr != obj_False)) {
			L_temp_4.heapptr = cdeclZliteral_6.heapptr;
			L_temp_4.dataword.l = L_value.dataword.l;
			L_value_2 = L_temp_4;
		    }
		    else if ((L_prev != obj_False)) {
			L_constant_value = SLOT(L_prev, descriptor_t, 40);
			L_temp_5.heapptr = cdeclZliteral_6.heapptr;
			L_temp_5.dataword.l = 1;
			orig_sp[0] = L_constant_value;
			orig_sp[1] = L_temp_5;
			/* + */
			cluster_0_top = GENERAL_ENTRY(dylanZdylan_visceraZPLUS.heapptr)(orig_sp + 2, dylanZdylan_visceraZPLUS.heapptr, 2);
			L_value_2 = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
		    }
		    else {
			L_value_2.heapptr = cdeclZliteral_6.heapptr;
			L_value_2.dataword.l = 0;
		    }
		    L_value_3 = L_value_2;
		    /* maker for <enum-slot-declaration> */
		    L_instance_2 = cdeclZc_declarationsZCLS_enum_slot_declaration_MAKER_FUN(orig_sp, L_name, dylanZfalse, L_value_3);
		    L_temp_6.heapptr = L_instance_2;
		    L_temp_6.dataword.l = 0;
		    orig_sp[0] = L_temp_6;
		    orig_sp[1] = dylanZSYM_name;
		    orig_sp[2] = L_name;
		    orig_sp[3] = dylanZSYM_value;
		    orig_sp[4] = L_value_3;
		    /* initialize */
		    GENERAL_ENTRY(dylanZdylan_visceraZinitialize.heapptr)(orig_sp + 5, dylanZdylan_visceraZinitialize.heapptr, 5);
		    if ((cdeclZc_declarationsZCLS_parse_file_state.heapptr == SLOT(L_state, heapptr_t, 0))) {
			L_temp_7 = L_state;
			/* add-declaration{<parse-file-state>, <declaration>} */
			L_new_value = cdeclZc_declarationsZadd_declaration_METH(orig_sp, L_temp_7, L_instance_2);
			L_objects_2 = SLOT(L_temp_7, heapptr_t, 4);
			if ((L_objects_2 != NULL)) {
			    L_temp_8.heapptr = L_new_value;
			    L_temp_8.dataword.l = 0;
			    L_temp_9.heapptr = L_objects_2;
			    L_temp_9.dataword.l = 0;
			    orig_sp[0] = L_temp_8;
			    orig_sp[1] = L_temp_9;
			    orig_sp[2] = L_name;
			    /* element-setter */
			    GENERAL_ENTRY(dylanZdylan_visceraZelement_setter.heapptr)(orig_sp + 3, dylanZdylan_visceraZelement_setter.heapptr, 3);
			    if ((cdeclZc_declarationsZCLS_enum_slot_declaration.heapptr == SLOT(L_new_value, heapptr_t, 0))) {
				return L_new_value;
			    }
			    else {
				L_temp_10.heapptr = L_new_value;
				L_temp_10.dataword.l = 0;
				/* type-error{<object>, <type>} */
				dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp_10, cdeclZc_declarationsZCLS_enum_slot_declaration.heapptr);
				not_reached();
			    }
			}
			else {
			    L_temp_11.heapptr = L_temp_7;
			    L_temp_11.dataword.l = 0;
			    /* uninitialized-slot-error{<slot-descriptor>, <object>} */
			    dylanZdylan_visceraZuninitialized_slot_error_METH(orig_sp, cdeclZliteral.heapptr, L_temp_11);
			    not_reached();
			}
		    }
		    else {
			L_temp_12.heapptr = L_state;
			L_temp_12.dataword.l = 0;
			/* type-error{<object>, <type>} */
			dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp_12, cdeclZc_declarationsZCLS_parse_file_state.heapptr);
			not_reached();
		    }
		}
	    }
	    else {
		/* type-error{<object>, <type>} */
		dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp_3, dylanZdylan_visceraZCLS_false.heapptr);
		not_reached();
	    }
	}
	else {
	    /* type-error{<object>, <type>} */
	    dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp_2, dylanZdylan_visceraZCLS_integer.heapptr);
	    not_reached();
	}
    }
    else {
	L_temp_13.heapptr = L_state;
	L_temp_13.dataword.l = 0;
	/* uninitialized-slot-error{<slot-descriptor>, <object>} */
	dylanZdylan_visceraZuninitialized_slot_error_METH(orig_sp, cdeclZliteral.heapptr, L_temp_13);
	not_reached();
    }
}


/* Define Method make-struct-type{type-union(<string>, <false>), type-union(<false>, <list>), <token>, <parse-state>} */

extern descriptor_t cdeclZc_lexerZCLS_enum_token;	/* <enum-token> */

extern descriptor_t cdeclZc_lexerZCLS_struct_token;	/* <struct-token> */

extern descriptor_t cdeclZc_lexerZCLS_union_token;	/* <union-token> */

extern descriptor_t dylanZstr_4;	/* "select error: %= does not match any of the keys" */

extern descriptor_t cdeclZc_declarationsZanonymous_name_METH(descriptor_t *orig_sp);	/* anonymous-name{} */

extern descriptor_t dylanZdylan_visceraZEQUAL;	/* = */

extern descriptor_t cdeclZstr_241;	/* "Struct or union type doesn't match original declaration: %s" */

extern descriptor_t dylanZdylan_visceraZmake;	/* make */

extern descriptor_t cdeclZliteral_2;	/* {<slot-descriptor> for structs introduced by <parse-state>} */

extern descriptor_t cdeclZstr_242;	/* "Type not found: %s." */

extern descriptor_t cdeclZc_declarationsZmake_struct_type_METH_INT_method;	/* make-struct-type{type-union(<string>, <false>), type-union(<false>, <list>), <token>, <parse-state>} internal method */

extern descriptor_t cdeclZc_declarationsZmake_struct_type_METH_INT_method_2;	/* make-struct-type{type-union(<string>, <false>), type-union(<false>, <list>), <token>, <parse-state>} internal method */

extern descriptor_t cdeclZstr_243;	/* "Can't declare structure twice: %s." */

extern descriptor_t dylanZdylan_visceraZmap_as_METH(descriptor_t *orig_sp, heapptr_t A0, heapptr_t A1, descriptor_t A2, heapptr_t A3, heapptr_t A4);	/* map-as{<type>, <function>, <sequence>} */

extern descriptor_t dylanZdylan_visceraZCLS_list;	/* <list> */

extern descriptor_t cdeclZliteral_23;	/* {a <pair>} */

extern descriptor_t dylanZliteral_9;	/* type-union(<false>, <sequence>) */

extern descriptor_t cdeclZc_declarationsZCLS_structured_type_declaration;	/* <structured-type-declaration> */

/* make-struct-type{type-union(<string>, <false>), type-union(<false>, <list>), <token>, <parse-state>} */
heapptr_t cdeclZc_declarationsZmake_struct_type_METH(descriptor_t *orig_sp, descriptor_t A0 /* name */, heapptr_t A1 /* member-list */, heapptr_t A2 /* decl-token */, heapptr_t A3 /* state */)
{
    descriptor_t *cluster_0_top;
    descriptor_t L_name; /* name */
    heapptr_t L_member_list; /* member-list */
    heapptr_t L_decl_token; /* decl-token */
    heapptr_t L_state; /* state */
    heapptr_t L_declaration_class; /* declaration-class */
    heapptr_t L_decl_token_2; /* decl-token */
    heapptr_t L_decl_token_3; /* decl-token */
    heapptr_t L_instance; /* instance */
    descriptor_t L_temp;
    heapptr_t L_declaration_class_2; /* declaration-class */
    descriptor_t L_true_name; /* true-name */
    descriptor_t L_true_name_2; /* true-name */
    heapptr_t L_structs; /* structs */
    descriptor_t L_temp_2;
    heapptr_t L_keyEQUAL; /* key= */
    heapptr_t L_key_hash; /* key-hash */
    descriptor_t L_temp_3; /* temp */
    descriptor_t L_temp_4; /* temp */
    long L_key_id; /* key-id */
    descriptor_t L_result; /* result */
    descriptor_t L_temp_5;
    descriptor_t L_temp_6;
    boolean L_arg0; /* arg0 */
    heapptr_t L_instance_2; /* instance */
    descriptor_t L_type; /* type */
    heapptr_t L_state_2; /* state */
    descriptor_t L_temp_7;
    descriptor_t L_arg1; /* arg1 */
    heapptr_t L_PCTobject_class; /* %object-class */
    boolean L_temp_8; /* temp */
    heapptr_t L_new_value; /* new-value */
    heapptr_t L_structs_2; /* structs */
    descriptor_t L_temp_9;
    descriptor_t L_temp_10;
    descriptor_t L_temp_11;
    descriptor_t L_temp_12;
    heapptr_t L_instance_3; /* instance */
    descriptor_t L_type_2; /* type */
    heapptr_t L_process_member; /* process-member */
    heapptr_t L_process_member_2; /* process-member */
    heapptr_t L_PCTobject_class_2; /* %object-class */
    heapptr_t L_member_list_2; /* member-list */
    boolean L_temp_13; /* temp */
    heapptr_t L_temp_14; /* temp */
    descriptor_t L_condition; /* condition */
    heapptr_t L_instance_4; /* instance */
    heapptr_t L_instance_5; /* instance */
    descriptor_t L_temp_15;
    descriptor_t L_res; /* res */
    boolean L_temp_16; /* temp */
    boolean L_temp_17; /* temp */
    heapptr_t L_PCTobject_class_3; /* %object-class */
    boolean L_temp_18; /* temp */
    descriptor_t L_temp_19;

    L_name = A0;
    L_member_list = A1;
    L_decl_token = A2;
    L_state = A3;
    if ((cdeclZc_lexerZCLS_enum_token.heapptr == SLOT(L_decl_token, heapptr_t, 0))) {
	L_declaration_class = cdeclZc_declarationsZCLS_enum_declaration.heapptr;
    }
    else {
	L_decl_token_2 = L_decl_token;
	if ((cdeclZc_lexerZCLS_struct_token.heapptr == SLOT(L_decl_token_2, heapptr_t, 0))) {
	    L_declaration_class = cdeclZc_declarationsZCLS_struct_declaration.heapptr;
	}
	else {
	    L_decl_token_3 = L_decl_token_2;
	    if ((cdeclZc_lexerZCLS_union_token.heapptr == SLOT(L_decl_token_3, heapptr_t, 0))) {
		L_declaration_class = cdeclZc_declarationsZCLS_union_declaration.heapptr;
	    }
	    else {
		/* maker for <simple-object-vector> */
		L_instance = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 1, dylanZfalse);
		L_temp.heapptr = L_decl_token_3;
		L_temp.dataword.l = 0;
		SLOT(L_instance, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_temp;
		/* error{<string>} */
		dylanZdylan_visceraZerror_METH(orig_sp, dylanZstr_4, L_instance);
		not_reached();
	    }
	}
    }
    L_declaration_class_2 = L_declaration_class;
    if ((L_name.heapptr != obj_False)) {
	L_true_name = L_name;
    }
    else {
	/* anonymous-name{} */
	L_true_name = cdeclZc_declarationsZanonymous_name_METH(orig_sp);
    }
    L_true_name_2 = L_true_name;
    L_structs = SLOT(L_state, heapptr_t, 8);
    if ((L_structs != NULL)) {
	L_temp_2.heapptr = L_structs;
	L_temp_2.dataword.l = 0;
	orig_sp[0] = L_temp_2;
	/* table-protocol */
	cluster_0_top = GENERAL_ENTRY(dylanZdylan_visceraZtable_protocol.heapptr)(orig_sp + 1, dylanZdylan_visceraZtable_protocol.heapptr, 1);
	L_keyEQUAL = orig_sp[0].heapptr;
	L_key_hash = orig_sp[1].heapptr;
	orig_sp[0] = L_true_name_2;
	cluster_0_top = GENERAL_ENTRY(L_key_hash)(orig_sp + 1, L_key_hash, 1);
	cluster_0_top = pad_cluster(orig_sp, cluster_0_top, 2);
	L_temp_3 = orig_sp[0];
	L_temp_4 = orig_sp[1];
	if ((dylanZdylan_visceraZCLS_integer.heapptr == SLOT(L_temp_3.heapptr, heapptr_t, 0))) {
	    L_key_id = L_temp_3.dataword.l;
	    if ((obj_False == L_temp_4.heapptr)) {
		/* table-element{<table>, <object>, <function>, <integer>, <false>, <object>} */
		L_result = dylanZdylan_visceraZtable_element_METH(orig_sp, L_structs, L_true_name_2, L_keyEQUAL, L_key_id, FALSE, dylanZfalse);
		if ((L_result.heapptr != obj_False)) {
		    L_temp_5.heapptr = SLOT(L_result.heapptr, heapptr_t, 0);
		    L_temp_5.dataword.l = 0;
		    L_temp_6.heapptr = L_declaration_class_2;
		    L_temp_6.dataword.l = 0;
		    orig_sp[0] = L_temp_5;
		    orig_sp[1] = L_temp_6;
		    /* = */
		    cluster_0_top = GENERAL_ENTRY(dylanZdylan_visceraZEQUAL.heapptr)(orig_sp + 2, dylanZdylan_visceraZEQUAL.heapptr, 2);
		    L_arg0 = (orig_sp == cluster_0_top ? FALSE : (orig_sp[0].heapptr != obj_False));
		    if (L_arg0) {
		    }
		    else {
			/* maker for <simple-object-vector> */
			L_instance_2 = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 1, dylanZfalse);
			SLOT(L_instance_2, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_true_name_2;
			/* parse-error{<parse-state>, <string>} */
			cdeclZc_declarationsZparse_error_METH(orig_sp, L_state, cdeclZstr_241, L_instance_2);
		    }
		    L_type = L_result;
		}
		else {
		    if ((cdeclZc_declarationsZCLS_parse_file_state.heapptr == SLOT(L_state, heapptr_t, 0))) {
			L_state_2 = L_state;
			L_temp_7.heapptr = L_declaration_class_2;
			L_temp_7.dataword.l = 0;
			orig_sp[0] = L_temp_7;
			orig_sp[1] = dylanZSYM_name;
			orig_sp[2] = L_true_name_2;
			/* make */
			cluster_0_top = GENERAL_ENTRY(dylanZdylan_visceraZmake.heapptr)(orig_sp + 3, dylanZdylan_visceraZmake.heapptr, 3);
			L_arg1 = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
			L_PCTobject_class = SLOT(L_arg1.heapptr, heapptr_t, 0);
			if ((cdeclZc_declarationsZCLS_varargs_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_8 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_arg_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_8 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_bitfield_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_8 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_incomplete_type_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_8 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_result_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_8 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_macro_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_8 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_function_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_8 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_variable_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_8 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_enum_slot_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_8 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_coalesced_bitfields.heapptr == L_PCTobject_class)) {
			    L_temp_8 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_slot_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_8 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_object_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_8 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_float_type_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_8 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_integer_type_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_8 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_predefined_type_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_8 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_typedef_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_8 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_function_type_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_8 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_vector_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_8 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_pointer_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_8 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_enum_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_8 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_struct_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_8 = TRUE;
			}
			else {
			    L_temp_8 = (cdeclZc_declarationsZCLS_union_declaration.heapptr == L_PCTobject_class);
			}
			if (L_temp_8) {
			    /* add-declaration{<parse-file-state>, <declaration>} */
			    L_new_value = cdeclZc_declarationsZadd_declaration_METH(orig_sp, L_state_2, L_arg1.heapptr);
			    L_structs_2 = SLOT(L_state_2, heapptr_t, 8);
			    if ((L_structs_2 != NULL)) {
				L_temp_9.heapptr = L_new_value;
				L_temp_9.dataword.l = 0;
				L_temp_10.heapptr = L_structs_2;
				L_temp_10.dataword.l = 0;
				orig_sp[0] = L_temp_9;
				orig_sp[1] = L_temp_10;
				orig_sp[2] = L_true_name_2;
				/* element-setter */
				GENERAL_ENTRY(dylanZdylan_visceraZelement_setter.heapptr)(orig_sp + 3, dylanZdylan_visceraZelement_setter.heapptr, 3);
				L_temp_11.heapptr = L_new_value;
				L_temp_11.dataword.l = 0;
				L_type = L_temp_11;
			    }
			    else {
				L_temp_12.heapptr = L_state_2;
				L_temp_12.dataword.l = 0;
				/* uninitialized-slot-error{<slot-descriptor>, <object>} */
				dylanZdylan_visceraZuninitialized_slot_error_METH(orig_sp, cdeclZliteral_2.heapptr, L_temp_12);
				not_reached();
			    }
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_arg1, cdeclZc_declarationsZCLS_declaration.heapptr);
			    not_reached();
			}
		    }
		    else {
			/* maker for <simple-object-vector> */
			L_instance_3 = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 1, dylanZfalse);
			SLOT(L_instance_3, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_true_name_2;
			/* parse-error{<parse-state>, <string>} */
			cdeclZc_declarationsZparse_error_METH(orig_sp, L_state, cdeclZstr_242, L_instance_3);
			L_type = dylanZfalse;
		    }
		}
		L_type_2 = L_type;
		if ((L_declaration_class_2 == cdeclZc_declarationsZCLS_enum_declaration.heapptr)) {
		    L_process_member = cdeclZc_declarationsZmake_struct_type_METH_INT_method.heapptr;
		}
		else {
		    L_process_member = cdeclZc_declarationsZmake_struct_type_METH_INT_method_2.heapptr;
		}
		L_process_member_2 = L_process_member;
		if ((L_member_list != obj_False)) {
		    L_PCTobject_class_2 = SLOT(L_type_2.heapptr, heapptr_t, 0);
		    L_member_list_2 = L_member_list;
		    if ((cdeclZc_declarationsZCLS_enum_declaration.heapptr == L_PCTobject_class_2)) {
			L_temp_13 = TRUE;
		    }
		    else if ((cdeclZc_declarationsZCLS_struct_declaration.heapptr == L_PCTobject_class_2)) {
			L_temp_13 = TRUE;
		    }
		    else {
			L_temp_13 = (cdeclZc_declarationsZCLS_union_declaration.heapptr == L_PCTobject_class_2);
		    }
		    if (L_temp_13) {
			L_temp_14 = L_type_2.heapptr;
			/* members{<structured-type-declaration>} */
			L_condition = cdeclZc_declarationsZmembers_METH(orig_sp, L_temp_14);
			if ((L_condition.heapptr != obj_False)) {
			    /* maker for <simple-object-vector> */
			    L_instance_4 = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 1, dylanZfalse);
			    SLOT(L_instance_4, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_true_name_2;
			    /* parse-error{<parse-state>, <string>} */
			    cdeclZc_declarationsZparse_error_METH(orig_sp, L_state, cdeclZstr_243, L_instance_4);
			}
			else {
			    /* maker for <simple-object-vector> */
			    L_instance_5 = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 0, dylanZfalse);
			    L_temp_15.heapptr = L_member_list_2;
			    L_temp_15.dataword.l = 0;
			    /* map-as{<type>, <function>, <sequence>} */
			    L_res = dylanZdylan_visceraZmap_as_METH(orig_sp, dylanZdylan_visceraZCLS_list.heapptr, L_process_member_2, L_temp_15, cdeclZliteral_23.heapptr, L_instance_5);
			    /* %instance?{<object>, <class>} */
			    L_temp_16 = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_res, dylanZdylan_visceraZCLS_sequence.heapptr);
			    if (L_temp_16) {
				L_temp_17 = TRUE;
			    }
			    else {
				L_temp_17 = FALSE;
			    }
			    if (L_temp_17) {
				/* members-setter{type-union(<false>, <sequence>), <structured-type-declaration>} */
				cdeclZc_declarationsZmembers_setter_METH(orig_sp, L_res, L_temp_14);
			    }
			    else {
				/* type-error{<object>, <type>} */
				dylanZdylan_visceraZtype_error_METH(orig_sp, L_res, dylanZliteral_9.heapptr);
				not_reached();
			    }
			}
		    }
		    else {
			/* type-error{<object>, <type>} */
			dylanZdylan_visceraZtype_error_METH(orig_sp, L_type_2, cdeclZc_declarationsZCLS_structured_type_declaration.heapptr);
			not_reached();
		    }
		}
		else {
		}
		L_PCTobject_class_3 = SLOT(L_type_2.heapptr, heapptr_t, 0);
		if ((cdeclZc_declarationsZCLS_enum_declaration.heapptr == L_PCTobject_class_3)) {
		    L_temp_18 = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_struct_declaration.heapptr == L_PCTobject_class_3)) {
		    L_temp_18 = TRUE;
		}
		else {
		    L_temp_18 = (cdeclZc_declarationsZCLS_union_declaration.heapptr == L_PCTobject_class_3);
		}
		if (L_temp_18) {
		    return L_type_2.heapptr;
		}
		else {
		    /* type-error{<object>, <type>} */
		    dylanZdylan_visceraZtype_error_METH(orig_sp, L_type_2, cdeclZc_declarationsZCLS_structured_type_declaration.heapptr);
		    not_reached();
		}
	    }
	    else {
		/* type-error{<object>, <type>} */
		dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp_4, dylanZdylan_visceraZCLS_false.heapptr);
		not_reached();
	    }
	}
	else {
	    /* type-error{<object>, <type>} */
	    dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp_3, dylanZdylan_visceraZCLS_integer.heapptr);
	    not_reached();
	}
    }
    else {
	L_temp_19.heapptr = L_state;
	L_temp_19.dataword.l = 0;
	/* uninitialized-slot-error{<slot-descriptor>, <object>} */
	dylanZdylan_visceraZuninitialized_slot_error_METH(orig_sp, cdeclZliteral_2.heapptr, L_temp_19);
	not_reached();
    }
}

/* make-struct-type{type-union(<string>, <false>), type-union(<false>, <list>), <token>, <parse-state>} internal method */
descriptor_t * cdeclZc_declarationsZmake_struct_type_METH_INT_method_3(descriptor_t *orig_sp, descriptor_t A0 /* elem */)
{

    orig_sp[0] = A0;
    return orig_sp + 1;
}

extern heapptr_t cdeclZc_declarationsZCLS_slot_declaration_MAKER_FUN(descriptor_t *orig_sp, descriptor_t A0, descriptor_t A1, heapptr_t A2);	/* maker for <slot-declaration> */

/* make-struct-type{type-union(<string>, <false>), type-union(<false>, <list>), <token>, <parse-state>} internal method */
descriptor_t * cdeclZc_declarationsZmake_struct_type_METH_INT_method_4(descriptor_t *orig_sp, heapptr_t A0 /* elem */)
{
    heapptr_t L_elem; /* elem */
    descriptor_t L_head; /* head */
    descriptor_t L_tail; /* tail */
    boolean L_condition; /* condition */
    descriptor_t L_temp; /* temp */
    heapptr_t L_PCTobject_class; /* %object-class */
    boolean L_temp_2; /* temp */
    heapptr_t L_temp_3; /* temp */
    heapptr_t L_instance; /* instance */
    descriptor_t L_temp_4;
    descriptor_t L_temp_5;
    descriptor_t L_temp_6;

    L_elem = A0;
    L_head = SLOT(L_elem, descriptor_t, 4);
    L_tail = SLOT(L_elem, descriptor_t, 12);
    /* %instance?{<object>, <class>} */
    L_condition = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_head, dylanZdylan_visceraZCLS_string.heapptr);
    if (L_condition) {
	L_temp = L_head;
	L_PCTobject_class = SLOT(L_tail.heapptr, heapptr_t, 0);
	if ((cdeclZc_declarationsZCLS_bitfield_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_incomplete_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_float_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_integer_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_predefined_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_typedef_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_function_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_vector_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_pointer_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_enum_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_struct_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else {
	    L_temp_2 = (cdeclZc_declarationsZCLS_union_declaration.heapptr == L_PCTobject_class);
	}
	if (L_temp_2) {
	    L_temp_3 = L_tail.heapptr;
	    /* maker for <slot-declaration> */
	    L_instance = cdeclZc_declarationsZCLS_slot_declaration_MAKER_FUN(orig_sp, L_temp, dylanZfalse, L_temp_3);
	    L_temp_4.heapptr = L_instance;
	    L_temp_4.dataword.l = 0;
	    L_temp_5.heapptr = L_temp_3;
	    L_temp_5.dataword.l = 0;
	    orig_sp[0] = L_temp_4;
	    orig_sp[1] = dylanZSYM_name;
	    orig_sp[2] = L_temp;
	    orig_sp[3] = dylanZSYM_type;
	    orig_sp[4] = L_temp_5;
	    /* initialize */
	    GENERAL_ENTRY(dylanZdylan_visceraZinitialize.heapptr)(orig_sp + 5, dylanZdylan_visceraZinitialize.heapptr, 5);
	    L_temp_6.heapptr = L_instance;
	    L_temp_6.dataword.l = 0;
	    orig_sp[0] = L_temp_6;
	    return orig_sp + 1;
	}
	else {
	    /* type-error{<object>, <type>} */
	    dylanZdylan_visceraZtype_error_METH(orig_sp, L_tail, cdeclZc_declarationsZCLS_type_declaration.heapptr);
	    not_reached();
	}
    }
    else {
	/* type-error{<object>, <type>} */
	dylanZdylan_visceraZtype_error_METH(orig_sp, L_head, dylanZdylan_visceraZCLS_string.heapptr);
	not_reached();
    }
}

/* general-entry for make-struct-type{type-union(<string>, <false>), type-union(<false>, <list>), <token>, <parse-state>} internal method */
descriptor_t * cdeclZc_declarationsZmake_struct_type_METH_INT_method_GENERAL(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */)
{
    descriptor_t *cluster_0_top;
    long L_nargs; /* nargs */
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    descriptor_t L_result0; /* result0 */

    L_nargs = A1;
    if ((L_nargs == 1)) {
	L_args = ((void *)(orig_sp - 1));
	L_arg = (((descriptor_t *)L_args)[0]);
	orig_sp = L_args;
	/* make-struct-type{type-union(<string>, <false>), type-union(<false>, <list>), <token>, <parse-state>} internal method */
	cluster_0_top = cdeclZc_declarationsZmake_struct_type_METH_INT_method_3(orig_sp, L_arg);
	L_result0 = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
	orig_sp[0] = L_result0;
	return orig_sp + 1;
    }
    else {
	/* wrong-number-of-arguments-error{<boolean>, <integer>, <integer>} */
	dylanZdylan_visceraZwrong_number_of_arguments_error_METH(orig_sp, TRUE, 1, L_nargs);
	not_reached();
    }
}

/* generic-entry for make-struct-type{type-union(<string>, <false>), type-union(<false>, <list>), <token>, <parse-state>} internal method */
descriptor_t * cdeclZc_declarationsZmake_struct_type_METH_INT_method_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    descriptor_t *cluster_0_top;
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    descriptor_t L_arg_2; /* arg */
    descriptor_t L_result0; /* result0 */

    L_args = ((void *)(orig_sp - 1));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg;
    orig_sp = L_args;
    /* make-struct-type{type-union(<string>, <false>), type-union(<false>, <list>), <token>, <parse-state>} internal method */
    cluster_0_top = cdeclZc_declarationsZmake_struct_type_METH_INT_method_3(orig_sp, L_arg_2);
    L_result0 = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
    orig_sp[0] = L_result0;
    return orig_sp + 1;
}

extern descriptor_t dylanZdylan_visceraZCLS_pair;	/* <pair> */

/* general-entry for make-struct-type{type-union(<string>, <false>), type-union(<false>, <list>), <token>, <parse-state>} internal method */
descriptor_t * cdeclZc_declarationsZmake_struct_type_METH_INT_method_GENERAL_2(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */)
{
    descriptor_t *cluster_0_top;
    long L_nargs; /* nargs */
    void * L_args; /* args */
    descriptor_t L_temp; /* temp */
    heapptr_t L_arg; /* arg */
    heapptr_t L_result0; /* result0 */
    descriptor_t L_temp_2;

    L_nargs = A1;
    if ((L_nargs == 1)) {
	L_args = ((void *)(orig_sp - 1));
	L_temp = (((descriptor_t *)L_args)[0]);
	if ((dylanZdylan_visceraZCLS_pair.heapptr == SLOT(L_temp.heapptr, heapptr_t, 0))) {
	    L_arg = L_temp.heapptr;
	    orig_sp = L_args;
	    /* make-struct-type{type-union(<string>, <false>), type-union(<false>, <list>), <token>, <parse-state>} internal method */
	    cluster_0_top = cdeclZc_declarationsZmake_struct_type_METH_INT_method_4(orig_sp, L_arg);
	    L_result0 = (orig_sp == cluster_0_top ? obj_False : orig_sp[0].heapptr);
	    L_temp_2.heapptr = L_result0;
	    L_temp_2.dataword.l = 0;
	    orig_sp[0] = L_temp_2;
	    return orig_sp + 1;
	}
	else {
	    /* type-error{<object>, <type>} */
	    dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp, dylanZdylan_visceraZCLS_pair.heapptr);
	    not_reached();
	}
    }
    else {
	/* wrong-number-of-arguments-error{<boolean>, <integer>, <integer>} */
	dylanZdylan_visceraZwrong_number_of_arguments_error_METH(orig_sp, TRUE, 1, L_nargs);
	not_reached();
    }
}

/* generic-entry for make-struct-type{type-union(<string>, <false>), type-union(<false>, <list>), <token>, <parse-state>} internal method */
descriptor_t * cdeclZc_declarationsZmake_struct_type_METH_INT_method_GENERIC_2(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    descriptor_t *cluster_0_top;
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    heapptr_t L_result0; /* result0 */
    descriptor_t L_temp;

    L_args = ((void *)(orig_sp - 1));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    orig_sp = L_args;
    /* make-struct-type{type-union(<string>, <false>), type-union(<false>, <list>), <token>, <parse-state>} internal method */
    cluster_0_top = cdeclZc_declarationsZmake_struct_type_METH_INT_method_4(orig_sp, L_arg_2);
    L_result0 = (orig_sp == cluster_0_top ? obj_False : orig_sp[0].heapptr);
    L_temp.heapptr = L_result0;
    L_temp.dataword.l = 0;
    orig_sp[0] = L_temp;
    return orig_sp + 1;
}


/* Define Method find-slot{<structured-type-declaration>, <string>} */

extern heapptr_t dylanZdylan_visceraZmake_closure_METH(descriptor_t *orig_sp, heapptr_t A0, long A1);	/* make-closure{<method>, <integer>} */

extern descriptor_t cdeclZc_declarationsZfind_slot_METH_INT_method;	/* find-slot{<structured-type-declaration>, <string>} internal method */

extern descriptor_t cdeclZdylan_visceraZanyQUERY;	/* any? */

extern descriptor_t cdeclZstr_244;	/* "No such slot: %s" */

/* find-slot{<structured-type-declaration>, <string>} */
heapptr_t cdeclZc_declarationsZfind_slot_METH(descriptor_t *orig_sp, heapptr_t A0 /* decl */, descriptor_t A1 /* name */)
{
    descriptor_t *cluster_0_top;
    heapptr_t L_decl; /* decl */
    descriptor_t L_name; /* name */
    descriptor_t L_condition; /* condition */
    descriptor_t L_arg1; /* arg1 */
    heapptr_t L_closure; /* closure */
    descriptor_t L_temp;
    descriptor_t L_temp_2; /* temp */
    heapptr_t L_PCTobject_class; /* %object-class */
    boolean L_temp_3; /* temp */
    heapptr_t L_instance; /* instance */

    L_decl = A0;
    L_name = A1;
    /* members{<structured-type-declaration>} */
    L_condition = cdeclZc_declarationsZmembers_METH(orig_sp, L_decl);
    if ((L_condition.heapptr != obj_False)) {
	/* members{<structured-type-declaration>} */
	L_arg1 = cdeclZc_declarationsZmembers_METH(orig_sp, L_decl);
	/* make-closure{<method>, <integer>} */
	L_closure = dylanZdylan_visceraZmake_closure_METH(orig_sp, cdeclZc_declarationsZfind_slot_METH_INT_method.heapptr, 1);
	SLOT(L_closure, descriptor_t, 40 + 0 * sizeof(descriptor_t)) = L_name;
	L_temp.heapptr = L_closure;
	L_temp.dataword.l = 0;
	orig_sp[0] = L_temp;
	orig_sp[1] = L_arg1;
	/* any? */
	cluster_0_top = GENERAL_ENTRY(cdeclZdylan_visceraZanyQUERY.heapptr)(orig_sp + 2, cdeclZdylan_visceraZanyQUERY.heapptr, 2);
	L_temp_2 = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
	if ((L_temp_2.heapptr != obj_False)) {
	    L_PCTobject_class = SLOT(L_temp_2.heapptr, heapptr_t, 0);
	    if ((cdeclZc_declarationsZCLS_varargs_declaration.heapptr == L_PCTobject_class)) {
		L_temp_3 = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_arg_declaration.heapptr == L_PCTobject_class)) {
		L_temp_3 = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_bitfield_declaration.heapptr == L_PCTobject_class)) {
		L_temp_3 = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_incomplete_type_declaration.heapptr == L_PCTobject_class)) {
		L_temp_3 = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_result_declaration.heapptr == L_PCTobject_class)) {
		L_temp_3 = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_macro_declaration.heapptr == L_PCTobject_class)) {
		L_temp_3 = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_function_declaration.heapptr == L_PCTobject_class)) {
		L_temp_3 = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_variable_declaration.heapptr == L_PCTobject_class)) {
		L_temp_3 = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_enum_slot_declaration.heapptr == L_PCTobject_class)) {
		L_temp_3 = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_coalesced_bitfields.heapptr == L_PCTobject_class)) {
		L_temp_3 = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_slot_declaration.heapptr == L_PCTobject_class)) {
		L_temp_3 = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_object_declaration.heapptr == L_PCTobject_class)) {
		L_temp_3 = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_float_type_declaration.heapptr == L_PCTobject_class)) {
		L_temp_3 = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_integer_type_declaration.heapptr == L_PCTobject_class)) {
		L_temp_3 = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_predefined_type_declaration.heapptr == L_PCTobject_class)) {
		L_temp_3 = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_typedef_declaration.heapptr == L_PCTobject_class)) {
		L_temp_3 = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_function_type_declaration.heapptr == L_PCTobject_class)) {
		L_temp_3 = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_vector_declaration.heapptr == L_PCTobject_class)) {
		L_temp_3 = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_pointer_declaration.heapptr == L_PCTobject_class)) {
		L_temp_3 = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_enum_declaration.heapptr == L_PCTobject_class)) {
		L_temp_3 = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_struct_declaration.heapptr == L_PCTobject_class)) {
		L_temp_3 = TRUE;
	    }
	    else {
		L_temp_3 = (cdeclZc_declarationsZCLS_union_declaration.heapptr == L_PCTobject_class);
	    }
	    if (L_temp_3) {
		return L_temp_2.heapptr;
	    }
	    else {
		/* type-error{<object>, <type>} */
		dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp_2, cdeclZc_declarationsZCLS_declaration.heapptr);
		not_reached();
	    }
	}
	else {
	    /* maker for <simple-object-vector> */
	    L_instance = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 1, dylanZfalse);
	    SLOT(L_instance, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_name;
	    /* error{<string>} */
	    dylanZdylan_visceraZerror_METH(orig_sp, cdeclZstr_244, L_instance);
	    not_reached();
	}
    }
    else {
	/* type-error{<object>, <type>} */
	dylanZdylan_visceraZtype_error_METH(orig_sp, dylanZfalse, cdeclZc_declarationsZCLS_declaration.heapptr);
	not_reached();
    }
}

/* find-slot{<structured-type-declaration>, <string>} internal method */
descriptor_t * cdeclZc_declarationsZfind_slot_METH_INT_method_2(descriptor_t *orig_sp, descriptor_t A0 /* name */, descriptor_t A1 /* member */)
{
    descriptor_t *cluster_0_top;
    descriptor_t L_member; /* member */
    heapptr_t L_PCTobject_class; /* %object-class */
    descriptor_t L_name; /* name */
    boolean L_temp; /* temp */
    heapptr_t L_temp_2; /* temp */
    descriptor_t L_arg0; /* arg0 */
    boolean L_condition; /* condition */
    heapptr_t L_result0; /* result0 */
    descriptor_t L_temp_3;

    L_member = A1;
    L_PCTobject_class = SLOT(L_member.heapptr, heapptr_t, 0);
    L_name = A0;
    if ((cdeclZc_declarationsZCLS_varargs_declaration.heapptr == L_PCTobject_class)) {
	L_temp = TRUE;
    }
    else if ((cdeclZc_declarationsZCLS_arg_declaration.heapptr == L_PCTobject_class)) {
	L_temp = TRUE;
    }
    else if ((cdeclZc_declarationsZCLS_bitfield_declaration.heapptr == L_PCTobject_class)) {
	L_temp = TRUE;
    }
    else if ((cdeclZc_declarationsZCLS_incomplete_type_declaration.heapptr == L_PCTobject_class)) {
	L_temp = TRUE;
    }
    else if ((cdeclZc_declarationsZCLS_result_declaration.heapptr == L_PCTobject_class)) {
	L_temp = TRUE;
    }
    else if ((cdeclZc_declarationsZCLS_macro_declaration.heapptr == L_PCTobject_class)) {
	L_temp = TRUE;
    }
    else if ((cdeclZc_declarationsZCLS_function_declaration.heapptr == L_PCTobject_class)) {
	L_temp = TRUE;
    }
    else if ((cdeclZc_declarationsZCLS_variable_declaration.heapptr == L_PCTobject_class)) {
	L_temp = TRUE;
    }
    else if ((cdeclZc_declarationsZCLS_enum_slot_declaration.heapptr == L_PCTobject_class)) {
	L_temp = TRUE;
    }
    else if ((cdeclZc_declarationsZCLS_coalesced_bitfields.heapptr == L_PCTobject_class)) {
	L_temp = TRUE;
    }
    else if ((cdeclZc_declarationsZCLS_slot_declaration.heapptr == L_PCTobject_class)) {
	L_temp = TRUE;
    }
    else if ((cdeclZc_declarationsZCLS_object_declaration.heapptr == L_PCTobject_class)) {
	L_temp = TRUE;
    }
    else if ((cdeclZc_declarationsZCLS_float_type_declaration.heapptr == L_PCTobject_class)) {
	L_temp = TRUE;
    }
    else if ((cdeclZc_declarationsZCLS_integer_type_declaration.heapptr == L_PCTobject_class)) {
	L_temp = TRUE;
    }
    else if ((cdeclZc_declarationsZCLS_predefined_type_declaration.heapptr == L_PCTobject_class)) {
	L_temp = TRUE;
    }
    else if ((cdeclZc_declarationsZCLS_typedef_declaration.heapptr == L_PCTobject_class)) {
	L_temp = TRUE;
    }
    else if ((cdeclZc_declarationsZCLS_function_type_declaration.heapptr == L_PCTobject_class)) {
	L_temp = TRUE;
    }
    else if ((cdeclZc_declarationsZCLS_vector_declaration.heapptr == L_PCTobject_class)) {
	L_temp = TRUE;
    }
    else if ((cdeclZc_declarationsZCLS_pointer_declaration.heapptr == L_PCTobject_class)) {
	L_temp = TRUE;
    }
    else if ((cdeclZc_declarationsZCLS_enum_declaration.heapptr == L_PCTobject_class)) {
	L_temp = TRUE;
    }
    else if ((cdeclZc_declarationsZCLS_struct_declaration.heapptr == L_PCTobject_class)) {
	L_temp = TRUE;
    }
    else {
	L_temp = (cdeclZc_declarationsZCLS_union_declaration.heapptr == L_PCTobject_class);
    }
    if (L_temp) {
	L_temp_2 = L_member.heapptr;
	/* simple-name{<declaration>} */
	L_arg0 = cdeclZc_declarationsZsimple_name_METH(orig_sp, L_temp_2);
	orig_sp[0] = L_arg0;
	orig_sp[1] = L_name;
	/* = */
	cluster_0_top = GENERAL_ENTRY(dylanZdylan_visceraZEQUAL.heapptr)(orig_sp + 2, dylanZdylan_visceraZEQUAL.heapptr, 2);
	L_condition = (orig_sp == cluster_0_top ? FALSE : (orig_sp[0].heapptr != obj_False));
	if (L_condition) {
	    L_result0 = L_temp_2;
	}
	else {
	    L_result0 = obj_False;
	}
	L_temp_3.heapptr = L_result0;
	L_temp_3.dataword.l = 0;
	orig_sp[0] = L_temp_3;
	return orig_sp + 1;
    }
    else {
	/* type-error{<object>, <type>} */
	dylanZdylan_visceraZtype_error_METH(orig_sp, L_member, cdeclZc_declarationsZCLS_declaration.heapptr);
	not_reached();
    }
}

/* general-entry for find-slot{<structured-type-declaration>, <string>} internal method */
descriptor_t * cdeclZc_declarationsZfind_slot_METH_INT_method_GENERAL(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */)
{
    descriptor_t *cluster_0_top;
    long L_nargs; /* nargs */
    descriptor_t L_closure_var; /* closure-var */
    descriptor_t L_name; /* name */
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_result0; /* result0 */
    descriptor_t L_temp;

    L_nargs = A1;
    L_closure_var = SLOT(A0, descriptor_t, 40 + 0 * sizeof(descriptor_t));
    L_name = L_closure_var;
    if ((L_nargs == 1)) {
	L_args = ((void *)(orig_sp - 1));
	L_arg = (((descriptor_t *)L_args)[0]);
	orig_sp = L_args;
	/* find-slot{<structured-type-declaration>, <string>} internal method */
	cluster_0_top = cdeclZc_declarationsZfind_slot_METH_INT_method_2(orig_sp, L_name, L_arg);
	L_result0 = (orig_sp == cluster_0_top ? obj_False : orig_sp[0].heapptr);
	L_temp.heapptr = L_result0;
	L_temp.dataword.l = 0;
	orig_sp[0] = L_temp;
	return orig_sp + 1;
    }
    else {
	/* wrong-number-of-arguments-error{<boolean>, <integer>, <integer>} */
	dylanZdylan_visceraZwrong_number_of_arguments_error_METH(orig_sp, TRUE, 1, L_nargs);
	not_reached();
    }
}

/* generic-entry for find-slot{<structured-type-declaration>, <string>} internal method */
descriptor_t * cdeclZc_declarationsZfind_slot_METH_INT_method_GENERIC(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1, heapptr_t A2)
{
    descriptor_t *cluster_0_top;
    descriptor_t L_closure_var; /* closure-var */
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    descriptor_t L_name; /* name */
    descriptor_t L_arg_2; /* arg */
    heapptr_t L_result0; /* result0 */
    descriptor_t L_temp;

    L_closure_var = SLOT(A0, descriptor_t, 40 + 0 * sizeof(descriptor_t));
    L_args = ((void *)(orig_sp - 1));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_name = L_closure_var;
    L_arg_2 = L_arg;
    orig_sp = L_args;
    /* find-slot{<structured-type-declaration>, <string>} internal method */
    cluster_0_top = cdeclZc_declarationsZfind_slot_METH_INT_method_2(orig_sp, L_name, L_arg_2);
    L_result0 = (orig_sp == cluster_0_top ? obj_False : orig_sp[0].heapptr);
    L_temp.heapptr = L_result0;
    L_temp.dataword.l = 0;
    orig_sp[0] = L_temp;
    return orig_sp + 1;
}


/* Define Method exclude-slots{<structured-type-declaration>, <explicit-key-collection>, <boolean>} */

extern descriptor_t dylanZSYM_default;	/* #"default" */

extern descriptor_t dylanZdylan_visceraZelement;	/* element */

/* exclude-slots{<structured-type-declaration>, <explicit-key-collection>, <boolean>} */
void cdeclZc_declarationsZexclude_slots_METH(descriptor_t *orig_sp, heapptr_t A0 /* decl */, descriptor_t A1 /* imports */, boolean A2 /* import-all? */)
{
    descriptor_t *cluster_0_top;
    heapptr_t L_decl; /* decl */
    descriptor_t L_condition; /* condition */
    descriptor_t L_imports; /* imports */
    boolean L_import_allQUERY; /* import-all? */
    descriptor_t L_collection; /* collection */
    descriptor_t L_initial_state; /* initial-state */
    descriptor_t L_limit; /* limit */
    heapptr_t L_next_state; /* next-state */
    heapptr_t L_finished_stateQUERY; /* finished-state? */
    heapptr_t L_current_element; /* current-element */
    descriptor_t L_state; /* state */
    descriptor_t L_state_2; /* state */
    descriptor_t L_condition_2; /* condition */
    descriptor_t L_arg0; /* arg0 */
    descriptor_t L_temp;
    descriptor_t L_arg0_2; /* arg0 */
    boolean L_new_value; /* new-value */
    descriptor_t L_arg0_3; /* arg0 */

    L_decl = A0;
    /* members{<structured-type-declaration>} */
    L_condition = cdeclZc_declarationsZmembers_METH(orig_sp, L_decl);
    L_imports = A1;
    L_import_allQUERY = A2;
    if ((L_condition.heapptr != obj_False)) {
	/* members{<structured-type-declaration>} */
	L_collection = cdeclZc_declarationsZmembers_METH(orig_sp, L_decl);
	orig_sp[0] = L_collection;
	/* forward-iteration-protocol */
	cluster_0_top = GENERAL_ENTRY(dylanZdylan_visceraZforward_iteration_protocol.heapptr)(orig_sp + 1, dylanZdylan_visceraZforward_iteration_protocol.heapptr, 1);
	L_initial_state = orig_sp[0];
	L_limit = orig_sp[1];
	L_next_state = orig_sp[2].heapptr;
	L_finished_stateQUERY = orig_sp[3].heapptr;
	L_current_element = orig_sp[5].heapptr;
	L_state = L_initial_state;
	while (1) {
	    L_state_2 = L_state;
	    orig_sp[0] = L_collection;
	    orig_sp[1] = L_state_2;
	    orig_sp[2] = L_limit;
	    cluster_0_top = GENERAL_ENTRY(L_finished_stateQUERY)(orig_sp + 3, L_finished_stateQUERY, 3);
	    L_condition_2 = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
	    if ((L_condition_2.heapptr != obj_False)) {
		goto block0;
	    }
	    else {
		orig_sp[0] = L_collection;
		orig_sp[1] = L_state_2;
		cluster_0_top = GENERAL_ENTRY(L_current_element)(orig_sp + 2, L_current_element, 2);
		L_arg0 = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
		L_temp.heapptr = (L_import_allQUERY ? obj_True : obj_False);
		L_temp.dataword.l = 0;
		orig_sp[0] = L_imports;
		orig_sp[1] = L_arg0;
		orig_sp[2] = dylanZSYM_default;
		orig_sp[3] = L_temp;
		/* element */
		cluster_0_top = GENERAL_ENTRY(dylanZdylan_visceraZelement.heapptr)(orig_sp + 4, dylanZdylan_visceraZelement.heapptr, 4);
		L_arg0_2 = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
		L_new_value = (L_arg0_2.heapptr == obj_False);
		if ((cdeclZc_declarationsZCLS_slot_declaration.heapptr == SLOT(L_arg0.heapptr, heapptr_t, 0))) {
		    SLOT(L_arg0.heapptr, bool, 37) = L_new_value;
		    orig_sp[0] = L_collection;
		    orig_sp[1] = L_state_2;
		    cluster_0_top = GENERAL_ENTRY(L_next_state)(orig_sp + 2, L_next_state, 2);
		    L_arg0_3 = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
		    L_state = L_arg0_3;
		}
		else {
		    /* type-error{<object>, <type>} */
		    dylanZdylan_visceraZtype_error_METH(orig_sp, L_arg0, cdeclZc_declarationsZCLS_slot_declaration.heapptr);
		    not_reached();
		}
	    }
	}
      block0:;
    }
    else {
    }
    return;
}


/* Define Method find-dylan-name{<structured-type-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */

extern heapptr_t dylanZdylan_visceraZCLS_pair_MAKER_FUN(descriptor_t *orig_sp, descriptor_t A0, descriptor_t A1);	/* maker for <pair> */

/* find-dylan-name{<structured-type-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
descriptor_t cdeclZc_declarationsZfind_dylan_name_METH_2(descriptor_t *orig_sp, heapptr_t A0 /* decl */, heapptr_t A1 /* mapper */, descriptor_t A2 /* prefix */, descriptor_t A3 /* containers */, boolean A4 /* read-only */, descriptor_t A5 /* sealing */)
{
    descriptor_t *cluster_0_top;
    heapptr_t L_decl; /* decl */
    heapptr_t L_mapper; /* mapper */
    descriptor_t L_prefix; /* prefix */
    boolean L_read_only; /* read-only */
    descriptor_t L_sealing; /* sealing */
    descriptor_t L_arg0; /* arg0 */
    heapptr_t L_instance; /* instance */
    descriptor_t L_condition; /* condition */
    descriptor_t L_containers; /* containers */
    descriptor_t L_collection; /* collection */
    descriptor_t L_initial_state; /* initial-state */
    descriptor_t L_limit; /* limit */
    heapptr_t L_next_state; /* next-state */
    heapptr_t L_finished_stateQUERY; /* finished-state? */
    heapptr_t L_current_element; /* current-element */
    descriptor_t L_state; /* state */
    descriptor_t L_state_2; /* state */
    descriptor_t L_condition_2; /* condition */
    descriptor_t L_arg0_2; /* arg0 */
    heapptr_t L_PCTobject_class; /* %object-class */
    boolean L_temp; /* temp */
    descriptor_t L_temp_2;
    descriptor_t L_arg0_3; /* arg0 */
    descriptor_t L_temp_3; /* temp */
    descriptor_t L_result; /* result */
    descriptor_t L_new_value; /* new-value */

    L_decl = A0;
    L_mapper = A1;
    L_prefix = A2;
    L_read_only = A4;
    L_sealing = A5;
    /* simple-name{<declaration>} */
    L_arg0 = cdeclZc_declarationsZsimple_name_METH(orig_sp, L_decl);
    /* maker for <pair> */
    L_instance = dylanZdylan_visceraZCLS_pair_MAKER_FUN(orig_sp, L_arg0, dylanZempty_list);
    /* members{<structured-type-declaration>} */
    L_condition = cdeclZc_declarationsZmembers_METH(orig_sp, L_decl);
    L_containers = A3;
    if ((L_condition.heapptr != obj_False)) {
	/* members{<structured-type-declaration>} */
	L_collection = cdeclZc_declarationsZmembers_METH(orig_sp, L_decl);
	orig_sp[0] = L_collection;
	/* forward-iteration-protocol */
	cluster_0_top = GENERAL_ENTRY(dylanZdylan_visceraZforward_iteration_protocol.heapptr)(orig_sp + 1, dylanZdylan_visceraZforward_iteration_protocol.heapptr, 1);
	L_initial_state = orig_sp[0];
	L_limit = orig_sp[1];
	L_next_state = orig_sp[2].heapptr;
	L_finished_stateQUERY = orig_sp[3].heapptr;
	L_current_element = orig_sp[5].heapptr;
	L_state = L_initial_state;
	while (1) {
	    L_state_2 = L_state;
	    orig_sp[0] = L_collection;
	    orig_sp[1] = L_state_2;
	    orig_sp[2] = L_limit;
	    cluster_0_top = GENERAL_ENTRY(L_finished_stateQUERY)(orig_sp + 3, L_finished_stateQUERY, 3);
	    L_condition_2 = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
	    if ((L_condition_2.heapptr != obj_False)) {
		goto block0;
	    }
	    else {
		orig_sp[0] = L_collection;
		orig_sp[1] = L_state_2;
		cluster_0_top = GENERAL_ENTRY(L_current_element)(orig_sp + 2, L_current_element, 2);
		L_arg0_2 = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
		L_PCTobject_class = SLOT(L_arg0_2.heapptr, heapptr_t, 0);
		if ((cdeclZc_declarationsZCLS_varargs_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_arg_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_bitfield_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_incomplete_type_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_result_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_macro_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_function_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_variable_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_enum_slot_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_coalesced_bitfields.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_slot_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_object_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_float_type_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_integer_type_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_predefined_type_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_typedef_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_function_type_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_vector_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_pointer_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_enum_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_struct_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else {
		    L_temp = (cdeclZc_declarationsZCLS_union_declaration.heapptr == L_PCTobject_class);
		}
		if (L_temp) {
		    L_temp_2.heapptr = L_instance;
		    L_temp_2.dataword.l = 0;
		    /* discriminator for find-dylan-name */
		    cdeclZc_declarationsZfind_dylan_name_DISCRIM_FUN(orig_sp, L_arg0_2.heapptr, L_mapper, L_prefix, L_temp_2, L_read_only, L_sealing);
		    orig_sp[0] = L_collection;
		    orig_sp[1] = L_state_2;
		    cluster_0_top = GENERAL_ENTRY(L_next_state)(orig_sp + 2, L_next_state, 2);
		    L_arg0_3 = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
		    L_state = L_arg0_3;
		}
		else {
		    /* type-error{<object>, <type>} */
		    dylanZdylan_visceraZtype_error_METH(orig_sp, L_arg0_2, cdeclZc_declarationsZCLS_declaration.heapptr);
		    not_reached();
		}
	    }
	}
      block0:;
    }
    else {
    }
    /* d-name{<declaration>} */
    L_temp_3 = cdeclZc_declarationsZd_name_METH(orig_sp, L_decl);
    if ((L_temp_3.heapptr != obj_False)) {
	L_result = L_temp_3;
    }
    else {
	/* compute-dylan-name{<type-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
	L_new_value = cdeclZc_declarationsZcompute_dylan_name_METH_3(orig_sp, L_decl, L_mapper, L_prefix, L_containers, L_read_only, L_sealing);
	/* d-name-setter{type-union(<string>, <false>), <declaration>} */
	cdeclZc_declarationsZd_name_setter_METH(orig_sp, L_new_value, L_decl);
	L_result = L_new_value;
    }
    return L_result;
}


/* Define Method apply-container-options{<structured-type-declaration>, <function>, <string>, <boolean>, <string>} */

/* apply-container-options{<structured-type-declaration>, <function>, <string>, <boolean>, <string>} */
void cdeclZc_declarationsZapply_container_options_METH(descriptor_t *orig_sp, heapptr_t A0 /* decl */, heapptr_t A1 /* map-function */, descriptor_t A2 /* prefix */, boolean A3 /* read-only */, descriptor_t A4 /* sealing */)
{
    descriptor_t *cluster_0_top;
    heapptr_t L_decl; /* decl */
    descriptor_t L_arg0; /* arg0 */
    heapptr_t L_instance; /* instance */
    descriptor_t L_condition; /* condition */
    heapptr_t L_map_function; /* map-function */
    descriptor_t L_prefix; /* prefix */
    boolean L_read_only; /* read-only */
    descriptor_t L_sealing; /* sealing */
    descriptor_t L_collection; /* collection */
    descriptor_t L_initial_state; /* initial-state */
    descriptor_t L_limit; /* limit */
    heapptr_t L_next_state; /* next-state */
    heapptr_t L_finished_stateQUERY; /* finished-state? */
    heapptr_t L_current_element; /* current-element */
    descriptor_t L_state; /* state */
    descriptor_t L_state_2; /* state */
    descriptor_t L_condition_2; /* condition */
    descriptor_t L_arg0_2; /* arg0 */
    heapptr_t L_PCTobject_class; /* %object-class */
    boolean L_temp; /* temp */
    descriptor_t L_temp_2;
    descriptor_t L_arg0_3; /* arg0 */

    L_decl = A0;
    /* simple-name{<declaration>} */
    L_arg0 = cdeclZc_declarationsZsimple_name_METH(orig_sp, L_decl);
    /* maker for <pair> */
    L_instance = dylanZdylan_visceraZCLS_pair_MAKER_FUN(orig_sp, L_arg0, dylanZempty_list);
    /* members{<structured-type-declaration>} */
    L_condition = cdeclZc_declarationsZmembers_METH(orig_sp, L_decl);
    L_map_function = A1;
    L_prefix = A2;
    L_read_only = A3;
    L_sealing = A4;
    if ((L_condition.heapptr != obj_False)) {
	/* members{<structured-type-declaration>} */
	L_collection = cdeclZc_declarationsZmembers_METH(orig_sp, L_decl);
	orig_sp[0] = L_collection;
	/* forward-iteration-protocol */
	cluster_0_top = GENERAL_ENTRY(dylanZdylan_visceraZforward_iteration_protocol.heapptr)(orig_sp + 1, dylanZdylan_visceraZforward_iteration_protocol.heapptr, 1);
	L_initial_state = orig_sp[0];
	L_limit = orig_sp[1];
	L_next_state = orig_sp[2].heapptr;
	L_finished_stateQUERY = orig_sp[3].heapptr;
	L_current_element = orig_sp[5].heapptr;
	L_state = L_initial_state;
	while (1) {
	    L_state_2 = L_state;
	    orig_sp[0] = L_collection;
	    orig_sp[1] = L_state_2;
	    orig_sp[2] = L_limit;
	    cluster_0_top = GENERAL_ENTRY(L_finished_stateQUERY)(orig_sp + 3, L_finished_stateQUERY, 3);
	    L_condition_2 = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
	    if ((L_condition_2.heapptr != obj_False)) {
		goto block0;
	    }
	    else {
		orig_sp[0] = L_collection;
		orig_sp[1] = L_state_2;
		cluster_0_top = GENERAL_ENTRY(L_current_element)(orig_sp + 2, L_current_element, 2);
		L_arg0_2 = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
		L_PCTobject_class = SLOT(L_arg0_2.heapptr, heapptr_t, 0);
		if ((cdeclZc_declarationsZCLS_varargs_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_arg_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_bitfield_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_incomplete_type_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_result_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_macro_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_function_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_variable_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_enum_slot_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_coalesced_bitfields.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_slot_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_object_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_float_type_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_integer_type_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_predefined_type_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_typedef_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_function_type_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_vector_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_pointer_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_enum_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_struct_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else {
		    L_temp = (cdeclZc_declarationsZCLS_union_declaration.heapptr == L_PCTobject_class);
		}
		if (L_temp) {
		    L_temp_2.heapptr = L_instance;
		    L_temp_2.dataword.l = 0;
		    /* discriminator for find-dylan-name */
		    cdeclZc_declarationsZfind_dylan_name_DISCRIM_FUN(orig_sp, L_arg0_2.heapptr, L_map_function, L_prefix, L_temp_2, L_read_only, L_sealing);
		    orig_sp[0] = L_collection;
		    orig_sp[1] = L_state_2;
		    cluster_0_top = GENERAL_ENTRY(L_next_state)(orig_sp + 2, L_next_state, 2);
		    L_arg0_3 = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
		    L_state = L_arg0_3;
		}
		else {
		    /* type-error{<object>, <type>} */
		    dylanZdylan_visceraZtype_error_METH(orig_sp, L_arg0_2, cdeclZc_declarationsZCLS_declaration.heapptr);
		    not_reached();
		}
	    }
	}
      block0:;
    }
    else {
    }
    return;
}


/* {Implicit} Define Generic referent */

/* referent is referent */

/* generic-entry for referent{<pointer-declaration>} */
descriptor_t * cdeclZc_declarationsZreferent_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    heapptr_t L_referent; /* referent */
    descriptor_t L_temp;

    L_args = ((void *)(orig_sp - 1));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    orig_sp = L_args;
    L_referent = SLOT(L_arg_2, heapptr_t, 48);
    L_temp.heapptr = L_referent;
    L_temp.dataword.l = 0;
    orig_sp[0] = L_temp;
    return orig_sp + 1;
}


/* {Implicit} Define Generic referent-setter */

/* referent-setter is referent-setter */

/* generic-entry for referent-setter{<type-declaration>, <pointer-declaration>} */
descriptor_t * cdeclZc_declarationsZreferent_setter_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    descriptor_t L_arg_3; /* arg */
    heapptr_t L_arg_4; /* arg */
    descriptor_t L_temp;

    L_args = ((void *)(orig_sp - 2));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    L_arg_3 = (((descriptor_t *)L_args)[1]);
    L_arg_4 = L_arg_3.heapptr;
    orig_sp = L_args;
    SLOT(L_arg_4, heapptr_t, 48) = L_arg_2;
    L_temp.heapptr = L_arg_2;
    L_temp.dataword.l = 0;
    orig_sp[0] = L_temp;
    return orig_sp + 1;
}


/* {Implicit} Define Generic accessors-written? */

/* accessors-written? is accessors-written? */

/* generic-entry for accessors-written?{<pointer-declaration>} */
descriptor_t * cdeclZc_declarationsZaccessors_writtenQUERY_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    descriptor_t L_accessors_writtenQUERY; /* accessors-written? */

    L_args = ((void *)(orig_sp - 1));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    orig_sp = L_args;
    L_accessors_writtenQUERY = SLOT(L_arg_2, descriptor_t, 52);
    orig_sp[0] = L_accessors_writtenQUERY;
    return orig_sp + 1;
}


/* {Implicit} Define Generic accessors-written?-setter */

/* accessors-written?-setter is accessors-written?-setter */

/* generic-entry for accessors-written?-setter{<object>, <pointer-declaration>} */
descriptor_t * cdeclZc_declarationsZaccessors_writtenQUERY_setter_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    descriptor_t L_arg_2; /* arg */
    descriptor_t L_arg_3; /* arg */
    heapptr_t L_arg_4; /* arg */

    L_args = ((void *)(orig_sp - 2));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg;
    L_arg_3 = (((descriptor_t *)L_args)[1]);
    L_arg_4 = L_arg_3.heapptr;
    orig_sp = L_args;
    SLOT(L_arg_4, descriptor_t, 52) = L_arg_2;
    orig_sp[0] = L_arg_2;
    return orig_sp + 1;
}


/* Define Class <pointer-declaration> */

/* <pointer-declaration> is <pointer-declaration> */

extern descriptor_t cdeclZSYM_referent;	/* #"referent" */

/* maker for <pointer-declaration> */
heapptr_t cdeclZc_declarationsZCLS_pointer_declaration_MAKER_FUN(descriptor_t *orig_sp, descriptor_t A0 /* name */, descriptor_t A1 /* d-name-init-value */, boolean A2 /* equated?-init-value */, heapptr_t A3 /* referent */)
{
    descriptor_t L_name; /* name */
    heapptr_t L_referent; /* referent */
    descriptor_t L_d_name_init_value; /* d-name-init-value */
    boolean L_equatedQUERY_init_value; /* equated?-init-value */
    heapptr_t L_instance; /* instance */

    L_name = A0;
    L_referent = A3;
    L_d_name_init_value = A1;
    L_equatedQUERY_init_value = A2;
    if ((L_name.heapptr != NULL)) {
	if ((L_referent != NULL)) {
	    L_instance = allocate(60);
	    SLOT(L_instance, heapptr_t, 0) = cdeclZc_declarationsZCLS_pointer_declaration.heapptr;
	    SLOT(L_instance, descriptor_t, 4) = dylanZfalse;
	    SLOT(L_instance, descriptor_t, 12) = L_name;
	    SLOT(L_instance, descriptor_t, 20) = dylanZfalse;
	    SLOT(L_instance, descriptor_t, 28) = L_d_name_init_value;
	    SLOT(L_instance, descriptor_t, 36) = dylanZfalse;
	    SLOT(L_instance, bool, 44) = FALSE;
	    SLOT(L_instance, bool, 45) = L_equatedQUERY_init_value;
	    SLOT(L_instance, heapptr_t, 48) = L_referent;
	    SLOT(L_instance, descriptor_t, 52) = dylanZfalse;
	    return L_instance;
	}
	else {
	    /* missing-required-init-keyword-error{<symbol>, <class>} */
	    dylanZdylan_visceraZmissing_required_init_keyword_error_METH(orig_sp, cdeclZSYM_referent.heapptr, cdeclZc_declarationsZCLS_pointer_declaration.heapptr);
	    not_reached();
	}
    }
    else {
	/* missing-required-init-keyword-error{<symbol>, <class>} */
	dylanZdylan_visceraZmissing_required_init_keyword_error_METH(orig_sp, dylanZSYM_name.heapptr, cdeclZc_declarationsZCLS_pointer_declaration.heapptr);
	not_reached();
    }
}

/* general-entry for maker for <pointer-declaration> */
descriptor_t * cdeclZc_declarationsZCLS_pointer_declaration_MAKER_GENERAL(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */)
{
    long L_nargs; /* nargs */
    void * L_args; /* args */
    descriptor_t L_name; /* name */
    descriptor_t L_dylan_name; /* dylan-name */
    boolean L_equated; /* equated */
    heapptr_t L_referent; /* referent */
    long L_index; /* index */
    descriptor_t L_temp; /* temp */
    heapptr_t L_key; /* key */
    descriptor_t L_value; /* value */
    boolean L_condition; /* condition */
    boolean L_temp_2; /* temp */
    boolean L_temp_3; /* temp */
    heapptr_t L_PCTobject_class; /* %object-class */
    boolean L_temp_4; /* temp */
    heapptr_t L_PCTobject_class_2; /* %object-class */
    boolean L_temp_5; /* temp */
    heapptr_t L_result0; /* result0 */
    descriptor_t L_temp_6;

    L_nargs = A1;
    if (((L_nargs & 1) == 0)) {
	L_args = ((void *)(orig_sp - L_nargs));
	L_name.heapptr = 0;
	L_name.dataword.l = 0;
	L_dylan_name = dylanZfalse;
	L_equated = FALSE;
	L_referent = 0;
	L_index = (L_nargs - 2);
	while (1) {
	    if ((L_index < 0)) {
		goto block0;
	    }
	    else {
		L_temp = (((descriptor_t *)L_args)[L_index]);
		if ((dylanZdylan_visceraZCLS_symbol.heapptr == SLOT(L_temp.heapptr, heapptr_t, 0))) {
		    L_key = L_temp.heapptr;
		    L_value = (((descriptor_t *)L_args)[(L_index + 1)]);
		    if ((L_key == dylanZSYM_name.heapptr)) {
			/* %instance?{<object>, <class>} */
			L_condition = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			if (L_condition) {
			    L_name = L_value;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == cdeclZSYM_dylan_name.heapptr)) {
			/* %instance?{<object>, <class>} */
			L_temp_2 = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			if (L_temp_2) {
			    L_temp_3 = TRUE;
			}
			else if ((obj_False == L_value.heapptr)) {
			    L_temp_3 = TRUE;
			}
			else {
			    L_temp_3 = FALSE;
			}
			if (L_temp_3) {
			    L_dylan_name = L_value;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, cdeclZliteral_18.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == cdeclZSYM_equated.heapptr)) {
			L_PCTobject_class = SLOT(L_value.heapptr, heapptr_t, 0);
			if ((dylanZdylan_visceraZCLS_true.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else {
			    L_temp_4 = (dylanZdylan_visceraZCLS_false.heapptr == L_PCTobject_class);
			}
			if (L_temp_4) {
			    L_equated = (L_value.heapptr != obj_False);
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_boolean.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == cdeclZSYM_referent.heapptr)) {
			L_PCTobject_class_2 = SLOT(L_value.heapptr, heapptr_t, 0);
			if ((cdeclZc_declarationsZCLS_bitfield_declaration.heapptr == L_PCTobject_class_2)) {
			    L_temp_5 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_incomplete_type_declaration.heapptr == L_PCTobject_class_2)) {
			    L_temp_5 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_float_type_declaration.heapptr == L_PCTobject_class_2)) {
			    L_temp_5 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_integer_type_declaration.heapptr == L_PCTobject_class_2)) {
			    L_temp_5 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_predefined_type_declaration.heapptr == L_PCTobject_class_2)) {
			    L_temp_5 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_typedef_declaration.heapptr == L_PCTobject_class_2)) {
			    L_temp_5 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_function_type_declaration.heapptr == L_PCTobject_class_2)) {
			    L_temp_5 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_vector_declaration.heapptr == L_PCTobject_class_2)) {
			    L_temp_5 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_pointer_declaration.heapptr == L_PCTobject_class_2)) {
			    L_temp_5 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_enum_declaration.heapptr == L_PCTobject_class_2)) {
			    L_temp_5 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_struct_declaration.heapptr == L_PCTobject_class_2)) {
			    L_temp_5 = TRUE;
			}
			else {
			    L_temp_5 = (cdeclZc_declarationsZCLS_union_declaration.heapptr == L_PCTobject_class_2);
			}
			if (L_temp_5) {
			    L_referent = L_value.heapptr;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, cdeclZc_declarationsZCLS_type_declaration.heapptr);
			    not_reached();
			}
		    }
		    else {
		    }
		    L_index = (L_index - 2);
		}
		else {
		    /* type-error{<object>, <type>} */
		    dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp, dylanZdylan_visceraZCLS_symbol.heapptr);
		    not_reached();
		}
	    }
	}
      block0:;
	orig_sp = L_args;
	/* maker for <pointer-declaration> */
	L_result0 = cdeclZc_declarationsZCLS_pointer_declaration_MAKER_FUN(orig_sp, L_name, L_dylan_name, L_equated, L_referent);
	L_temp_6.heapptr = L_result0;
	L_temp_6.dataword.l = 0;
	orig_sp[0] = L_temp_6;
	return orig_sp + 1;
    }
    else {
	/* odd-number-of-keyword/value-arguments-error{} */
	dylanZdylan_visceraZodd_number_of_keywordSLASHvalue_arguments_error_METH(orig_sp);
	not_reached();
    }
}


/* {Implicit} Define Generic pointer-equiv */

/* pointer-equiv is pointer-equiv */

/* generic-entry for pointer-equiv{<vector-declaration>} */
descriptor_t * cdeclZc_declarationsZpointer_equiv_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    heapptr_t L_pointer_equiv; /* pointer-equiv */
    descriptor_t L_temp;

    L_args = ((void *)(orig_sp - 1));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    orig_sp = L_args;
    L_pointer_equiv = SLOT(L_arg_2, heapptr_t, 48);
    L_temp.heapptr = L_pointer_equiv;
    L_temp.dataword.l = 0;
    orig_sp[0] = L_temp;
    return orig_sp + 1;
}


/* {Implicit} Define Generic pointer-equiv-setter */

/* pointer-equiv-setter is pointer-equiv-setter */

/* generic-entry for pointer-equiv-setter{<type-declaration>, <vector-declaration>} */
descriptor_t * cdeclZc_declarationsZpointer_equiv_setter_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    descriptor_t L_arg_3; /* arg */
    heapptr_t L_arg_4; /* arg */
    descriptor_t L_temp;

    L_args = ((void *)(orig_sp - 2));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    L_arg_3 = (((descriptor_t *)L_args)[1]);
    L_arg_4 = L_arg_3.heapptr;
    orig_sp = L_args;
    SLOT(L_arg_4, heapptr_t, 48) = L_arg_2;
    L_temp.heapptr = L_arg_2;
    L_temp.dataword.l = 0;
    orig_sp[0] = L_temp;
    return orig_sp + 1;
}


/* {Implicit} Define Generic length */

/* length is length */

/* generic-entry for length{<vector-declaration>} */
descriptor_t * cdeclZc_declarationsZlength_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    descriptor_t L_length; /* length */

    L_args = ((void *)(orig_sp - 1));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    orig_sp = L_args;
    L_length = SLOT(L_arg_2, descriptor_t, 52);
    orig_sp[0] = L_length;
    return orig_sp + 1;
}


/* {Implicit} Define Generic length-setter */

/* length-setter is length-setter */

/* generic-entry for length-setter{type-union(<integer>, <false>), <vector-declaration>} */
descriptor_t * cdeclZc_declarationsZlength_setter_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    descriptor_t L_arg_2; /* arg */
    descriptor_t L_arg_3; /* arg */
    heapptr_t L_arg_4; /* arg */

    L_args = ((void *)(orig_sp - 2));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg;
    L_arg_3 = (((descriptor_t *)L_args)[1]);
    L_arg_4 = L_arg_3.heapptr;
    orig_sp = L_args;
    SLOT(L_arg_4, descriptor_t, 52) = L_arg_2;
    orig_sp[0] = L_arg_2;
    return orig_sp + 1;
}


/* Define Class <vector-declaration> */

/* <vector-declaration> is <vector-declaration> */

extern descriptor_t printZSYM_length;	/* #"length" */

extern descriptor_t cdeclZSYM_equiv;	/* #"equiv" */

/* maker for <vector-declaration> */
heapptr_t cdeclZc_declarationsZCLS_vector_declaration_MAKER_FUN(descriptor_t *orig_sp, descriptor_t A0 /* name */, descriptor_t A1 /* d-name-init-value */, boolean A2 /* equated?-init-value */, heapptr_t A3 /* equiv */, descriptor_t A4 /* length */)
{
    descriptor_t L_name; /* name */
    heapptr_t L_equiv; /* equiv */
    descriptor_t L_length; /* length */
    descriptor_t L_d_name_init_value; /* d-name-init-value */
    boolean L_equatedQUERY_init_value; /* equated?-init-value */
    heapptr_t L_instance; /* instance */

    L_name = A0;
    L_equiv = A3;
    L_length = A4;
    L_d_name_init_value = A1;
    L_equatedQUERY_init_value = A2;
    if ((L_name.heapptr != NULL)) {
	if ((L_equiv != NULL)) {
	    if ((L_length.heapptr != NULL)) {
		L_instance = allocate(60);
		SLOT(L_instance, heapptr_t, 0) = cdeclZc_declarationsZCLS_vector_declaration.heapptr;
		SLOT(L_instance, descriptor_t, 4) = dylanZfalse;
		SLOT(L_instance, descriptor_t, 12) = L_name;
		SLOT(L_instance, descriptor_t, 20) = dylanZfalse;
		SLOT(L_instance, descriptor_t, 28) = L_d_name_init_value;
		SLOT(L_instance, descriptor_t, 36) = dylanZfalse;
		SLOT(L_instance, bool, 44) = FALSE;
		SLOT(L_instance, bool, 45) = L_equatedQUERY_init_value;
		SLOT(L_instance, heapptr_t, 48) = L_equiv;
		SLOT(L_instance, descriptor_t, 52) = L_length;
		return L_instance;
	    }
	    else {
		/* missing-required-init-keyword-error{<symbol>, <class>} */
		dylanZdylan_visceraZmissing_required_init_keyword_error_METH(orig_sp, printZSYM_length.heapptr, cdeclZc_declarationsZCLS_vector_declaration.heapptr);
		not_reached();
	    }
	}
	else {
	    /* missing-required-init-keyword-error{<symbol>, <class>} */
	    dylanZdylan_visceraZmissing_required_init_keyword_error_METH(orig_sp, cdeclZSYM_equiv.heapptr, cdeclZc_declarationsZCLS_vector_declaration.heapptr);
	    not_reached();
	}
    }
    else {
	/* missing-required-init-keyword-error{<symbol>, <class>} */
	dylanZdylan_visceraZmissing_required_init_keyword_error_METH(orig_sp, dylanZSYM_name.heapptr, cdeclZc_declarationsZCLS_vector_declaration.heapptr);
	not_reached();
    }
}

extern descriptor_t dylanZliteral_8;	/* type-union(<integer>, <false>) */

/* general-entry for maker for <vector-declaration> */
descriptor_t * cdeclZc_declarationsZCLS_vector_declaration_MAKER_GENERAL(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */)
{
    long L_nargs; /* nargs */
    void * L_args; /* args */
    descriptor_t L_name; /* name */
    descriptor_t L_dylan_name; /* dylan-name */
    boolean L_equated; /* equated */
    heapptr_t L_equiv; /* equiv */
    descriptor_t L_length; /* length */
    long L_index; /* index */
    descriptor_t L_temp; /* temp */
    heapptr_t L_key; /* key */
    descriptor_t L_value; /* value */
    boolean L_condition; /* condition */
    boolean L_temp_2; /* temp */
    boolean L_temp_3; /* temp */
    heapptr_t L_PCTobject_class; /* %object-class */
    boolean L_temp_4; /* temp */
    heapptr_t L_PCTobject_class_2; /* %object-class */
    boolean L_temp_5; /* temp */
    boolean L_temp_6; /* temp */
    heapptr_t L_result0; /* result0 */
    descriptor_t L_temp_7;

    L_nargs = A1;
    if (((L_nargs & 1) == 0)) {
	L_args = ((void *)(orig_sp - L_nargs));
	L_name.heapptr = 0;
	L_name.dataword.l = 0;
	L_dylan_name = dylanZfalse;
	L_equated = FALSE;
	L_equiv = 0;
	L_length.heapptr = 0;
	L_length.dataword.l = 0;
	L_index = (L_nargs - 2);
	while (1) {
	    if ((L_index < 0)) {
		goto block0;
	    }
	    else {
		L_temp = (((descriptor_t *)L_args)[L_index]);
		if ((dylanZdylan_visceraZCLS_symbol.heapptr == SLOT(L_temp.heapptr, heapptr_t, 0))) {
		    L_key = L_temp.heapptr;
		    L_value = (((descriptor_t *)L_args)[(L_index + 1)]);
		    if ((L_key == dylanZSYM_name.heapptr)) {
			/* %instance?{<object>, <class>} */
			L_condition = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			if (L_condition) {
			    L_name = L_value;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == cdeclZSYM_dylan_name.heapptr)) {
			/* %instance?{<object>, <class>} */
			L_temp_2 = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			if (L_temp_2) {
			    L_temp_3 = TRUE;
			}
			else if ((obj_False == L_value.heapptr)) {
			    L_temp_3 = TRUE;
			}
			else {
			    L_temp_3 = FALSE;
			}
			if (L_temp_3) {
			    L_dylan_name = L_value;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, cdeclZliteral_18.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == cdeclZSYM_equated.heapptr)) {
			L_PCTobject_class = SLOT(L_value.heapptr, heapptr_t, 0);
			if ((dylanZdylan_visceraZCLS_true.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else {
			    L_temp_4 = (dylanZdylan_visceraZCLS_false.heapptr == L_PCTobject_class);
			}
			if (L_temp_4) {
			    L_equated = (L_value.heapptr != obj_False);
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_boolean.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == cdeclZSYM_equiv.heapptr)) {
			L_PCTobject_class_2 = SLOT(L_value.heapptr, heapptr_t, 0);
			if ((cdeclZc_declarationsZCLS_bitfield_declaration.heapptr == L_PCTobject_class_2)) {
			    L_temp_5 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_incomplete_type_declaration.heapptr == L_PCTobject_class_2)) {
			    L_temp_5 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_float_type_declaration.heapptr == L_PCTobject_class_2)) {
			    L_temp_5 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_integer_type_declaration.heapptr == L_PCTobject_class_2)) {
			    L_temp_5 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_predefined_type_declaration.heapptr == L_PCTobject_class_2)) {
			    L_temp_5 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_typedef_declaration.heapptr == L_PCTobject_class_2)) {
			    L_temp_5 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_function_type_declaration.heapptr == L_PCTobject_class_2)) {
			    L_temp_5 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_vector_declaration.heapptr == L_PCTobject_class_2)) {
			    L_temp_5 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_pointer_declaration.heapptr == L_PCTobject_class_2)) {
			    L_temp_5 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_enum_declaration.heapptr == L_PCTobject_class_2)) {
			    L_temp_5 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_struct_declaration.heapptr == L_PCTobject_class_2)) {
			    L_temp_5 = TRUE;
			}
			else {
			    L_temp_5 = (cdeclZc_declarationsZCLS_union_declaration.heapptr == L_PCTobject_class_2);
			}
			if (L_temp_5) {
			    L_equiv = L_value.heapptr;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, cdeclZc_declarationsZCLS_type_declaration.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == printZSYM_length.heapptr)) {
			if ((dylanZdylan_visceraZCLS_integer.heapptr == SLOT(L_value.heapptr, heapptr_t, 0))) {
			    L_temp_6 = TRUE;
			}
			else if ((obj_False == L_value.heapptr)) {
			    L_temp_6 = TRUE;
			}
			else {
			    L_temp_6 = FALSE;
			}
			if (L_temp_6) {
			    L_length = L_value;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, dylanZliteral_8.heapptr);
			    not_reached();
			}
		    }
		    else {
		    }
		    L_index = (L_index - 2);
		}
		else {
		    /* type-error{<object>, <type>} */
		    dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp, dylanZdylan_visceraZCLS_symbol.heapptr);
		    not_reached();
		}
	    }
	}
      block0:;
	orig_sp = L_args;
	/* maker for <vector-declaration> */
	L_result0 = cdeclZc_declarationsZCLS_vector_declaration_MAKER_FUN(orig_sp, L_name, L_dylan_name, L_equated, L_equiv, L_length);
	L_temp_7.heapptr = L_result0;
	L_temp_7.dataword.l = 0;
	orig_sp[0] = L_temp_7;
	return orig_sp + 1;
    }
    else {
	/* odd-number-of-keyword/value-arguments-error{} */
	dylanZdylan_visceraZodd_number_of_keywordSLASHvalue_arguments_error_METH(orig_sp);
	not_reached();
    }
}


/* Define Method rename{<pointer-declaration>, <string>} */

/* rename{<pointer-declaration>, <string>} */
void cdeclZc_declarationsZrename_METH_2(descriptor_t *orig_sp, heapptr_t A0 /* decl */, descriptor_t A1 /* name */)
{
    descriptor_t *cluster_0_top;
    heapptr_t L_decl; /* decl */
    descriptor_t L_name; /* name */
    descriptor_t L_simple_name; /* simple-name */
    heapptr_t L_referent; /* referent */
    descriptor_t L_arg1; /* arg1 */
    boolean L_condition; /* condition */
    heapptr_t L_referent_2; /* referent */

    L_decl = A0;
    L_name = A1;
    L_simple_name = SLOT(L_decl, descriptor_t, 12);
    L_referent = SLOT(L_decl, heapptr_t, 48);
    /* simple-name{<declaration>} */
    L_arg1 = cdeclZc_declarationsZsimple_name_METH(orig_sp, L_referent);
    orig_sp[0] = L_simple_name;
    orig_sp[1] = L_arg1;
    /* = */
    cluster_0_top = GENERAL_ENTRY(dylanZdylan_visceraZEQUAL.heapptr)(orig_sp + 2, dylanZdylan_visceraZEQUAL.heapptr, 2);
    L_condition = (orig_sp == cluster_0_top ? FALSE : (orig_sp[0].heapptr != obj_False));
    if (L_condition) {
	L_referent_2 = SLOT(L_decl, heapptr_t, 48);
	/* dylan-name-setter{<string>, <declaration>} */
	cdeclZc_declarationsZdylan_name_setter_METH(orig_sp, L_name, L_referent_2);
    }
    else {
	/* dylan-name-setter{<string>, <declaration>} */
	cdeclZc_declarationsZdylan_name_setter_METH(orig_sp, L_name, L_decl);
    }
    return;
}


/* Define Method mapped-name{<pointer-declaration>} */

/* mapped-name{<pointer-declaration>} */
descriptor_t cdeclZc_declarationsZmapped_name_METH_9(descriptor_t *orig_sp, heapptr_t A0 /* decl */, descriptor_t A1 /* explicit-only? */)
{
    descriptor_t *cluster_0_top;
    heapptr_t L_decl; /* decl */
    descriptor_t L_explicit_onlyQUERY; /* explicit-only? */
    descriptor_t L_simple_name; /* simple-name */
    heapptr_t L_referent; /* referent */
    descriptor_t L_arg1; /* arg1 */
    boolean L_condition; /* condition */
    descriptor_t L_map_type; /* map-type */
    descriptor_t L_result; /* result */
    heapptr_t L_referent_2; /* referent */
    descriptor_t L_temp; /* temp */
    descriptor_t L_map_type_2; /* map-type */

    L_decl = A0;
    L_explicit_onlyQUERY = A1;
    L_simple_name = SLOT(L_decl, descriptor_t, 12);
    L_referent = SLOT(L_decl, heapptr_t, 48);
    /* simple-name{<declaration>} */
    L_arg1 = cdeclZc_declarationsZsimple_name_METH(orig_sp, L_referent);
    orig_sp[0] = L_simple_name;
    orig_sp[1] = L_arg1;
    /* = */
    cluster_0_top = GENERAL_ENTRY(dylanZdylan_visceraZEQUAL.heapptr)(orig_sp + 2, dylanZdylan_visceraZEQUAL.heapptr, 2);
    L_condition = (orig_sp == cluster_0_top ? FALSE : (orig_sp[0].heapptr != obj_False));
    if (L_condition) {
	L_map_type = SLOT(L_decl, descriptor_t, 36);
	if ((L_map_type.heapptr != obj_False)) {
	    L_result = L_map_type;
	}
	else {
	    L_referent_2 = SLOT(L_decl, heapptr_t, 48);
	    /* map-type{<declaration>} */
	    L_temp = cdeclZc_declarationsZmap_type_METH(orig_sp, L_referent_2);
	    if ((L_temp.heapptr != obj_False)) {
		L_result = L_temp;
	    }
	    else if ((L_explicit_onlyQUERY.heapptr != obj_False)) {
		L_result = dylanZfalse;
	    }
	    else {
		/* type-name{<type-declaration>} */
		L_result = cdeclZc_declarationsZtype_name_METH(orig_sp, L_decl);
	    }
	}
    }
    else {
	L_map_type_2 = SLOT(L_decl, descriptor_t, 36);
	if ((L_map_type_2.heapptr != obj_False)) {
	    L_result = L_map_type_2;
	}
	else if ((L_explicit_onlyQUERY.heapptr != obj_False)) {
	    L_result = dylanZfalse;
	}
	else {
	    /* type-name{<type-declaration>} */
	    L_result = cdeclZc_declarationsZtype_name_METH(orig_sp, L_decl);
	}
    }
    return L_result;
}


/* Define Method mapped-name{<vector-declaration>} */

/* mapped-name{<vector-declaration>} */
descriptor_t cdeclZc_declarationsZmapped_name_METH_8(descriptor_t *orig_sp, heapptr_t A0 /* decl */, descriptor_t A1 /* explicit-only? */)
{
    heapptr_t L_decl; /* decl */
    descriptor_t L_explicit_onlyQUERY; /* explicit-only? */
    descriptor_t L_map_type; /* map-type */
    descriptor_t L_result; /* result */
    heapptr_t L_pointer_equiv; /* pointer-equiv */
    descriptor_t L_temp; /* temp */

    L_decl = A0;
    L_explicit_onlyQUERY = A1;
    L_map_type = SLOT(L_decl, descriptor_t, 36);
    if ((L_map_type.heapptr != obj_False)) {
	L_result = L_map_type;
    }
    else {
	L_pointer_equiv = SLOT(L_decl, heapptr_t, 48);
	/* map-type{<declaration>} */
	L_temp = cdeclZc_declarationsZmap_type_METH(orig_sp, L_pointer_equiv);
	if ((L_temp.heapptr != obj_False)) {
	    L_result = L_temp;
	}
	else if ((L_explicit_onlyQUERY.heapptr != obj_False)) {
	    L_result = dylanZfalse;
	}
	else {
	    /* type-name{<type-declaration>} */
	    L_result = cdeclZc_declarationsZtype_name_METH(orig_sp, L_decl);
	}
    }
    return L_result;
}


/* Define Method canonical-name{<pointer-declaration>} */

extern descriptor_t cdeclZstr_62;	/* "*" */

extern descriptor_t dylanZdylan_visceraZtype_for_copy;	/* type-for-copy */

extern descriptor_t dylanZdylan_visceraZsize;	/* size */

extern descriptor_t dylanZSYM_start;	/* #"start" */

extern descriptor_t dylanZdylan_visceraZcopy_sequence;	/* copy-sequence */

extern heapptr_t formatZformatZformat_to_string_METH(descriptor_t *orig_sp, heapptr_t A0, heapptr_t A1);	/* format-to-string{<byte-string>} */

extern descriptor_t cdeclZstr_245;	/* "%s (%s)" */

/* canonical-name{<pointer-declaration>} */
descriptor_t cdeclZc_declarationsZcanonical_name_METH_2(descriptor_t *orig_sp, heapptr_t A0 /* decl */)
{
    descriptor_t *cluster_0_top;
    heapptr_t L_decl; /* decl */
    descriptor_t L_c_name; /* c-name */
    descriptor_t L_c_name_2; /* c-name */
    boolean L_condition; /* condition */
    descriptor_t L_result; /* result */
    heapptr_t L_referent; /* referent */
    heapptr_t L_referent_type; /* referent-type */
    descriptor_t L_suffix; /* suffix */
    heapptr_t L_referent_type_2; /* referent-type */
    descriptor_t L_suffix_2; /* suffix */
    heapptr_t L_referent_2; /* referent */
    heapptr_t L_arg1; /* arg1 */
    heapptr_t L_instance; /* instance */
    descriptor_t L_new_seq; /* new-seq */
    heapptr_t L_referent_type_3; /* referent-type */
    heapptr_t L_referent_type_4; /* referent-type */
    descriptor_t L_referent_name; /* referent-name */
    heapptr_t L_pointer_equiv; /* pointer-equiv */
    heapptr_t L_referent_3; /* referent */
    descriptor_t L_sub_name; /* sub-name */
    descriptor_t L_arg2; /* arg2 */
    descriptor_t L_arg2_2; /* arg2 */
    heapptr_t L_arg1_2; /* arg1 */
    heapptr_t L_instance_2; /* instance */
    descriptor_t L_new_seq_2; /* new-seq */
    boolean L_temp; /* temp */
    boolean L_temp_2; /* temp */
    descriptor_t L_temp_3; /* temp */
    descriptor_t L_result0; /* result0 */
    descriptor_t L_temp_4;
    heapptr_t L_referent_type_5; /* referent-type */
    heapptr_t L_referent_type_6; /* referent-type */
    descriptor_t L_referent_name_2; /* referent-name */
    heapptr_t L_result_2; /* result */
    descriptor_t L_sub_name_2; /* sub-name */
    descriptor_t L_arg2_3; /* arg2 */
    descriptor_t L_arg2_4; /* arg2 */
    heapptr_t L_instance_3; /* instance */
    heapptr_t L_new_value; /* new-value */
    descriptor_t L_temp_5;
    descriptor_t L_temp_6;
    descriptor_t L_arg0; /* arg0 */
    heapptr_t L_arg1_3; /* arg1 */
    heapptr_t L_instance_4; /* instance */
    descriptor_t L_new_seq_3; /* new-seq */
    boolean L_temp_7; /* temp */
    boolean L_temp_8; /* temp */
    descriptor_t L_temp_9; /* temp */
    descriptor_t L_result0_2; /* result0 */

    L_decl = A0;
    L_c_name = SLOT(L_decl, descriptor_t, 20);
    if ((L_c_name.heapptr != obj_False)) {
	L_c_name_2 = SLOT(L_decl, descriptor_t, 20);
	/* %instance?{<object>, <class>} */
	L_condition = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_c_name_2, dylanZdylan_visceraZCLS_string.heapptr);
	if (L_condition) {
	    L_result = L_c_name_2;
	}
	else {
	    /* type-error{<object>, <type>} */
	    dylanZdylan_visceraZtype_error_METH(orig_sp, dylanZfalse, dylanZdylan_visceraZCLS_string.heapptr);
	    not_reached();
	}
    }
    else {
	L_referent = SLOT(L_decl, heapptr_t, 48);
	L_referent_type = L_referent;
	L_suffix = cdeclZstr_62;
	while (1) {
	    L_referent_type_2 = L_referent_type;
	    L_suffix_2 = L_suffix;
	    if ((cdeclZc_declarationsZCLS_pointer_declaration.heapptr == SLOT(L_referent_type_2, heapptr_t, 0))) {
		L_referent_2 = SLOT(L_referent_type_2, heapptr_t, 48);
		orig_sp[0] = L_suffix_2;
		/* type-for-copy */
		cluster_0_top = GENERAL_ENTRY(dylanZdylan_visceraZtype_for_copy.heapptr)(orig_sp + 1, dylanZdylan_visceraZtype_for_copy.heapptr, 1);
		L_arg1 = (orig_sp == cluster_0_top ? obj_False : orig_sp[0].heapptr);
		/* maker for <simple-object-vector> */
		L_instance = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 1, dylanZfalse);
		SLOT(L_instance, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = cdeclZstr_62;
		/* concatenate-as{<type>, <sequence>} */
		L_new_seq = dylanZdylan_visceraZconcatenate_as_METH(orig_sp, L_arg1, L_suffix_2, L_instance);
		L_referent_type = L_referent_2;
		L_suffix = L_new_seq;
	    }
	    else {
		L_referent_type_3 = L_referent_type_2;
		if ((cdeclZc_declarationsZCLS_vector_declaration.heapptr == SLOT(L_referent_type_3, heapptr_t, 0))) {
		    L_referent_type_4 = L_referent_type_3;
		    /* canonical-name{<vector-declaration>} */
		    L_referent_name = cdeclZc_declarationsZcanonical_name_METH(orig_sp, L_referent_type_4);
		    L_pointer_equiv = SLOT(L_referent_type_4, heapptr_t, 48);
		    if ((cdeclZc_declarationsZCLS_pointer_declaration.heapptr == SLOT(L_pointer_equiv, heapptr_t, 0))) {
			L_referent_3 = SLOT(L_pointer_equiv, heapptr_t, 48);
			/* discriminator for canonical-name */
			L_sub_name = cdeclZc_declarationsZcanonical_name_DISCRIM_FUN(orig_sp, L_referent_3);
			orig_sp[0] = L_sub_name;
			/* size */
			cluster_0_top = GENERAL_ENTRY(dylanZdylan_visceraZsize.heapptr)(orig_sp + 1, dylanZdylan_visceraZsize.heapptr, 1);
			L_arg2 = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
			orig_sp[0] = L_referent_name;
			orig_sp[1] = dylanZSYM_start;
			orig_sp[2] = L_arg2;
			/* copy-sequence */
			cluster_0_top = GENERAL_ENTRY(dylanZdylan_visceraZcopy_sequence.heapptr)(orig_sp + 3, dylanZdylan_visceraZcopy_sequence.heapptr, 3);
			L_arg2_2 = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
			orig_sp[0] = L_sub_name;
			/* type-for-copy */
			cluster_0_top = GENERAL_ENTRY(dylanZdylan_visceraZtype_for_copy.heapptr)(orig_sp + 1, dylanZdylan_visceraZtype_for_copy.heapptr, 1);
			L_arg1_2 = (orig_sp == cluster_0_top ? obj_False : orig_sp[0].heapptr);
			/* maker for <simple-object-vector> */
			L_instance_2 = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 2, dylanZfalse);
			SLOT(L_instance_2, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_suffix_2;
			SLOT(L_instance_2, descriptor_t, 8 + 1 * sizeof(descriptor_t)) = L_arg2_2;
			/* concatenate-as{<type>, <sequence>} */
			L_new_seq_2 = dylanZdylan_visceraZconcatenate_as_METH(orig_sp, L_arg1_2, L_sub_name, L_instance_2);
			/* %instance?{<object>, <class>} */
			L_temp = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_new_seq_2, dylanZdylan_visceraZCLS_string.heapptr);
			if (L_temp) {
			    L_temp_2 = TRUE;
			}
			else {
			    L_temp_2 = FALSE;
			}
			if (L_temp_2) {
			    L_temp_3 = L_new_seq_2;
			    SLOT(L_decl, descriptor_t, 20) = L_temp_3;
			    L_result0 = L_temp_3;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_new_seq_2, cdeclZliteral_18.heapptr);
			    not_reached();
			}
		    }
		    else {
			L_temp_4.heapptr = L_pointer_equiv;
			L_temp_4.dataword.l = 0;
			/* type-error{<object>, <type>} */
			dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp_4, cdeclZc_declarationsZCLS_pointer_declaration.heapptr);
			not_reached();
		    }
		}
		else {
		    L_referent_type_5 = L_referent_type_3;
		    if ((cdeclZc_declarationsZCLS_function_type_declaration.heapptr == SLOT(L_referent_type_5, heapptr_t, 0))) {
			L_referent_type_6 = L_referent_type_5;
			/* canonical-name{<function-type-declaration>} */
			L_referent_name_2 = cdeclZc_declarationsZcanonical_name_METH_6(orig_sp, L_referent_type_6);
			L_result_2 = SLOT(L_referent_type_6, heapptr_t, 40);
			/* canonical-name{<declaration>} */
			L_sub_name_2 = cdeclZc_declarationsZcanonical_name_METH_5(orig_sp, L_result_2);
			orig_sp[0] = L_sub_name_2;
			/* size */
			cluster_0_top = GENERAL_ENTRY(dylanZdylan_visceraZsize.heapptr)(orig_sp + 1, dylanZdylan_visceraZsize.heapptr, 1);
			L_arg2_3 = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
			orig_sp[0] = L_referent_name_2;
			orig_sp[1] = dylanZSYM_start;
			orig_sp[2] = L_arg2_3;
			/* copy-sequence */
			cluster_0_top = GENERAL_ENTRY(dylanZdylan_visceraZcopy_sequence.heapptr)(orig_sp + 3, dylanZdylan_visceraZcopy_sequence.heapptr, 3);
			L_arg2_4 = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
			/* maker for <simple-object-vector> */
			L_instance_3 = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 2, dylanZfalse);
			SLOT(L_instance_3, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_sub_name_2;
			SLOT(L_instance_3, descriptor_t, 8 + 1 * sizeof(descriptor_t)) = L_arg2_4;
			/* format-to-string{<byte-string>} */
			L_new_value = formatZformatZformat_to_string_METH(orig_sp, cdeclZstr_245.heapptr, L_instance_3);
			L_temp_5.heapptr = L_new_value;
			L_temp_5.dataword.l = 0;
			SLOT(L_decl, descriptor_t, 20) = L_temp_5;
			L_temp_6.heapptr = L_new_value;
			L_temp_6.dataword.l = 0;
			L_result0 = L_temp_6;
		    }
		    else {
			/* discriminator for canonical-name */
			L_arg0 = cdeclZc_declarationsZcanonical_name_DISCRIM_FUN(orig_sp, L_referent_type_5);
			orig_sp[0] = L_arg0;
			/* type-for-copy */
			cluster_0_top = GENERAL_ENTRY(dylanZdylan_visceraZtype_for_copy.heapptr)(orig_sp + 1, dylanZdylan_visceraZtype_for_copy.heapptr, 1);
			L_arg1_3 = (orig_sp == cluster_0_top ? obj_False : orig_sp[0].heapptr);
			/* maker for <simple-object-vector> */
			L_instance_4 = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 1, dylanZfalse);
			SLOT(L_instance_4, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_suffix_2;
			/* concatenate-as{<type>, <sequence>} */
			L_new_seq_3 = dylanZdylan_visceraZconcatenate_as_METH(orig_sp, L_arg1_3, L_arg0, L_instance_4);
			/* %instance?{<object>, <class>} */
			L_temp_7 = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_new_seq_3, dylanZdylan_visceraZCLS_string.heapptr);
			if (L_temp_7) {
			    L_temp_8 = TRUE;
			}
			else {
			    L_temp_8 = FALSE;
			}
			if (L_temp_8) {
			    L_temp_9 = L_new_seq_3;
			    SLOT(L_decl, descriptor_t, 20) = L_temp_9;
			    L_result0 = L_temp_9;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_new_seq_3, cdeclZliteral_18.heapptr);
			    not_reached();
			}
		    }
		}
		L_result0_2 = L_result0;
		goto block0;
	    }
	}
      block0:;
	L_result = L_result0_2;
    }
    return L_result;
}


/* Define Method canonical-name{<vector-declaration>} */

extern descriptor_t cdeclZstr_246;	/* "[]" */

/* canonical-name{<vector-declaration>} */
descriptor_t cdeclZc_declarationsZcanonical_name_METH(descriptor_t *orig_sp, heapptr_t A0 /* decl */)
{
    descriptor_t *cluster_0_top;
    heapptr_t L_decl; /* decl */
    descriptor_t L_c_name; /* c-name */
    descriptor_t L_result; /* result */
    heapptr_t L_pointer_equiv; /* pointer-equiv */
    heapptr_t L_referent; /* referent */
    descriptor_t L_arg0; /* arg0 */
    heapptr_t L_arg1; /* arg1 */
    heapptr_t L_instance; /* instance */
    descriptor_t L_new_seq; /* new-seq */
    boolean L_temp; /* temp */
    boolean L_temp_2; /* temp */
    descriptor_t L_temp_3; /* temp */
    descriptor_t L_temp_4;

    L_decl = A0;
    L_c_name = SLOT(L_decl, descriptor_t, 20);
    if ((L_c_name.heapptr != obj_False)) {
	L_result = L_c_name;
    }
    else {
	L_pointer_equiv = SLOT(L_decl, heapptr_t, 48);
	if ((cdeclZc_declarationsZCLS_pointer_declaration.heapptr == SLOT(L_pointer_equiv, heapptr_t, 0))) {
	    L_referent = SLOT(L_pointer_equiv, heapptr_t, 48);
	    /* discriminator for canonical-name */
	    L_arg0 = cdeclZc_declarationsZcanonical_name_DISCRIM_FUN(orig_sp, L_referent);
	    orig_sp[0] = L_arg0;
	    /* type-for-copy */
	    cluster_0_top = GENERAL_ENTRY(dylanZdylan_visceraZtype_for_copy.heapptr)(orig_sp + 1, dylanZdylan_visceraZtype_for_copy.heapptr, 1);
	    L_arg1 = (orig_sp == cluster_0_top ? obj_False : orig_sp[0].heapptr);
	    /* maker for <simple-object-vector> */
	    L_instance = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 1, dylanZfalse);
	    SLOT(L_instance, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = cdeclZstr_246;
	    /* concatenate-as{<type>, <sequence>} */
	    L_new_seq = dylanZdylan_visceraZconcatenate_as_METH(orig_sp, L_arg1, L_arg0, L_instance);
	    /* %instance?{<object>, <class>} */
	    L_temp = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_new_seq, dylanZdylan_visceraZCLS_string.heapptr);
	    if (L_temp) {
		L_temp_2 = TRUE;
	    }
	    else {
		L_temp_2 = FALSE;
	    }
	    if (L_temp_2) {
		L_temp_3 = L_new_seq;
		SLOT(L_decl, descriptor_t, 20) = L_temp_3;
		L_result = L_temp_3;
	    }
	    else {
		/* type-error{<object>, <type>} */
		dylanZdylan_visceraZtype_error_METH(orig_sp, L_new_seq, cdeclZliteral_18.heapptr);
		not_reached();
	    }
	}
	else {
	    L_temp_4.heapptr = L_pointer_equiv;
	    L_temp_4.dataword.l = 0;
	    /* type-error{<object>, <type>} */
	    dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp_4, cdeclZc_declarationsZCLS_pointer_declaration.heapptr);
	    not_reached();
	}
    }
    return L_result;
}


/* Define Method compute-dylan-name{<pointer-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */

/* compute-dylan-name{<pointer-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
descriptor_t cdeclZc_declarationsZcompute_dylan_name_METH_2(descriptor_t *orig_sp, heapptr_t A0 /* decl */, heapptr_t A1 /* mapper */, descriptor_t A2 /* prefix */, descriptor_t A3 /* containers */, boolean A4 /* rd-only */, descriptor_t A5 /* sealing */)
{
    descriptor_t *cluster_0_top;
    heapptr_t L_decl; /* decl */
    heapptr_t L_mapper; /* mapper */
    descriptor_t L_prefix; /* prefix */
    descriptor_t L_containers; /* containers */
    boolean L_rd_only; /* rd-only */
    descriptor_t L_sealing; /* sealing */
    descriptor_t L_simple_name; /* simple-name */
    heapptr_t L_referent; /* referent */
    descriptor_t L_arg1; /* arg1 */
    boolean L_condition; /* condition */
    heapptr_t L_referent_2; /* referent */
    descriptor_t L_result; /* result */
    descriptor_t L_simple_name_2; /* simple-name */
    descriptor_t L_temp; /* temp */
    boolean L_condition_2; /* condition */

    L_decl = A0;
    L_mapper = A1;
    L_prefix = A2;
    L_containers = A3;
    L_rd_only = A4;
    L_sealing = A5;
    L_simple_name = SLOT(L_decl, descriptor_t, 12);
    L_referent = SLOT(L_decl, heapptr_t, 48);
    /* simple-name{<declaration>} */
    L_arg1 = cdeclZc_declarationsZsimple_name_METH(orig_sp, L_referent);
    orig_sp[0] = L_simple_name;
    orig_sp[1] = L_arg1;
    /* = */
    cluster_0_top = GENERAL_ENTRY(dylanZdylan_visceraZEQUAL.heapptr)(orig_sp + 2, dylanZdylan_visceraZEQUAL.heapptr, 2);
    L_condition = (orig_sp == cluster_0_top ? FALSE : (orig_sp[0].heapptr != obj_False));
    if (L_condition) {
	L_referent_2 = SLOT(L_decl, heapptr_t, 48);
	/* discriminator for find-dylan-name */
	L_result = cdeclZc_declarationsZfind_dylan_name_DISCRIM_FUN(orig_sp, L_referent_2, L_mapper, L_prefix, dylanZempty_list, L_rd_only, L_sealing);
    }
    else {
	L_simple_name_2 = SLOT(L_decl, descriptor_t, 12);
	orig_sp[0] = dylanZSYM_type;
	orig_sp[1] = L_prefix;
	orig_sp[2] = L_simple_name_2;
	orig_sp[3] = L_containers;
	cluster_0_top = GENERAL_ENTRY(L_mapper)(orig_sp + 4, L_mapper, 4);
	L_temp = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
	/* %instance?{<object>, <class>} */
	L_condition_2 = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_temp, dylanZdylan_visceraZCLS_string.heapptr);
	if (L_condition_2) {
	    L_result = L_temp;
	}
	else {
	    /* type-error{<object>, <type>} */
	    dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp, dylanZdylan_visceraZCLS_string.heapptr);
	    not_reached();
	}
    }
    return L_result;
}


/* Define Method compute-closure{<deque>, <pointer-declaration>} */

/* compute-closure{<deque>, <pointer-declaration>} */
descriptor_t cdeclZc_declarationsZcompute_closure_METH_11(descriptor_t *orig_sp, descriptor_t A0 /* results */, heapptr_t A1 /* decl */)
{
    descriptor_t L_results; /* results */
    heapptr_t L_decl; /* decl */
    boolean L_declaredQUERY; /* declared? */
    heapptr_t L_referent; /* referent */
    descriptor_t L_temp;
    descriptor_t L_temp_2;

    L_results = A0;
    L_decl = A1;
    L_declaredQUERY = SLOT(L_decl, bool, 44);
    if (L_declaredQUERY) {
    }
    else {
	SLOT(L_decl, bool, 44) = TRUE;
	L_referent = SLOT(L_decl, heapptr_t, 48);
	L_temp.heapptr = L_referent;
	L_temp.dataword.l = 0;
	orig_sp[0] = L_results;
	orig_sp[1] = L_temp;
	/* compute-closure */
	GENERAL_ENTRY(cdeclZc_declarationsZcompute_closure.heapptr)(orig_sp + 2, cdeclZc_declarationsZcompute_closure.heapptr, 2);
	if ((dylanZdylan_visceraZCLS_simple_object_deque.heapptr == SLOT(L_results.heapptr, heapptr_t, 0))) {
	    L_temp_2.heapptr = L_decl;
	    L_temp_2.dataword.l = 0;
	    /* push-last{<simple-object-deque>, <object>} */
	    dylanZdylan_visceraZpush_last_METH(orig_sp, L_results.heapptr, L_temp_2);
	}
	else {
	    /* type-error{<object>, <type>} */
	    dylanZdylan_visceraZtype_error_METH(orig_sp, L_results, dylanZdylan_visceraZCLS_simple_object_deque.heapptr);
	    not_reached();
	}
    }
    return L_results;
}


/* Define Method compute-dylan-name{<vector-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */

/* compute-dylan-name{<vector-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
descriptor_t cdeclZc_declarationsZcompute_dylan_name_METH(descriptor_t *orig_sp, heapptr_t A0 /* decl */, heapptr_t A1 /* mapper */, descriptor_t A2 /* prefix */, descriptor_t A3 /* containers */, boolean A4, descriptor_t A5)
{
    descriptor_t *cluster_0_top;
    heapptr_t L_mapper; /* mapper */
    descriptor_t L_prefix; /* prefix */
    descriptor_t L_containers; /* containers */
    descriptor_t L_simple_name; /* simple-name */
    descriptor_t L_temp; /* temp */
    boolean L_condition; /* condition */

    L_mapper = A1;
    L_prefix = A2;
    L_containers = A3;
    L_simple_name = SLOT(A0, descriptor_t, 12);
    orig_sp[0] = dylanZSYM_type;
    orig_sp[1] = L_prefix;
    orig_sp[2] = L_simple_name;
    orig_sp[3] = L_containers;
    cluster_0_top = GENERAL_ENTRY(L_mapper)(orig_sp + 4, L_mapper, 4);
    L_temp = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
    /* %instance?{<object>, <class>} */
    L_condition = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_temp, dylanZdylan_visceraZCLS_string.heapptr);
    if (L_condition) {
	return L_temp;
    }
    else {
	/* type-error{<object>, <type>} */
	dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp, dylanZdylan_visceraZCLS_string.heapptr);
	not_reached();
    }
}


/* Define Method compute-closure{<deque>, <vector-declaration>} */

/* compute-closure{<deque>, <vector-declaration>} */
descriptor_t cdeclZc_declarationsZcompute_closure_METH_10(descriptor_t *orig_sp, descriptor_t A0 /* results */, heapptr_t A1 /* decl */)
{
    descriptor_t L_results; /* results */
    heapptr_t L_decl; /* decl */
    boolean L_declaredQUERY; /* declared? */
    heapptr_t L_pointer_equiv; /* pointer-equiv */
    descriptor_t L_temp;
    descriptor_t L_temp_2;

    L_results = A0;
    L_decl = A1;
    L_declaredQUERY = SLOT(L_decl, bool, 44);
    if (L_declaredQUERY) {
    }
    else {
	SLOT(L_decl, bool, 44) = TRUE;
	L_pointer_equiv = SLOT(L_decl, heapptr_t, 48);
	L_temp.heapptr = L_pointer_equiv;
	L_temp.dataword.l = 0;
	orig_sp[0] = L_results;
	orig_sp[1] = L_temp;
	/* compute-closure */
	GENERAL_ENTRY(cdeclZc_declarationsZcompute_closure.heapptr)(orig_sp + 2, cdeclZc_declarationsZcompute_closure.heapptr, 2);
	if ((dylanZdylan_visceraZCLS_simple_object_deque.heapptr == SLOT(L_results.heapptr, heapptr_t, 0))) {
	    L_temp_2.heapptr = L_decl;
	    L_temp_2.dataword.l = 0;
	    /* push-last{<simple-object-deque>, <object>} */
	    dylanZdylan_visceraZpush_last_METH(orig_sp, L_results.heapptr, L_temp_2);
	}
	else {
	    /* type-error{<object>, <type>} */
	    dylanZdylan_visceraZtype_error_METH(orig_sp, L_results, dylanZdylan_visceraZCLS_simple_object_deque.heapptr);
	    not_reached();
	}
    }
    return L_results;
}


/* Define Method pointer-to{<type-declaration>, <parse-state>} */

extern descriptor_t cdeclZliteral_3;	/* {<slot-descriptor> for pointers introduced by <parse-state>} */

/* pointer-to{<type-declaration>, <parse-state>} */
heapptr_t cdeclZc_declarationsZpointer_to_METH(descriptor_t *orig_sp, heapptr_t A0 /* target-type */, heapptr_t A1 /* state */)
{
    descriptor_t *cluster_0_top;
    heapptr_t L_target_type; /* target-type */
    heapptr_t L_state; /* state */
    heapptr_t L_pointers; /* pointers */
    descriptor_t L_temp;
    heapptr_t L_keyEQUAL; /* key= */
    heapptr_t L_key_hash; /* key-hash */
    descriptor_t L_temp_2;
    descriptor_t L_temp_3; /* temp */
    descriptor_t L_temp_4; /* temp */
    long L_key_id; /* key-id */
    descriptor_t L_temp_5;
    descriptor_t L_result; /* result */
    heapptr_t L_ptr_type; /* ptr-type */
    descriptor_t L_target; /* target */
    heapptr_t L_PCTobject_class; /* %object-class */
    boolean L_condition; /* condition */
    long L_unique_id; /* unique-id */
    boolean L_temp_6; /* temp */
    descriptor_t L_arg2; /* arg2 */
    heapptr_t L_instance; /* instance */
    descriptor_t L_temp_7;
    descriptor_t L_temp_8;
    heapptr_t L_new_type; /* new-type */
    descriptor_t L_arg4; /* arg4 */
    heapptr_t L_instance_2; /* instance */
    descriptor_t L_temp_9;
    descriptor_t L_temp_10;
    heapptr_t L_new_type_2; /* new-type */
    heapptr_t L_pointers_2; /* pointers */
    descriptor_t L_temp_11;
    descriptor_t L_temp_12;
    descriptor_t L_temp_13;
    descriptor_t L_temp_14;
    descriptor_t L_temp_15;

    L_target_type = A0;
    L_state = A1;
    L_pointers = SLOT(L_state, heapptr_t, 16);
    if ((L_pointers != NULL)) {
	L_temp.heapptr = L_pointers;
	L_temp.dataword.l = 0;
	orig_sp[0] = L_temp;
	/* table-protocol */
	cluster_0_top = GENERAL_ENTRY(dylanZdylan_visceraZtable_protocol.heapptr)(orig_sp + 1, dylanZdylan_visceraZtable_protocol.heapptr, 1);
	L_keyEQUAL = orig_sp[0].heapptr;
	L_key_hash = orig_sp[1].heapptr;
	L_temp_2.heapptr = L_target_type;
	L_temp_2.dataword.l = 0;
	orig_sp[0] = L_temp_2;
	cluster_0_top = GENERAL_ENTRY(L_key_hash)(orig_sp + 1, L_key_hash, 1);
	cluster_0_top = pad_cluster(orig_sp, cluster_0_top, 2);
	L_temp_3 = orig_sp[0];
	L_temp_4 = orig_sp[1];
	if ((dylanZdylan_visceraZCLS_integer.heapptr == SLOT(L_temp_3.heapptr, heapptr_t, 0))) {
	    L_key_id = L_temp_3.dataword.l;
	    if ((obj_False == L_temp_4.heapptr)) {
		L_temp_5.heapptr = L_target_type;
		L_temp_5.dataword.l = 0;
		/* table-element{<table>, <object>, <function>, <integer>, <false>, <object>} */
		L_result = dylanZdylan_visceraZtable_element_METH(orig_sp, L_pointers, L_temp_5, L_keyEQUAL, L_key_id, FALSE, dylanZfalse);
		if ((L_result.heapptr != obj_False)) {
		    if ((cdeclZc_declarationsZCLS_pointer_declaration.heapptr == SLOT(L_result.heapptr, heapptr_t, 0))) {
			L_ptr_type = L_result.heapptr;
		    }
		    else {
			/* type-error{<object>, <type>} */
			dylanZdylan_visceraZtype_error_METH(orig_sp, L_result, cdeclZc_declarationsZCLS_pointer_declaration.heapptr);
			not_reached();
		    }
		}
		else {
		    /* discriminator for true-type */
		    cluster_0_top = cdeclZc_declarationsZtrue_type_DISCRIM_FUN(orig_sp, L_target_type);
		    L_target = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
		    L_PCTobject_class = SLOT(L_target.heapptr, heapptr_t, 0);
		    if ((cdeclZc_declarationsZCLS_pointer_declaration.heapptr == L_PCTobject_class)) {
			L_condition = TRUE;
		    }
		    else {
			L_unique_id = SLOT(L_PCTobject_class, long, 8);
			if ((L_unique_id < 10099)) {
			    L_temp_6 = FALSE;
			}
			else if ((10101 < L_unique_id)) {
			    L_temp_6 = FALSE;
			}
			else {
			    L_temp_6 = TRUE;
			}
			L_condition = L_temp_6;
		    }
		    if (L_condition) {
			/* anonymous-name{} */
			L_arg2 = cdeclZc_declarationsZanonymous_name_METH(orig_sp);
			/* maker for <pointer-declaration> */
			L_instance = cdeclZc_declarationsZCLS_pointer_declaration_MAKER_FUN(orig_sp, L_arg2, dylanZfalse, FALSE, L_target_type);
			L_temp_7.heapptr = L_instance;
			L_temp_7.dataword.l = 0;
			L_temp_8.heapptr = L_target_type;
			L_temp_8.dataword.l = 0;
			orig_sp[0] = L_temp_7;
			orig_sp[1] = dylanZSYM_name;
			orig_sp[2] = L_arg2;
			orig_sp[3] = cdeclZSYM_referent;
			orig_sp[4] = L_temp_8;
			/* initialize */
			GENERAL_ENTRY(dylanZdylan_visceraZinitialize.heapptr)(orig_sp + 5, dylanZdylan_visceraZinitialize.heapptr, 5);
			L_new_type = L_instance;
		    }
		    else {
			/* simple-name{<declaration>} */
			L_arg4 = cdeclZc_declarationsZsimple_name_METH(orig_sp, L_target_type);
			/* maker for <pointer-declaration> */
			L_instance_2 = cdeclZc_declarationsZCLS_pointer_declaration_MAKER_FUN(orig_sp, L_arg4, dylanZfalse, FALSE, L_target_type);
			L_temp_9.heapptr = L_instance_2;
			L_temp_9.dataword.l = 0;
			L_temp_10.heapptr = L_target_type;
			L_temp_10.dataword.l = 0;
			orig_sp[0] = L_temp_9;
			orig_sp[1] = cdeclZSYM_referent;
			orig_sp[2] = L_temp_10;
			orig_sp[3] = dylanZSYM_name;
			orig_sp[4] = L_arg4;
			/* initialize */
			GENERAL_ENTRY(dylanZdylan_visceraZinitialize.heapptr)(orig_sp + 5, dylanZdylan_visceraZinitialize.heapptr, 5);
			L_new_type = L_instance_2;
		    }
		    L_new_type_2 = L_new_type;
		    L_pointers_2 = SLOT(L_state, heapptr_t, 16);
		    if ((L_pointers_2 != NULL)) {
			L_temp_11.heapptr = L_new_type_2;
			L_temp_11.dataword.l = 0;
			L_temp_12.heapptr = L_pointers_2;
			L_temp_12.dataword.l = 0;
			L_temp_13.heapptr = L_target_type;
			L_temp_13.dataword.l = 0;
			orig_sp[0] = L_temp_11;
			orig_sp[1] = L_temp_12;
			orig_sp[2] = L_temp_13;
			/* element-setter */
			GENERAL_ENTRY(dylanZdylan_visceraZelement_setter.heapptr)(orig_sp + 3, dylanZdylan_visceraZelement_setter.heapptr, 3);
			L_ptr_type = L_new_type_2;
		    }
		    else {
			L_temp_14.heapptr = L_state;
			L_temp_14.dataword.l = 0;
			/* uninitialized-slot-error{<slot-descriptor>, <object>} */
			dylanZdylan_visceraZuninitialized_slot_error_METH(orig_sp, cdeclZliteral_3.heapptr, L_temp_14);
			not_reached();
		    }
		}
		return L_ptr_type;
	    }
	    else {
		/* type-error{<object>, <type>} */
		dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp_4, dylanZdylan_visceraZCLS_false.heapptr);
		not_reached();
	    }
	}
	else {
	    /* type-error{<object>, <type>} */
	    dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp_3, dylanZdylan_visceraZCLS_integer.heapptr);
	    not_reached();
	}
    }
    else {
	L_temp_15.heapptr = L_state;
	L_temp_15.dataword.l = 0;
	/* uninitialized-slot-error{<slot-descriptor>, <object>} */
	dylanZdylan_visceraZuninitialized_slot_error_METH(orig_sp, cdeclZliteral_3.heapptr, L_temp_15);
	not_reached();
    }
}


/* {Implicit} Define Generic result */

/* result is result */

/* generic-entry for result{<function-type-declaration>} */
descriptor_t * cdeclZc_declarationsZresult_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    heapptr_t L_result; /* result */
    descriptor_t L_temp;

    L_args = ((void *)(orig_sp - 1));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    orig_sp = L_args;
    L_result = SLOT(L_arg_2, heapptr_t, 40);
    L_temp.heapptr = L_result;
    L_temp.dataword.l = 0;
    orig_sp[0] = L_temp;
    return orig_sp + 1;
}


/* {Implicit} Define Generic result-setter */

/* result-setter is result-setter */

/* generic-entry for result-setter{<result-declaration>, <function-type-declaration>} */
descriptor_t * cdeclZc_declarationsZresult_setter_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    descriptor_t L_arg_3; /* arg */
    heapptr_t L_arg_4; /* arg */
    descriptor_t L_temp;

    L_args = ((void *)(orig_sp - 2));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    L_arg_3 = (((descriptor_t *)L_args)[1]);
    L_arg_4 = L_arg_3.heapptr;
    orig_sp = L_args;
    SLOT(L_arg_4, heapptr_t, 40) = L_arg_2;
    L_temp.heapptr = L_arg_2;
    L_temp.dataword.l = 0;
    orig_sp[0] = L_temp;
    return orig_sp + 1;
}


/* {Implicit} Define Generic parameters */

/* parameters is parameters */

/* generic-entry for parameters{<function-type-declaration>} */
descriptor_t * cdeclZc_declarationsZparameters_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    descriptor_t L_parameters; /* parameters */

    L_args = ((void *)(orig_sp - 1));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    orig_sp = L_args;
    L_parameters = SLOT(L_arg_2, descriptor_t, 44);
    orig_sp[0] = L_parameters;
    return orig_sp + 1;
}


/* {Implicit} Define Generic parameters-setter */

/* parameters-setter is parameters-setter */

/* generic-entry for parameters-setter{<sequence>, <function-type-declaration>} */
descriptor_t * cdeclZc_declarationsZparameters_setter_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    descriptor_t L_arg_2; /* arg */
    descriptor_t L_arg_3; /* arg */
    heapptr_t L_arg_4; /* arg */

    L_args = ((void *)(orig_sp - 2));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg;
    L_arg_3 = (((descriptor_t *)L_args)[1]);
    L_arg_4 = L_arg_3.heapptr;
    orig_sp = L_args;
    SLOT(L_arg_4, descriptor_t, 44) = L_arg_2;
    orig_sp[0] = L_arg_2;
    return orig_sp + 1;
}


/* Define Class <function-type-declaration> */

/* <function-type-declaration> is <function-type-declaration> */

extern descriptor_t cdeclZSYM_params;	/* #"params" */

extern descriptor_t cdeclZSYM_result;	/* #"result" */

/* maker for <function-type-declaration> */
heapptr_t cdeclZc_declarationsZCLS_function_type_declaration_MAKER_FUN(descriptor_t *orig_sp, descriptor_t A0 /* name */, descriptor_t A1 /* d-name-init-value */, boolean A2 /* equated?-init-value */, heapptr_t A3 /* result */, descriptor_t A4 /* params */)
{
    descriptor_t L_name; /* name */
    heapptr_t L_result; /* result */
    descriptor_t L_params; /* params */
    descriptor_t L_d_name_init_value; /* d-name-init-value */
    boolean L_equatedQUERY_init_value; /* equated?-init-value */
    heapptr_t L_instance; /* instance */

    L_name = A0;
    L_result = A3;
    L_params = A4;
    L_d_name_init_value = A1;
    L_equatedQUERY_init_value = A2;
    if ((L_name.heapptr != NULL)) {
	if ((L_result != NULL)) {
	    if ((L_params.heapptr != NULL)) {
		L_instance = allocate(52);
		SLOT(L_instance, heapptr_t, 0) = cdeclZc_declarationsZCLS_function_type_declaration.heapptr;
		SLOT(L_instance, descriptor_t, 4) = L_name;
		SLOT(L_instance, descriptor_t, 12) = dylanZfalse;
		SLOT(L_instance, descriptor_t, 20) = L_d_name_init_value;
		SLOT(L_instance, descriptor_t, 28) = dylanZfalse;
		SLOT(L_instance, bool, 36) = FALSE;
		SLOT(L_instance, bool, 37) = L_equatedQUERY_init_value;
		SLOT(L_instance, heapptr_t, 40) = L_result;
		SLOT(L_instance, descriptor_t, 44) = L_params;
		return L_instance;
	    }
	    else {
		/* missing-required-init-keyword-error{<symbol>, <class>} */
		dylanZdylan_visceraZmissing_required_init_keyword_error_METH(orig_sp, cdeclZSYM_params.heapptr, cdeclZc_declarationsZCLS_function_type_declaration.heapptr);
		not_reached();
	    }
	}
	else {
	    /* missing-required-init-keyword-error{<symbol>, <class>} */
	    dylanZdylan_visceraZmissing_required_init_keyword_error_METH(orig_sp, cdeclZSYM_result.heapptr, cdeclZc_declarationsZCLS_function_type_declaration.heapptr);
	    not_reached();
	}
    }
    else {
	/* missing-required-init-keyword-error{<symbol>, <class>} */
	dylanZdylan_visceraZmissing_required_init_keyword_error_METH(orig_sp, dylanZSYM_name.heapptr, cdeclZc_declarationsZCLS_function_type_declaration.heapptr);
	not_reached();
    }
}

/* general-entry for maker for <function-type-declaration> */
descriptor_t * cdeclZc_declarationsZCLS_function_type_declaration_MAKER_GENERAL(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */)
{
    long L_nargs; /* nargs */
    void * L_args; /* args */
    descriptor_t L_name; /* name */
    descriptor_t L_dylan_name; /* dylan-name */
    boolean L_equated; /* equated */
    heapptr_t L_result; /* result */
    descriptor_t L_params; /* params */
    long L_index; /* index */
    descriptor_t L_temp; /* temp */
    heapptr_t L_key; /* key */
    descriptor_t L_value; /* value */
    boolean L_condition; /* condition */
    boolean L_temp_2; /* temp */
    boolean L_temp_3; /* temp */
    heapptr_t L_PCTobject_class; /* %object-class */
    boolean L_temp_4; /* temp */
    boolean L_condition_2; /* condition */
    heapptr_t L_result0; /* result0 */
    descriptor_t L_temp_5;

    L_nargs = A1;
    if (((L_nargs & 1) == 0)) {
	L_args = ((void *)(orig_sp - L_nargs));
	L_name.heapptr = 0;
	L_name.dataword.l = 0;
	L_dylan_name = dylanZfalse;
	L_equated = FALSE;
	L_result = 0;
	L_params.heapptr = 0;
	L_params.dataword.l = 0;
	L_index = (L_nargs - 2);
	while (1) {
	    if ((L_index < 0)) {
		goto block0;
	    }
	    else {
		L_temp = (((descriptor_t *)L_args)[L_index]);
		if ((dylanZdylan_visceraZCLS_symbol.heapptr == SLOT(L_temp.heapptr, heapptr_t, 0))) {
		    L_key = L_temp.heapptr;
		    L_value = (((descriptor_t *)L_args)[(L_index + 1)]);
		    if ((L_key == dylanZSYM_name.heapptr)) {
			/* %instance?{<object>, <class>} */
			L_condition = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			if (L_condition) {
			    L_name = L_value;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == cdeclZSYM_dylan_name.heapptr)) {
			/* %instance?{<object>, <class>} */
			L_temp_2 = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			if (L_temp_2) {
			    L_temp_3 = TRUE;
			}
			else if ((obj_False == L_value.heapptr)) {
			    L_temp_3 = TRUE;
			}
			else {
			    L_temp_3 = FALSE;
			}
			if (L_temp_3) {
			    L_dylan_name = L_value;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, cdeclZliteral_18.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == cdeclZSYM_equated.heapptr)) {
			L_PCTobject_class = SLOT(L_value.heapptr, heapptr_t, 0);
			if ((dylanZdylan_visceraZCLS_true.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else {
			    L_temp_4 = (dylanZdylan_visceraZCLS_false.heapptr == L_PCTobject_class);
			}
			if (L_temp_4) {
			    L_equated = (L_value.heapptr != obj_False);
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_boolean.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == cdeclZSYM_result.heapptr)) {
			if ((cdeclZc_declarationsZCLS_result_declaration.heapptr == SLOT(L_value.heapptr, heapptr_t, 0))) {
			    L_result = L_value.heapptr;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, cdeclZc_declarationsZCLS_result_declaration.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == cdeclZSYM_params.heapptr)) {
			/* %instance?{<object>, <class>} */
			L_condition_2 = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_sequence.heapptr);
			if (L_condition_2) {
			    L_params = L_value;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_sequence.heapptr);
			    not_reached();
			}
		    }
		    else {
		    }
		    L_index = (L_index - 2);
		}
		else {
		    /* type-error{<object>, <type>} */
		    dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp, dylanZdylan_visceraZCLS_symbol.heapptr);
		    not_reached();
		}
	    }
	}
      block0:;
	orig_sp = L_args;
	/* maker for <function-type-declaration> */
	L_result0 = cdeclZc_declarationsZCLS_function_type_declaration_MAKER_FUN(orig_sp, L_name, L_dylan_name, L_equated, L_result, L_params);
	L_temp_5.heapptr = L_result0;
	L_temp_5.dataword.l = 0;
	orig_sp[0] = L_temp_5;
	return orig_sp + 1;
    }
    else {
	/* odd-number-of-keyword/value-arguments-error{} */
	dylanZdylan_visceraZodd_number_of_keywordSLASHvalue_arguments_error_METH(orig_sp);
	not_reached();
    }
}


/* Define Method canonical-name{<function-type-declaration>} */

/* canonical-name{<function-type-declaration>} */
descriptor_t cdeclZc_declarationsZcanonical_name_METH_6(descriptor_t *orig_sp, heapptr_t A0 /* decl */)
{
    heapptr_t L_decl; /* decl */
    descriptor_t L_c_name; /* c-name */
    descriptor_t L_c_name_2; /* c-name */
    boolean L_condition; /* condition */
    descriptor_t L_result; /* result */
    heapptr_t L_result_2; /* result */
    descriptor_t L_arg1; /* arg1 */
    descriptor_t L_simple_name; /* simple-name */
    heapptr_t L_instance; /* instance */

    L_decl = A0;
    L_c_name = SLOT(L_decl, descriptor_t, 12);
    if ((L_c_name.heapptr != obj_False)) {
	L_c_name_2 = SLOT(L_decl, descriptor_t, 12);
	/* %instance?{<object>, <class>} */
	L_condition = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_c_name_2, dylanZdylan_visceraZCLS_string.heapptr);
	if (L_condition) {
	    L_result = L_c_name_2;
	}
	else {
	    /* type-error{<object>, <type>} */
	    dylanZdylan_visceraZtype_error_METH(orig_sp, dylanZfalse, dylanZdylan_visceraZCLS_string.heapptr);
	    not_reached();
	}
    }
    else {
	L_result_2 = SLOT(L_decl, heapptr_t, 40);
	/* canonical-name{<declaration>} */
	L_arg1 = cdeclZc_declarationsZcanonical_name_METH_5(orig_sp, L_result_2);
	L_simple_name = SLOT(L_decl, descriptor_t, 4);
	/* maker for <simple-object-vector> */
	L_instance = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 2, dylanZfalse);
	SLOT(L_instance, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_arg1;
	SLOT(L_instance, descriptor_t, 8 + 1 * sizeof(descriptor_t)) = L_simple_name;
	/* format-to-string{<byte-string>} */
	L_result.heapptr = formatZformatZformat_to_string_METH(orig_sp, cdeclZstr_245.heapptr, L_instance);
	L_result.dataword.l = 0;
    }
    return L_result;
}


/* Define Method find-dylan-name{<function-type-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */

/* find-dylan-name{<function-type-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
descriptor_t cdeclZc_declarationsZfind_dylan_name_METH_7(descriptor_t *orig_sp, heapptr_t A0 /* decl */, heapptr_t A1 /* mapper */, descriptor_t A2 /* prefix */, descriptor_t A3 /* containers */, boolean A4 /* read-only */, descriptor_t A5 /* sealing */)
{
    descriptor_t *cluster_0_top;
    heapptr_t L_decl; /* decl */
    heapptr_t L_mapper; /* mapper */
    descriptor_t L_prefix; /* prefix */
    boolean L_read_only; /* read-only */
    descriptor_t L_sealing; /* sealing */
    descriptor_t L_containers; /* containers */
    heapptr_t L_result; /* result */
    descriptor_t L_parameters; /* parameters */
    descriptor_t L_initial_state; /* initial-state */
    descriptor_t L_limit; /* limit */
    heapptr_t L_next_state; /* next-state */
    heapptr_t L_finished_stateQUERY; /* finished-state? */
    heapptr_t L_current_element; /* current-element */
    descriptor_t L_state; /* state */
    descriptor_t L_state_2; /* state */
    descriptor_t L_condition; /* condition */
    descriptor_t L_arg0; /* arg0 */
    heapptr_t L_PCTobject_class; /* %object-class */
    boolean L_temp; /* temp */
    descriptor_t L_arg0_2; /* arg0 */
    descriptor_t L_d_name; /* d-name */
    descriptor_t L_result_2; /* result */
    descriptor_t L_new_value; /* new-value */

    L_decl = A0;
    L_mapper = A1;
    L_prefix = A2;
    L_read_only = A4;
    L_sealing = A5;
    L_containers = A3;
    L_result = SLOT(L_decl, heapptr_t, 40);
    /* find-dylan-name{<object-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
    cdeclZc_declarationsZfind_dylan_name_METH_4(orig_sp, L_result, L_mapper, L_prefix, dylanZempty_list, L_read_only, L_sealing);
    L_parameters = SLOT(L_decl, descriptor_t, 44);
    orig_sp[0] = L_parameters;
    /* forward-iteration-protocol */
    cluster_0_top = GENERAL_ENTRY(dylanZdylan_visceraZforward_iteration_protocol.heapptr)(orig_sp + 1, dylanZdylan_visceraZforward_iteration_protocol.heapptr, 1);
    L_initial_state = orig_sp[0];
    L_limit = orig_sp[1];
    L_next_state = orig_sp[2].heapptr;
    L_finished_stateQUERY = orig_sp[3].heapptr;
    L_current_element = orig_sp[5].heapptr;
    L_state = L_initial_state;
    while (1) {
	L_state_2 = L_state;
	orig_sp[0] = L_parameters;
	orig_sp[1] = L_state_2;
	orig_sp[2] = L_limit;
	cluster_0_top = GENERAL_ENTRY(L_finished_stateQUERY)(orig_sp + 3, L_finished_stateQUERY, 3);
	L_condition = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
	if ((L_condition.heapptr != obj_False)) {
	    goto block0;
	}
	else {
	    orig_sp[0] = L_parameters;
	    orig_sp[1] = L_state_2;
	    cluster_0_top = GENERAL_ENTRY(L_current_element)(orig_sp + 2, L_current_element, 2);
	    L_arg0 = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
	    L_PCTobject_class = SLOT(L_arg0.heapptr, heapptr_t, 0);
	    if ((cdeclZc_declarationsZCLS_varargs_declaration.heapptr == L_PCTobject_class)) {
	    }
	    else {
		if ((cdeclZc_declarationsZCLS_arg_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_bitfield_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_incomplete_type_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_result_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_macro_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_function_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_variable_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_enum_slot_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_coalesced_bitfields.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_slot_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_object_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_float_type_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_integer_type_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_predefined_type_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_typedef_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_function_type_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_vector_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_pointer_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_enum_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else if ((cdeclZc_declarationsZCLS_struct_declaration.heapptr == L_PCTobject_class)) {
		    L_temp = TRUE;
		}
		else {
		    L_temp = (cdeclZc_declarationsZCLS_union_declaration.heapptr == L_PCTobject_class);
		}
		if (L_temp) {
		    /* discriminator for find-dylan-name */
		    cdeclZc_declarationsZfind_dylan_name_DISCRIM_FUN(orig_sp, L_arg0.heapptr, L_mapper, L_prefix, dylanZempty_list, L_read_only, L_sealing);
		}
		else {
		    /* type-error{<object>, <type>} */
		    dylanZdylan_visceraZtype_error_METH(orig_sp, L_arg0, cdeclZc_declarationsZCLS_declaration.heapptr);
		    not_reached();
		}
	    }
	    orig_sp[0] = L_parameters;
	    orig_sp[1] = L_state_2;
	    cluster_0_top = GENERAL_ENTRY(L_next_state)(orig_sp + 2, L_next_state, 2);
	    L_arg0_2 = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
	    L_state = L_arg0_2;
	}
    }
  block0:;
    L_d_name = SLOT(L_decl, descriptor_t, 20);
    if ((L_d_name.heapptr != obj_False)) {
	L_result_2 = L_d_name;
    }
    else {
	/* compute-dylan-name{<function-type-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
	L_new_value = cdeclZc_declarationsZcompute_dylan_name_METH_10(orig_sp, L_decl, L_mapper, L_prefix, L_containers, L_read_only, L_sealing);
	SLOT(L_decl, descriptor_t, 20) = L_new_value;
	L_result_2 = L_new_value;
    }
    return L_result_2;
}


/* Define Method compute-dylan-name{<function-type-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */

/* compute-dylan-name{<function-type-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
descriptor_t cdeclZc_declarationsZcompute_dylan_name_METH_10(descriptor_t *orig_sp, heapptr_t A0 /* decl */, heapptr_t A1 /* mapper */, descriptor_t A2 /* prefix */, descriptor_t A3 /* containers */, boolean A4, descriptor_t A5)
{
    descriptor_t *cluster_0_top;
    heapptr_t L_mapper; /* mapper */
    descriptor_t L_prefix; /* prefix */
    descriptor_t L_containers; /* containers */
    descriptor_t L_simple_name; /* simple-name */
    descriptor_t L_temp; /* temp */
    boolean L_condition; /* condition */

    L_mapper = A1;
    L_prefix = A2;
    L_containers = A3;
    L_simple_name = SLOT(A0, descriptor_t, 4);
    orig_sp[0] = dylanZSYM_type;
    orig_sp[1] = L_prefix;
    orig_sp[2] = L_simple_name;
    orig_sp[3] = L_containers;
    cluster_0_top = GENERAL_ENTRY(L_mapper)(orig_sp + 4, L_mapper, 4);
    L_temp = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
    /* %instance?{<object>, <class>} */
    L_condition = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_temp, dylanZdylan_visceraZCLS_string.heapptr);
    if (L_condition) {
	return L_temp;
    }
    else {
	/* type-error{<object>, <type>} */
	dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp, dylanZdylan_visceraZCLS_string.heapptr);
	not_reached();
    }
}


/* Define Method compute-closure{<deque>, <function-type-declaration>} */

extern descriptor_t cdeclZc_declarationsZcompute_closure_METH_3(descriptor_t *orig_sp, descriptor_t A0, heapptr_t A1);	/* compute-closure{<deque>, <result-declaration>} */

/* compute-closure{<deque>, <function-type-declaration>} */
descriptor_t cdeclZc_declarationsZcompute_closure_METH_9(descriptor_t *orig_sp, descriptor_t A0 /* results */, heapptr_t A1 /* decl */)
{
    descriptor_t *cluster_0_top;
    descriptor_t L_results; /* results */
    heapptr_t L_decl; /* decl */
    boolean L_declaredQUERY; /* declared? */
    heapptr_t L_result; /* result */
    descriptor_t L_parameters; /* parameters */
    descriptor_t L_initial_state; /* initial-state */
    descriptor_t L_limit; /* limit */
    heapptr_t L_next_state; /* next-state */
    heapptr_t L_finished_stateQUERY; /* finished-state? */
    heapptr_t L_current_element; /* current-element */
    descriptor_t L_state; /* state */
    descriptor_t L_state_2; /* state */
    descriptor_t L_condition; /* condition */
    descriptor_t L_arg0; /* arg0 */
    descriptor_t L_arg0_2; /* arg0 */
    descriptor_t L_temp;

    L_results = A0;
    L_decl = A1;
    L_declaredQUERY = SLOT(L_decl, bool, 36);
    if (L_declaredQUERY) {
    }
    else {
	SLOT(L_decl, bool, 36) = TRUE;
	L_result = SLOT(L_decl, heapptr_t, 40);
	/* compute-closure{<deque>, <result-declaration>} */
	cdeclZc_declarationsZcompute_closure_METH_3(orig_sp, L_results, L_result);
	L_parameters = SLOT(L_decl, descriptor_t, 44);
	orig_sp[0] = L_parameters;
	/* forward-iteration-protocol */
	cluster_0_top = GENERAL_ENTRY(dylanZdylan_visceraZforward_iteration_protocol.heapptr)(orig_sp + 1, dylanZdylan_visceraZforward_iteration_protocol.heapptr, 1);
	L_initial_state = orig_sp[0];
	L_limit = orig_sp[1];
	L_next_state = orig_sp[2].heapptr;
	L_finished_stateQUERY = orig_sp[3].heapptr;
	L_current_element = orig_sp[5].heapptr;
	L_state = L_initial_state;
	while (1) {
	    L_state_2 = L_state;
	    orig_sp[0] = L_parameters;
	    orig_sp[1] = L_state_2;
	    orig_sp[2] = L_limit;
	    cluster_0_top = GENERAL_ENTRY(L_finished_stateQUERY)(orig_sp + 3, L_finished_stateQUERY, 3);
	    L_condition = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
	    if ((L_condition.heapptr != obj_False)) {
		goto block0;
	    }
	    else {
		orig_sp[0] = L_parameters;
		orig_sp[1] = L_state_2;
		cluster_0_top = GENERAL_ENTRY(L_current_element)(orig_sp + 2, L_current_element, 2);
		L_arg0 = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
		if ((cdeclZc_declarationsZCLS_varargs_declaration.heapptr == SLOT(L_arg0.heapptr, heapptr_t, 0))) {
		}
		else {
		    orig_sp[0] = L_results;
		    orig_sp[1] = L_arg0;
		    /* compute-closure */
		    GENERAL_ENTRY(cdeclZc_declarationsZcompute_closure.heapptr)(orig_sp + 2, cdeclZc_declarationsZcompute_closure.heapptr, 2);
		}
		orig_sp[0] = L_parameters;
		orig_sp[1] = L_state_2;
		cluster_0_top = GENERAL_ENTRY(L_next_state)(orig_sp + 2, L_next_state, 2);
		L_arg0_2 = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
		L_state = L_arg0_2;
	    }
	}
      block0:;
	if ((dylanZdylan_visceraZCLS_simple_object_deque.heapptr == SLOT(L_results.heapptr, heapptr_t, 0))) {
	    L_temp.heapptr = L_decl;
	    L_temp.dataword.l = 0;
	    /* push-last{<simple-object-deque>, <object>} */
	    dylanZdylan_visceraZpush_last_METH(orig_sp, L_results.heapptr, L_temp);
	}
	else {
	    /* type-error{<object>, <type>} */
	    dylanZdylan_visceraZtype_error_METH(orig_sp, L_results, dylanZdylan_visceraZCLS_simple_object_deque.heapptr);
	    not_reached();
	}
    }
    return L_results;
}


/* Define Class <typedef-declaration> */

/* <typedef-declaration> is <typedef-declaration> */

/* maker for <typedef-declaration> */
heapptr_t cdeclZc_declarationsZCLS_typedef_declaration_MAKER_FUN(descriptor_t *orig_sp, descriptor_t A0 /* name */, descriptor_t A1 /* d-name-init-value */, boolean A2 /* equated?-init-value */, heapptr_t A3 /* type */)
{
    descriptor_t L_name; /* name */
    heapptr_t L_type; /* type */
    descriptor_t L_d_name_init_value; /* d-name-init-value */
    boolean L_equatedQUERY_init_value; /* equated?-init-value */
    heapptr_t L_instance; /* instance */

    L_name = A0;
    L_type = A3;
    L_d_name_init_value = A1;
    L_equatedQUERY_init_value = A2;
    if ((L_name.heapptr != NULL)) {
	if ((L_type != NULL)) {
	    L_instance = allocate(44);
	    SLOT(L_instance, heapptr_t, 0) = cdeclZc_declarationsZCLS_typedef_declaration.heapptr;
	    SLOT(L_instance, descriptor_t, 4) = L_name;
	    SLOT(L_instance, descriptor_t, 12) = dylanZfalse;
	    SLOT(L_instance, descriptor_t, 20) = L_d_name_init_value;
	    SLOT(L_instance, descriptor_t, 28) = dylanZfalse;
	    SLOT(L_instance, bool, 36) = FALSE;
	    SLOT(L_instance, bool, 37) = L_equatedQUERY_init_value;
	    SLOT(L_instance, heapptr_t, 40) = L_type;
	    return L_instance;
	}
	else {
	    /* missing-required-init-keyword-error{<symbol>, <class>} */
	    dylanZdylan_visceraZmissing_required_init_keyword_error_METH(orig_sp, dylanZSYM_type.heapptr, cdeclZc_declarationsZCLS_typedef_declaration.heapptr);
	    not_reached();
	}
    }
    else {
	/* missing-required-init-keyword-error{<symbol>, <class>} */
	dylanZdylan_visceraZmissing_required_init_keyword_error_METH(orig_sp, dylanZSYM_name.heapptr, cdeclZc_declarationsZCLS_typedef_declaration.heapptr);
	not_reached();
    }
}

/* general-entry for maker for <typedef-declaration> */
descriptor_t * cdeclZc_declarationsZCLS_typedef_declaration_MAKER_GENERAL(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */)
{
    long L_nargs; /* nargs */
    void * L_args; /* args */
    descriptor_t L_name; /* name */
    descriptor_t L_dylan_name; /* dylan-name */
    boolean L_equated; /* equated */
    heapptr_t L_type; /* type */
    long L_index; /* index */
    descriptor_t L_temp; /* temp */
    heapptr_t L_key; /* key */
    descriptor_t L_value; /* value */
    boolean L_condition; /* condition */
    boolean L_temp_2; /* temp */
    boolean L_temp_3; /* temp */
    heapptr_t L_PCTobject_class; /* %object-class */
    boolean L_temp_4; /* temp */
    heapptr_t L_PCTobject_class_2; /* %object-class */
    boolean L_temp_5; /* temp */
    heapptr_t L_result0; /* result0 */
    descriptor_t L_temp_6;

    L_nargs = A1;
    if (((L_nargs & 1) == 0)) {
	L_args = ((void *)(orig_sp - L_nargs));
	L_name.heapptr = 0;
	L_name.dataword.l = 0;
	L_dylan_name = dylanZfalse;
	L_equated = FALSE;
	L_type = 0;
	L_index = (L_nargs - 2);
	while (1) {
	    if ((L_index < 0)) {
		goto block0;
	    }
	    else {
		L_temp = (((descriptor_t *)L_args)[L_index]);
		if ((dylanZdylan_visceraZCLS_symbol.heapptr == SLOT(L_temp.heapptr, heapptr_t, 0))) {
		    L_key = L_temp.heapptr;
		    L_value = (((descriptor_t *)L_args)[(L_index + 1)]);
		    if ((L_key == dylanZSYM_name.heapptr)) {
			/* %instance?{<object>, <class>} */
			L_condition = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			if (L_condition) {
			    L_name = L_value;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == cdeclZSYM_dylan_name.heapptr)) {
			/* %instance?{<object>, <class>} */
			L_temp_2 = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			if (L_temp_2) {
			    L_temp_3 = TRUE;
			}
			else if ((obj_False == L_value.heapptr)) {
			    L_temp_3 = TRUE;
			}
			else {
			    L_temp_3 = FALSE;
			}
			if (L_temp_3) {
			    L_dylan_name = L_value;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, cdeclZliteral_18.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == cdeclZSYM_equated.heapptr)) {
			L_PCTobject_class = SLOT(L_value.heapptr, heapptr_t, 0);
			if ((dylanZdylan_visceraZCLS_true.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else {
			    L_temp_4 = (dylanZdylan_visceraZCLS_false.heapptr == L_PCTobject_class);
			}
			if (L_temp_4) {
			    L_equated = (L_value.heapptr != obj_False);
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_boolean.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == dylanZSYM_type.heapptr)) {
			L_PCTobject_class_2 = SLOT(L_value.heapptr, heapptr_t, 0);
			if ((cdeclZc_declarationsZCLS_bitfield_declaration.heapptr == L_PCTobject_class_2)) {
			    L_temp_5 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_incomplete_type_declaration.heapptr == L_PCTobject_class_2)) {
			    L_temp_5 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_float_type_declaration.heapptr == L_PCTobject_class_2)) {
			    L_temp_5 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_integer_type_declaration.heapptr == L_PCTobject_class_2)) {
			    L_temp_5 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_predefined_type_declaration.heapptr == L_PCTobject_class_2)) {
			    L_temp_5 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_typedef_declaration.heapptr == L_PCTobject_class_2)) {
			    L_temp_5 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_function_type_declaration.heapptr == L_PCTobject_class_2)) {
			    L_temp_5 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_vector_declaration.heapptr == L_PCTobject_class_2)) {
			    L_temp_5 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_pointer_declaration.heapptr == L_PCTobject_class_2)) {
			    L_temp_5 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_enum_declaration.heapptr == L_PCTobject_class_2)) {
			    L_temp_5 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_struct_declaration.heapptr == L_PCTobject_class_2)) {
			    L_temp_5 = TRUE;
			}
			else {
			    L_temp_5 = (cdeclZc_declarationsZCLS_union_declaration.heapptr == L_PCTobject_class_2);
			}
			if (L_temp_5) {
			    L_type = L_value.heapptr;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, cdeclZc_declarationsZCLS_type_declaration.heapptr);
			    not_reached();
			}
		    }
		    else {
		    }
		    L_index = (L_index - 2);
		}
		else {
		    /* type-error{<object>, <type>} */
		    dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp, dylanZdylan_visceraZCLS_symbol.heapptr);
		    not_reached();
		}
	    }
	}
      block0:;
	orig_sp = L_args;
	/* maker for <typedef-declaration> */
	L_result0 = cdeclZc_declarationsZCLS_typedef_declaration_MAKER_FUN(orig_sp, L_name, L_dylan_name, L_equated, L_type);
	L_temp_6.heapptr = L_result0;
	L_temp_6.dataword.l = 0;
	orig_sp[0] = L_temp_6;
	return orig_sp + 1;
    }
    else {
	/* odd-number-of-keyword/value-arguments-error{} */
	dylanZdylan_visceraZodd_number_of_keywordSLASHvalue_arguments_error_METH(orig_sp);
	not_reached();
    }
}


/* Define Method mapped-name{<typedef-declaration>} */

/* mapped-name{<typedef-declaration>} */
descriptor_t cdeclZc_declarationsZmapped_name_METH_10(descriptor_t *orig_sp, heapptr_t A0 /* decl */, descriptor_t A1 /* explicit-only? */)
{
    heapptr_t L_decl; /* decl */
    descriptor_t L_explicit_onlyQUERY; /* explicit-only? */
    descriptor_t L_map_type; /* map-type */
    descriptor_t L_result; /* result */
    heapptr_t L_type; /* type */
    descriptor_t L_temp; /* temp */

    L_decl = A0;
    L_explicit_onlyQUERY = A1;
    L_map_type = SLOT(L_decl, descriptor_t, 28);
    if ((L_map_type.heapptr != obj_False)) {
	L_result = L_map_type;
    }
    else {
	L_type = SLOT(L_decl, heapptr_t, 40);
	/* map-type{<declaration>} */
	L_temp = cdeclZc_declarationsZmap_type_METH(orig_sp, L_type);
	if ((L_temp.heapptr != obj_False)) {
	    L_result = L_temp;
	}
	else if ((L_explicit_onlyQUERY.heapptr != obj_False)) {
	    L_result = dylanZfalse;
	}
	else {
	    /* type-name{<type-declaration>} */
	    L_result = cdeclZc_declarationsZtype_name_METH(orig_sp, L_decl);
	}
    }
    return L_result;
}


/* Define Method compute-dylan-name{<typedef-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */

/* compute-dylan-name{<typedef-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
descriptor_t cdeclZc_declarationsZcompute_dylan_name_METH_9(descriptor_t *orig_sp, heapptr_t A0 /* decl */, heapptr_t A1 /* mapper */, descriptor_t A2 /* prefix */, descriptor_t A3 /* containers */, boolean A4, descriptor_t A5)
{
    descriptor_t *cluster_0_top;
    heapptr_t L_mapper; /* mapper */
    descriptor_t L_prefix; /* prefix */
    descriptor_t L_containers; /* containers */
    descriptor_t L_simple_name; /* simple-name */
    descriptor_t L_temp; /* temp */
    boolean L_condition; /* condition */

    L_mapper = A1;
    L_prefix = A2;
    L_containers = A3;
    L_simple_name = SLOT(A0, descriptor_t, 4);
    orig_sp[0] = dylanZSYM_type;
    orig_sp[1] = L_prefix;
    orig_sp[2] = L_simple_name;
    orig_sp[3] = L_containers;
    cluster_0_top = GENERAL_ENTRY(L_mapper)(orig_sp + 4, L_mapper, 4);
    L_temp = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
    /* %instance?{<object>, <class>} */
    L_condition = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_temp, dylanZdylan_visceraZCLS_string.heapptr);
    if (L_condition) {
	return L_temp;
    }
    else {
	/* type-error{<object>, <type>} */
	dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp, dylanZdylan_visceraZCLS_string.heapptr);
	not_reached();
    }
}


/* Define Method compute-closure{<deque>, <typedef-declaration>} */

/* compute-closure{<deque>, <typedef-declaration>} */
descriptor_t cdeclZc_declarationsZcompute_closure_METH_8(descriptor_t *orig_sp, descriptor_t A0 /* results */, heapptr_t A1 /* decl */)
{
    descriptor_t L_results; /* results */
    heapptr_t L_decl; /* decl */
    boolean L_declaredQUERY; /* declared? */
    heapptr_t L_type; /* type */
    descriptor_t L_temp;
    descriptor_t L_temp_2;

    L_results = A0;
    L_decl = A1;
    L_declaredQUERY = SLOT(L_decl, bool, 36);
    if (L_declaredQUERY) {
    }
    else {
	SLOT(L_decl, bool, 36) = TRUE;
	L_type = SLOT(L_decl, heapptr_t, 40);
	L_temp.heapptr = L_type;
	L_temp.dataword.l = 0;
	orig_sp[0] = L_results;
	orig_sp[1] = L_temp;
	/* compute-closure */
	GENERAL_ENTRY(cdeclZc_declarationsZcompute_closure.heapptr)(orig_sp + 2, cdeclZc_declarationsZcompute_closure.heapptr, 2);
	if ((dylanZdylan_visceraZCLS_simple_object_deque.heapptr == SLOT(L_results.heapptr, heapptr_t, 0))) {
	    L_temp_2.heapptr = L_decl;
	    L_temp_2.dataword.l = 0;
	    /* push-last{<simple-object-deque>, <object>} */
	    dylanZdylan_visceraZpush_last_METH(orig_sp, L_results.heapptr, L_temp_2);
	}
	else {
	    /* type-error{<object>, <type>} */
	    dylanZdylan_visceraZtype_error_METH(orig_sp, L_results, dylanZdylan_visceraZCLS_simple_object_deque.heapptr);
	    not_reached();
	}
    }
    return L_results;
}


/* Define Method true-type{<typedef-declaration>} */

/* true-type{<typedef-declaration>} */
descriptor_t * cdeclZc_declarationsZtrue_type_METH_2(descriptor_t *orig_sp, heapptr_t A0 /* alias */)
{
    descriptor_t *cluster_0_top;
    heapptr_t L_type; /* type */

    L_type = SLOT(A0, heapptr_t, 40);
    /* discriminator for true-type */
    cluster_0_top = cdeclZc_declarationsZtrue_type_DISCRIM_FUN(orig_sp, L_type);
    return cluster_0_top;
}


/* Define Class <incomplete-type-declaration> */

/* <incomplete-type-declaration> is <incomplete-type-declaration> */

/* maker for <incomplete-type-declaration> */
heapptr_t cdeclZc_declarationsZCLS_incomplete_type_declaration_MAKER_FUN(descriptor_t *orig_sp, descriptor_t A0 /* name */, descriptor_t A1 /* d-name-init-value */, boolean A2 /* equated?-init-value */)
{
    descriptor_t L_name; /* name */
    descriptor_t L_d_name_init_value; /* d-name-init-value */
    boolean L_equatedQUERY_init_value; /* equated?-init-value */
    heapptr_t L_instance; /* instance */

    L_name = A0;
    L_d_name_init_value = A1;
    L_equatedQUERY_init_value = A2;
    if ((L_name.heapptr != NULL)) {
	L_instance = allocate(38);
	SLOT(L_instance, heapptr_t, 0) = cdeclZc_declarationsZCLS_incomplete_type_declaration.heapptr;
	SLOT(L_instance, descriptor_t, 4) = L_name;
	SLOT(L_instance, descriptor_t, 12) = dylanZfalse;
	SLOT(L_instance, descriptor_t, 20) = L_d_name_init_value;
	SLOT(L_instance, descriptor_t, 28) = dylanZfalse;
	SLOT(L_instance, bool, 36) = FALSE;
	SLOT(L_instance, bool, 37) = L_equatedQUERY_init_value;
	return L_instance;
    }
    else {
	/* missing-required-init-keyword-error{<symbol>, <class>} */
	dylanZdylan_visceraZmissing_required_init_keyword_error_METH(orig_sp, dylanZSYM_name.heapptr, cdeclZc_declarationsZCLS_incomplete_type_declaration.heapptr);
	not_reached();
    }
}

/* general-entry for maker for <incomplete-type-declaration> */
descriptor_t * cdeclZc_declarationsZCLS_incomplete_type_declaration_MAKER_GENERAL(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */)
{
    long L_nargs; /* nargs */
    void * L_args; /* args */
    descriptor_t L_name; /* name */
    descriptor_t L_dylan_name; /* dylan-name */
    boolean L_equated; /* equated */
    long L_index; /* index */
    descriptor_t L_temp; /* temp */
    heapptr_t L_key; /* key */
    descriptor_t L_value; /* value */
    boolean L_condition; /* condition */
    boolean L_temp_2; /* temp */
    boolean L_temp_3; /* temp */
    heapptr_t L_PCTobject_class; /* %object-class */
    boolean L_temp_4; /* temp */
    heapptr_t L_result0; /* result0 */
    descriptor_t L_temp_5;

    L_nargs = A1;
    if (((L_nargs & 1) == 0)) {
	L_args = ((void *)(orig_sp - L_nargs));
	L_name.heapptr = 0;
	L_name.dataword.l = 0;
	L_dylan_name = dylanZfalse;
	L_equated = FALSE;
	L_index = (L_nargs - 2);
	while (1) {
	    if ((L_index < 0)) {
		goto block0;
	    }
	    else {
		L_temp = (((descriptor_t *)L_args)[L_index]);
		if ((dylanZdylan_visceraZCLS_symbol.heapptr == SLOT(L_temp.heapptr, heapptr_t, 0))) {
		    L_key = L_temp.heapptr;
		    L_value = (((descriptor_t *)L_args)[(L_index + 1)]);
		    if ((L_key == dylanZSYM_name.heapptr)) {
			/* %instance?{<object>, <class>} */
			L_condition = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			if (L_condition) {
			    L_name = L_value;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == cdeclZSYM_dylan_name.heapptr)) {
			/* %instance?{<object>, <class>} */
			L_temp_2 = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			if (L_temp_2) {
			    L_temp_3 = TRUE;
			}
			else if ((obj_False == L_value.heapptr)) {
			    L_temp_3 = TRUE;
			}
			else {
			    L_temp_3 = FALSE;
			}
			if (L_temp_3) {
			    L_dylan_name = L_value;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, cdeclZliteral_18.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == cdeclZSYM_equated.heapptr)) {
			L_PCTobject_class = SLOT(L_value.heapptr, heapptr_t, 0);
			if ((dylanZdylan_visceraZCLS_true.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else {
			    L_temp_4 = (dylanZdylan_visceraZCLS_false.heapptr == L_PCTobject_class);
			}
			if (L_temp_4) {
			    L_equated = (L_value.heapptr != obj_False);
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_boolean.heapptr);
			    not_reached();
			}
		    }
		    else {
		    }
		    L_index = (L_index - 2);
		}
		else {
		    /* type-error{<object>, <type>} */
		    dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp, dylanZdylan_visceraZCLS_symbol.heapptr);
		    not_reached();
		}
	    }
	}
      block0:;
	orig_sp = L_args;
	/* maker for <incomplete-type-declaration> */
	L_result0 = cdeclZc_declarationsZCLS_incomplete_type_declaration_MAKER_FUN(orig_sp, L_name, L_dylan_name, L_equated);
	L_temp_5.heapptr = L_result0;
	L_temp_5.dataword.l = 0;
	orig_sp[0] = L_temp_5;
	return orig_sp + 1;
    }
    else {
	/* odd-number-of-keyword/value-arguments-error{} */
	dylanZdylan_visceraZodd_number_of_keywordSLASHvalue_arguments_error_METH(orig_sp);
	not_reached();
    }
}


/* {Implicit} Define Generic type-size-slot */

/* type-size-slot is type-size-slot */

/* generic-entry for type-size-slot{<predefined-type-declaration>} */
descriptor_t * cdeclZc_declarationsZtype_size_slot_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    long L_type_size_slot; /* type-size-slot */
    descriptor_t L_temp;

    L_args = ((void *)(orig_sp - 1));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    orig_sp = L_args;
    L_type_size_slot = SLOT(L_arg_2, long, 40);
    L_temp.heapptr = cdeclZliteral_6.heapptr;
    L_temp.dataword.l = L_type_size_slot;
    orig_sp[0] = L_temp;
    return orig_sp + 1;
}


/* {Implicit} Define Generic type-size-slot-setter */

/* type-size-slot-setter is type-size-slot-setter */

/* generic-entry for type-size-slot-setter{<integer>, <predefined-type-declaration>} */
descriptor_t * cdeclZc_declarationsZtype_size_slot_setter_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    long L_arg_2; /* arg */
    descriptor_t L_arg_3; /* arg */
    heapptr_t L_arg_4; /* arg */
    descriptor_t L_temp;

    L_args = ((void *)(orig_sp - 2));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.dataword.l;
    L_arg_3 = (((descriptor_t *)L_args)[1]);
    L_arg_4 = L_arg_3.heapptr;
    orig_sp = L_args;
    SLOT(L_arg_4, long, 40) = L_arg_2;
    L_temp.heapptr = cdeclZliteral_6.heapptr;
    L_temp.dataword.l = L_arg_2;
    orig_sp[0] = L_temp;
    return orig_sp + 1;
}


/* Define Class <predefined-type-declaration> */

/* <predefined-type-declaration> is <predefined-type-declaration> */

/* getter for type-size-slot{<predefined-type-declaration>} */
long cdeclZc_declarationsZtype_size_slot_METH(descriptor_t *orig_sp, heapptr_t A0 /* object */)
{
    long L_result; /* result */

    L_result = SLOT(A0, long, 40);
    return L_result;
}

/* setter for type-size-slot-setter{<integer>, <predefined-type-declaration>} */
long cdeclZc_declarationsZtype_size_slot_setter_METH(descriptor_t *orig_sp, long A0 /* new-value */, heapptr_t A1 /* object */)
{
    long L_new_value; /* new-value */

    L_new_value = A0;
    SLOT(A1, long, 40) = L_new_value;
    return L_new_value;
}

extern descriptor_t dylanZSYM_size;	/* #"size" */

/* maker for <predefined-type-declaration> */
heapptr_t cdeclZc_declarationsZCLS_predefined_type_declaration_MAKER_FUN(descriptor_t *orig_sp, descriptor_t A0 /* name */, descriptor_t A1 /* d-name-init-value */, boolean A2 /* equated?-init-value */, long A3 /* size */, boolean A4 /* size-supplied? */)
{
    descriptor_t L_name; /* name */
    descriptor_t L_d_name_init_value; /* d-name-init-value */
    boolean L_equatedQUERY_init_value; /* equated?-init-value */
    long L_size; /* size */
    boolean L_size_suppliedQUERY; /* size-supplied? */
    heapptr_t L_instance; /* instance */

    L_name = A0;
    L_d_name_init_value = A1;
    L_equatedQUERY_init_value = A2;
    L_size = A3;
    L_size_suppliedQUERY = A4;
    if ((L_name.heapptr != NULL)) {
	if (L_size_suppliedQUERY) {
	    L_instance = allocate(44);
	    SLOT(L_instance, heapptr_t, 0) = cdeclZc_declarationsZCLS_predefined_type_declaration.heapptr;
	    SLOT(L_instance, descriptor_t, 4) = L_name;
	    SLOT(L_instance, descriptor_t, 12) = dylanZfalse;
	    SLOT(L_instance, descriptor_t, 20) = L_d_name_init_value;
	    SLOT(L_instance, descriptor_t, 28) = dylanZfalse;
	    SLOT(L_instance, bool, 36) = FALSE;
	    SLOT(L_instance, bool, 37) = L_equatedQUERY_init_value;
	    SLOT(L_instance, long, 40) = L_size;
	    return L_instance;
	}
	else {
	    /* missing-required-init-keyword-error{<symbol>, <class>} */
	    dylanZdylan_visceraZmissing_required_init_keyword_error_METH(orig_sp, dylanZSYM_size.heapptr, cdeclZc_declarationsZCLS_predefined_type_declaration.heapptr);
	    not_reached();
	}
    }
    else {
	/* missing-required-init-keyword-error{<symbol>, <class>} */
	dylanZdylan_visceraZmissing_required_init_keyword_error_METH(orig_sp, dylanZSYM_name.heapptr, cdeclZc_declarationsZCLS_predefined_type_declaration.heapptr);
	not_reached();
    }
}

/* general-entry for maker for <predefined-type-declaration> */
descriptor_t * cdeclZc_declarationsZCLS_predefined_type_declaration_MAKER_GENERAL(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */)
{
    long L_nargs; /* nargs */
    void * L_args; /* args */
    descriptor_t L_name; /* name */
    descriptor_t L_dylan_name; /* dylan-name */
    boolean L_equated; /* equated */
    long L_size; /* size */
    boolean L_size_suppliedQUERY; /* size-supplied? */
    long L_index; /* index */
    descriptor_t L_temp; /* temp */
    heapptr_t L_key; /* key */
    descriptor_t L_value; /* value */
    boolean L_condition; /* condition */
    boolean L_temp_2; /* temp */
    boolean L_temp_3; /* temp */
    heapptr_t L_PCTobject_class; /* %object-class */
    boolean L_temp_4; /* temp */
    heapptr_t L_result0; /* result0 */
    descriptor_t L_temp_5;

    L_nargs = A1;
    if (((L_nargs & 1) == 0)) {
	L_args = ((void *)(orig_sp - L_nargs));
	L_name.heapptr = 0;
	L_name.dataword.l = 0;
	L_dylan_name = dylanZfalse;
	L_equated = FALSE;
	L_size = 0;
	L_size_suppliedQUERY = FALSE;
	L_index = (L_nargs - 2);
	while (1) {
	    if ((L_index < 0)) {
		goto block0;
	    }
	    else {
		L_temp = (((descriptor_t *)L_args)[L_index]);
		if ((dylanZdylan_visceraZCLS_symbol.heapptr == SLOT(L_temp.heapptr, heapptr_t, 0))) {
		    L_key = L_temp.heapptr;
		    L_value = (((descriptor_t *)L_args)[(L_index + 1)]);
		    if ((L_key == dylanZSYM_name.heapptr)) {
			/* %instance?{<object>, <class>} */
			L_condition = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			if (L_condition) {
			    L_name = L_value;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == cdeclZSYM_dylan_name.heapptr)) {
			/* %instance?{<object>, <class>} */
			L_temp_2 = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			if (L_temp_2) {
			    L_temp_3 = TRUE;
			}
			else if ((obj_False == L_value.heapptr)) {
			    L_temp_3 = TRUE;
			}
			else {
			    L_temp_3 = FALSE;
			}
			if (L_temp_3) {
			    L_dylan_name = L_value;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, cdeclZliteral_18.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == cdeclZSYM_equated.heapptr)) {
			L_PCTobject_class = SLOT(L_value.heapptr, heapptr_t, 0);
			if ((dylanZdylan_visceraZCLS_true.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else {
			    L_temp_4 = (dylanZdylan_visceraZCLS_false.heapptr == L_PCTobject_class);
			}
			if (L_temp_4) {
			    L_equated = (L_value.heapptr != obj_False);
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_boolean.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == dylanZSYM_size.heapptr)) {
			if ((dylanZdylan_visceraZCLS_integer.heapptr == SLOT(L_value.heapptr, heapptr_t, 0))) {
			    L_size = L_value.dataword.l;
			    L_size_suppliedQUERY = TRUE;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_integer.heapptr);
			    not_reached();
			}
		    }
		    else {
		    }
		    L_index = (L_index - 2);
		}
		else {
		    /* type-error{<object>, <type>} */
		    dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp, dylanZdylan_visceraZCLS_symbol.heapptr);
		    not_reached();
		}
	    }
	}
      block0:;
	orig_sp = L_args;
	/* maker for <predefined-type-declaration> */
	L_result0 = cdeclZc_declarationsZCLS_predefined_type_declaration_MAKER_FUN(orig_sp, L_name, L_dylan_name, L_equated, L_size, L_size_suppliedQUERY);
	L_temp_5.heapptr = L_result0;
	L_temp_5.dataword.l = 0;
	orig_sp[0] = L_temp_5;
	return orig_sp + 1;
    }
    else {
	/* odd-number-of-keyword/value-arguments-error{} */
	dylanZdylan_visceraZodd_number_of_keywordSLASHvalue_arguments_error_METH(orig_sp);
	not_reached();
    }
}


/* {Implicit} Define Generic accessor-name */

/* accessor-name is accessor-name */

/* generic-entry for accessor-name{<integer-type-declaration>} */
descriptor_t * cdeclZc_declarationsZaccessor_name_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    descriptor_t L_accessor_name; /* accessor-name */

    L_args = ((void *)(orig_sp - 1));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    orig_sp = L_args;
    L_accessor_name = SLOT(L_arg_2, descriptor_t, 44);
    orig_sp[0] = L_accessor_name;
    return orig_sp + 1;
}


/* {Implicit} Define Generic accessor-name-setter */

/* accessor-name-setter is accessor-name-setter */

/* generic-entry for accessor-name-setter{<string>, <integer-type-declaration>} */
descriptor_t * cdeclZc_declarationsZaccessor_name_setter_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    descriptor_t L_arg_2; /* arg */
    descriptor_t L_arg_3; /* arg */
    heapptr_t L_arg_4; /* arg */

    L_args = ((void *)(orig_sp - 2));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg;
    L_arg_3 = (((descriptor_t *)L_args)[1]);
    L_arg_4 = L_arg_3.heapptr;
    orig_sp = L_args;
    SLOT(L_arg_4, descriptor_t, 44) = L_arg_2;
    orig_sp[0] = L_arg_2;
    return orig_sp + 1;
}


/* Define Class <integer-type-declaration> */

/* <integer-type-declaration> is <integer-type-declaration> */

extern descriptor_t cdeclZSYM_accessor;	/* #"accessor" */

/* maker for <integer-type-declaration> */
heapptr_t cdeclZc_declarationsZCLS_integer_type_declaration_MAKER_FUN(descriptor_t *orig_sp, descriptor_t A0 /* name */, descriptor_t A1 /* d-name-init-value */, boolean A2 /* equated?-init-value */, long A3 /* size */, boolean A4 /* size-supplied? */, descriptor_t A5 /* accessor */)
{
    descriptor_t L_name; /* name */
    descriptor_t L_accessor; /* accessor */
    descriptor_t L_d_name_init_value; /* d-name-init-value */
    boolean L_equatedQUERY_init_value; /* equated?-init-value */
    long L_size; /* size */
    boolean L_size_suppliedQUERY; /* size-supplied? */
    heapptr_t L_instance; /* instance */

    L_name = A0;
    L_accessor = A5;
    L_d_name_init_value = A1;
    L_equatedQUERY_init_value = A2;
    L_size = A3;
    L_size_suppliedQUERY = A4;
    if ((L_name.heapptr != NULL)) {
	if (L_size_suppliedQUERY) {
	    if ((L_accessor.heapptr != NULL)) {
		L_instance = allocate(52);
		SLOT(L_instance, heapptr_t, 0) = cdeclZc_declarationsZCLS_integer_type_declaration.heapptr;
		SLOT(L_instance, descriptor_t, 4) = L_name;
		SLOT(L_instance, descriptor_t, 12) = dylanZfalse;
		SLOT(L_instance, descriptor_t, 20) = L_d_name_init_value;
		SLOT(L_instance, descriptor_t, 28) = dylanZfalse;
		SLOT(L_instance, bool, 36) = FALSE;
		SLOT(L_instance, bool, 37) = L_equatedQUERY_init_value;
		SLOT(L_instance, long, 40) = L_size;
		SLOT(L_instance, descriptor_t, 44) = L_accessor;
		return L_instance;
	    }
	    else {
		/* missing-required-init-keyword-error{<symbol>, <class>} */
		dylanZdylan_visceraZmissing_required_init_keyword_error_METH(orig_sp, cdeclZSYM_accessor.heapptr, cdeclZc_declarationsZCLS_integer_type_declaration.heapptr);
		not_reached();
	    }
	}
	else {
	    /* missing-required-init-keyword-error{<symbol>, <class>} */
	    dylanZdylan_visceraZmissing_required_init_keyword_error_METH(orig_sp, dylanZSYM_size.heapptr, cdeclZc_declarationsZCLS_integer_type_declaration.heapptr);
	    not_reached();
	}
    }
    else {
	/* missing-required-init-keyword-error{<symbol>, <class>} */
	dylanZdylan_visceraZmissing_required_init_keyword_error_METH(orig_sp, dylanZSYM_name.heapptr, cdeclZc_declarationsZCLS_integer_type_declaration.heapptr);
	not_reached();
    }
}

/* general-entry for maker for <integer-type-declaration> */
descriptor_t * cdeclZc_declarationsZCLS_integer_type_declaration_MAKER_GENERAL(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */)
{
    long L_nargs; /* nargs */
    void * L_args; /* args */
    descriptor_t L_name; /* name */
    descriptor_t L_dylan_name; /* dylan-name */
    boolean L_equated; /* equated */
    long L_size; /* size */
    boolean L_size_suppliedQUERY; /* size-supplied? */
    descriptor_t L_accessor; /* accessor */
    long L_index; /* index */
    descriptor_t L_temp; /* temp */
    heapptr_t L_key; /* key */
    descriptor_t L_value; /* value */
    boolean L_condition; /* condition */
    boolean L_temp_2; /* temp */
    boolean L_temp_3; /* temp */
    heapptr_t L_PCTobject_class; /* %object-class */
    boolean L_temp_4; /* temp */
    boolean L_condition_2; /* condition */
    heapptr_t L_result0; /* result0 */
    descriptor_t L_temp_5;

    L_nargs = A1;
    if (((L_nargs & 1) == 0)) {
	L_args = ((void *)(orig_sp - L_nargs));
	L_name.heapptr = 0;
	L_name.dataword.l = 0;
	L_dylan_name = dylanZfalse;
	L_equated = FALSE;
	L_size = 0;
	L_size_suppliedQUERY = FALSE;
	L_accessor.heapptr = 0;
	L_accessor.dataword.l = 0;
	L_index = (L_nargs - 2);
	while (1) {
	    if ((L_index < 0)) {
		goto block0;
	    }
	    else {
		L_temp = (((descriptor_t *)L_args)[L_index]);
		if ((dylanZdylan_visceraZCLS_symbol.heapptr == SLOT(L_temp.heapptr, heapptr_t, 0))) {
		    L_key = L_temp.heapptr;
		    L_value = (((descriptor_t *)L_args)[(L_index + 1)]);
		    if ((L_key == dylanZSYM_name.heapptr)) {
			/* %instance?{<object>, <class>} */
			L_condition = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			if (L_condition) {
			    L_name = L_value;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == cdeclZSYM_dylan_name.heapptr)) {
			/* %instance?{<object>, <class>} */
			L_temp_2 = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			if (L_temp_2) {
			    L_temp_3 = TRUE;
			}
			else if ((obj_False == L_value.heapptr)) {
			    L_temp_3 = TRUE;
			}
			else {
			    L_temp_3 = FALSE;
			}
			if (L_temp_3) {
			    L_dylan_name = L_value;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, cdeclZliteral_18.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == cdeclZSYM_equated.heapptr)) {
			L_PCTobject_class = SLOT(L_value.heapptr, heapptr_t, 0);
			if ((dylanZdylan_visceraZCLS_true.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else {
			    L_temp_4 = (dylanZdylan_visceraZCLS_false.heapptr == L_PCTobject_class);
			}
			if (L_temp_4) {
			    L_equated = (L_value.heapptr != obj_False);
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_boolean.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == dylanZSYM_size.heapptr)) {
			if ((dylanZdylan_visceraZCLS_integer.heapptr == SLOT(L_value.heapptr, heapptr_t, 0))) {
			    L_size = L_value.dataword.l;
			    L_size_suppliedQUERY = TRUE;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_integer.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == cdeclZSYM_accessor.heapptr)) {
			/* %instance?{<object>, <class>} */
			L_condition_2 = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			if (L_condition_2) {
			    L_accessor = L_value;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			    not_reached();
			}
		    }
		    else {
		    }
		    L_index = (L_index - 2);
		}
		else {
		    /* type-error{<object>, <type>} */
		    dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp, dylanZdylan_visceraZCLS_symbol.heapptr);
		    not_reached();
		}
	    }
	}
      block0:;
	orig_sp = L_args;
	/* maker for <integer-type-declaration> */
	L_result0 = cdeclZc_declarationsZCLS_integer_type_declaration_MAKER_FUN(orig_sp, L_name, L_dylan_name, L_equated, L_size, L_size_suppliedQUERY, L_accessor);
	L_temp_5.heapptr = L_result0;
	L_temp_5.dataword.l = 0;
	orig_sp[0] = L_temp_5;
	return orig_sp + 1;
    }
    else {
	/* odd-number-of-keyword/value-arguments-error{} */
	dylanZdylan_visceraZodd_number_of_keywordSLASHvalue_arguments_error_METH(orig_sp);
	not_reached();
    }
}


/* Define Class <float-type-declaration> */

/* <float-type-declaration> is <float-type-declaration> */

/* maker for <float-type-declaration> */
heapptr_t cdeclZc_declarationsZCLS_float_type_declaration_MAKER_FUN(descriptor_t *orig_sp, descriptor_t A0 /* name */, descriptor_t A1 /* d-name-init-value */, boolean A2 /* equated?-init-value */, long A3 /* size */, boolean A4 /* size-supplied? */)
{
    descriptor_t L_name; /* name */
    descriptor_t L_d_name_init_value; /* d-name-init-value */
    boolean L_equatedQUERY_init_value; /* equated?-init-value */
    long L_size; /* size */
    boolean L_size_suppliedQUERY; /* size-supplied? */
    heapptr_t L_instance; /* instance */

    L_name = A0;
    L_d_name_init_value = A1;
    L_equatedQUERY_init_value = A2;
    L_size = A3;
    L_size_suppliedQUERY = A4;
    if ((L_name.heapptr != NULL)) {
	if (L_size_suppliedQUERY) {
	    L_instance = allocate(44);
	    SLOT(L_instance, heapptr_t, 0) = cdeclZc_declarationsZCLS_float_type_declaration.heapptr;
	    SLOT(L_instance, descriptor_t, 4) = L_name;
	    SLOT(L_instance, descriptor_t, 12) = dylanZfalse;
	    SLOT(L_instance, descriptor_t, 20) = L_d_name_init_value;
	    SLOT(L_instance, descriptor_t, 28) = dylanZfalse;
	    SLOT(L_instance, bool, 36) = FALSE;
	    SLOT(L_instance, bool, 37) = L_equatedQUERY_init_value;
	    SLOT(L_instance, long, 40) = L_size;
	    return L_instance;
	}
	else {
	    /* missing-required-init-keyword-error{<symbol>, <class>} */
	    dylanZdylan_visceraZmissing_required_init_keyword_error_METH(orig_sp, dylanZSYM_size.heapptr, cdeclZc_declarationsZCLS_float_type_declaration.heapptr);
	    not_reached();
	}
    }
    else {
	/* missing-required-init-keyword-error{<symbol>, <class>} */
	dylanZdylan_visceraZmissing_required_init_keyword_error_METH(orig_sp, dylanZSYM_name.heapptr, cdeclZc_declarationsZCLS_float_type_declaration.heapptr);
	not_reached();
    }
}

/* general-entry for maker for <float-type-declaration> */
descriptor_t * cdeclZc_declarationsZCLS_float_type_declaration_MAKER_GENERAL(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */)
{
    long L_nargs; /* nargs */
    void * L_args; /* args */
    descriptor_t L_name; /* name */
    descriptor_t L_dylan_name; /* dylan-name */
    boolean L_equated; /* equated */
    long L_size; /* size */
    boolean L_size_suppliedQUERY; /* size-supplied? */
    long L_index; /* index */
    descriptor_t L_temp; /* temp */
    heapptr_t L_key; /* key */
    descriptor_t L_value; /* value */
    boolean L_condition; /* condition */
    boolean L_temp_2; /* temp */
    boolean L_temp_3; /* temp */
    heapptr_t L_PCTobject_class; /* %object-class */
    boolean L_temp_4; /* temp */
    heapptr_t L_result0; /* result0 */
    descriptor_t L_temp_5;

    L_nargs = A1;
    if (((L_nargs & 1) == 0)) {
	L_args = ((void *)(orig_sp - L_nargs));
	L_name.heapptr = 0;
	L_name.dataword.l = 0;
	L_dylan_name = dylanZfalse;
	L_equated = FALSE;
	L_size = 0;
	L_size_suppliedQUERY = FALSE;
	L_index = (L_nargs - 2);
	while (1) {
	    if ((L_index < 0)) {
		goto block0;
	    }
	    else {
		L_temp = (((descriptor_t *)L_args)[L_index]);
		if ((dylanZdylan_visceraZCLS_symbol.heapptr == SLOT(L_temp.heapptr, heapptr_t, 0))) {
		    L_key = L_temp.heapptr;
		    L_value = (((descriptor_t *)L_args)[(L_index + 1)]);
		    if ((L_key == dylanZSYM_name.heapptr)) {
			/* %instance?{<object>, <class>} */
			L_condition = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			if (L_condition) {
			    L_name = L_value;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == cdeclZSYM_dylan_name.heapptr)) {
			/* %instance?{<object>, <class>} */
			L_temp_2 = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			if (L_temp_2) {
			    L_temp_3 = TRUE;
			}
			else if ((obj_False == L_value.heapptr)) {
			    L_temp_3 = TRUE;
			}
			else {
			    L_temp_3 = FALSE;
			}
			if (L_temp_3) {
			    L_dylan_name = L_value;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, cdeclZliteral_18.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == cdeclZSYM_equated.heapptr)) {
			L_PCTobject_class = SLOT(L_value.heapptr, heapptr_t, 0);
			if ((dylanZdylan_visceraZCLS_true.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else {
			    L_temp_4 = (dylanZdylan_visceraZCLS_false.heapptr == L_PCTobject_class);
			}
			if (L_temp_4) {
			    L_equated = (L_value.heapptr != obj_False);
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_boolean.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == dylanZSYM_size.heapptr)) {
			if ((dylanZdylan_visceraZCLS_integer.heapptr == SLOT(L_value.heapptr, heapptr_t, 0))) {
			    L_size = L_value.dataword.l;
			    L_size_suppliedQUERY = TRUE;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_integer.heapptr);
			    not_reached();
			}
		    }
		    else {
		    }
		    L_index = (L_index - 2);
		}
		else {
		    /* type-error{<object>, <type>} */
		    dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp, dylanZdylan_visceraZCLS_symbol.heapptr);
		    not_reached();
		}
	    }
	}
      block0:;
	orig_sp = L_args;
	/* maker for <float-type-declaration> */
	L_result0 = cdeclZc_declarationsZCLS_float_type_declaration_MAKER_FUN(orig_sp, L_name, L_dylan_name, L_equated, L_size, L_size_suppliedQUERY);
	L_temp_5.heapptr = L_result0;
	L_temp_5.dataword.l = 0;
	orig_sp[0] = L_temp_5;
	return orig_sp + 1;
    }
    else {
	/* odd-number-of-keyword/value-arguments-error{} */
	dylanZdylan_visceraZodd_number_of_keywordSLASHvalue_arguments_error_METH(orig_sp);
	not_reached();
    }
}


/* Define Constant unknown-type */

/* unknown-type allocated as cdeclZc_declarationsZunknown_type */

extern descriptor_t cdeclZstr_247;	/* "machine-pointer" */

extern descriptor_t cdeclZc_declarationsZunknown_type;	/* unknown-type */

/* form at {<unknown-source-location> instance} */
void cdeclZUNKNOWN_16(descriptor_t *orig_sp)
{
    heapptr_t L_instance; /* instance */
    descriptor_t L_temp;
    descriptor_t L_temp_2;

    /* maker for <incomplete-type-declaration> */
    L_instance = cdeclZc_declarationsZCLS_incomplete_type_declaration_MAKER_FUN(orig_sp, cdeclZstr_247, dylanZfalse, FALSE);
    L_temp.heapptr = L_instance;
    L_temp.dataword.l = 0;
    orig_sp[0] = L_temp;
    orig_sp[1] = dylanZSYM_name;
    orig_sp[2] = cdeclZstr_247;
    /* initialize */
    GENERAL_ENTRY(dylanZdylan_visceraZinitialize.heapptr)(orig_sp + 3, dylanZdylan_visceraZinitialize.heapptr, 3);
    L_temp_2.heapptr = L_instance;
    L_temp_2.dataword.l = 0;
    cdeclZc_declarationsZunknown_type = L_temp_2;
    return;
}


/* Define Constant unsigned-type */

/* unsigned-type allocated as cdeclZc_declarationsZunsigned_type */

extern descriptor_t cdeclZstr_173;	/* "unknown-type" */

extern descriptor_t cdeclZc_declarationsZunsigned_type;	/* unsigned-type */

/* form at {<unknown-source-location> instance} */
void cdeclZUNKNOWN_17(descriptor_t *orig_sp)
{
    heapptr_t L_instance; /* instance */
    descriptor_t L_temp;
    descriptor_t L_temp_2;

    /* maker for <incomplete-type-declaration> */
    L_instance = cdeclZc_declarationsZCLS_incomplete_type_declaration_MAKER_FUN(orig_sp, cdeclZstr_173, dylanZfalse, FALSE);
    L_temp.heapptr = L_instance;
    L_temp.dataword.l = 0;
    orig_sp[0] = L_temp;
    orig_sp[1] = dylanZSYM_name;
    orig_sp[2] = cdeclZstr_173;
    /* initialize */
    GENERAL_ENTRY(dylanZdylan_visceraZinitialize.heapptr)(orig_sp + 3, dylanZdylan_visceraZinitialize.heapptr, 3);
    L_temp_2.heapptr = L_instance;
    L_temp_2.dataword.l = 0;
    cdeclZc_declarationsZunsigned_type = L_temp_2;
    return;
}


/* Define Constant signed-type */

/* signed-type allocated as cdeclZc_declarationsZsigned_type */

extern descriptor_t cdeclZc_declarationsZsigned_type;	/* signed-type */

/* form at {<unknown-source-location> instance} */
void cdeclZUNKNOWN_18(descriptor_t *orig_sp)
{
    heapptr_t L_instance; /* instance */
    descriptor_t L_temp;
    descriptor_t L_temp_2;

    /* maker for <incomplete-type-declaration> */
    L_instance = cdeclZc_declarationsZCLS_incomplete_type_declaration_MAKER_FUN(orig_sp, cdeclZstr_173, dylanZfalse, FALSE);
    L_temp.heapptr = L_instance;
    L_temp.dataword.l = 0;
    orig_sp[0] = L_temp;
    orig_sp[1] = dylanZSYM_name;
    orig_sp[2] = cdeclZstr_173;
    /* initialize */
    GENERAL_ENTRY(dylanZdylan_visceraZinitialize.heapptr)(orig_sp + 3, dylanZdylan_visceraZinitialize.heapptr, 3);
    L_temp_2.heapptr = L_instance;
    L_temp_2.dataword.l = 0;
    cdeclZc_declarationsZsigned_type = L_temp_2;
    return;
}


/* Define Constant void-type */

/* void-type allocated as cdeclZc_declarationsZvoid_type */

extern descriptor_t cdeclZstr_248;	/* "void-type" */

extern descriptor_t cdeclZstr_249;	/* "<void>" */

extern descriptor_t cdeclZc_declarationsZvoid_type;	/* void-type */

/* form at {<unknown-source-location> instance} */
void cdeclZUNKNOWN_19(descriptor_t *orig_sp)
{
    heapptr_t L_instance; /* instance */
    descriptor_t L_temp;
    descriptor_t L_temp_2;
    descriptor_t L_temp_3;

    /* maker for <predefined-type-declaration> */
    L_instance = cdeclZc_declarationsZCLS_predefined_type_declaration_MAKER_FUN(orig_sp, cdeclZstr_248, cdeclZstr_249, FALSE, 0, TRUE);
    L_temp.heapptr = L_instance;
    L_temp.dataword.l = 0;
    L_temp_2.heapptr = cdeclZliteral_6.heapptr;
    L_temp_2.dataword.l = 0;
    orig_sp[0] = L_temp;
    orig_sp[1] = cdeclZSYM_dylan_name;
    orig_sp[2] = cdeclZstr_249;
    orig_sp[3] = dylanZSYM_name;
    orig_sp[4] = cdeclZstr_248;
    orig_sp[5] = dylanZSYM_size;
    orig_sp[6] = L_temp_2;
    /* initialize */
    GENERAL_ENTRY(dylanZdylan_visceraZinitialize.heapptr)(orig_sp + 7, dylanZdylan_visceraZinitialize.heapptr, 7);
    L_temp_3.heapptr = L_instance;
    L_temp_3.dataword.l = 0;
    cdeclZc_declarationsZvoid_type = L_temp_3;
    return;
}


/* Define Constant int-type */

/* int-type allocated as cdeclZc_declarationsZint_type */

extern descriptor_t cdeclZstr_23;	/* "int" */

extern descriptor_t cdeclZstr_7;	/* "<integer>" */

extern descriptor_t cdeclZstr_250;	/* "signed-long-at" */

extern descriptor_t cdeclZc_declarationsZint_type;	/* int-type */

/* form at {<unknown-source-location> instance} */
void cdeclZUNKNOWN_20(descriptor_t *orig_sp)
{
    heapptr_t L_instance; /* instance */
    descriptor_t L_temp;
    descriptor_t L_temp_2;
    descriptor_t L_temp_3;

    /* maker for <integer-type-declaration> */
    L_instance = cdeclZc_declarationsZCLS_integer_type_declaration_MAKER_FUN(orig_sp, cdeclZstr_23, cdeclZstr_7, FALSE, 4, TRUE, cdeclZstr_250);
    L_temp.heapptr = L_instance;
    L_temp.dataword.l = 0;
    L_temp_2.heapptr = cdeclZliteral_6.heapptr;
    L_temp_2.dataword.l = 4;
    orig_sp[0] = L_temp;
    orig_sp[1] = cdeclZSYM_accessor;
    orig_sp[2] = cdeclZstr_250;
    orig_sp[3] = dylanZSYM_name;
    orig_sp[4] = cdeclZstr_23;
    orig_sp[5] = cdeclZSYM_dylan_name;
    orig_sp[6] = cdeclZstr_7;
    orig_sp[7] = dylanZSYM_size;
    orig_sp[8] = L_temp_2;
    /* initialize */
    GENERAL_ENTRY(dylanZdylan_visceraZinitialize.heapptr)(orig_sp + 9, dylanZdylan_visceraZinitialize.heapptr, 9);
    L_temp_3.heapptr = L_instance;
    L_temp_3.dataword.l = 0;
    cdeclZc_declarationsZint_type = L_temp_3;
    return;
}


/* Define Constant unsigned-int-type */

/* unsigned-int-type allocated as cdeclZc_declarationsZunsigned_int_type */

extern descriptor_t cdeclZstr_251;	/* "unsigned int" */

extern descriptor_t cdeclZstr_252;	/* "unsigned-long-at" */

extern descriptor_t cdeclZc_declarationsZunsigned_int_type;	/* unsigned-int-type */

/* form at {<unknown-source-location> instance} */
void cdeclZUNKNOWN_21(descriptor_t *orig_sp)
{
    heapptr_t L_instance; /* instance */
    descriptor_t L_temp;
    descriptor_t L_temp_2;
    descriptor_t L_temp_3;

    /* maker for <integer-type-declaration> */
    L_instance = cdeclZc_declarationsZCLS_integer_type_declaration_MAKER_FUN(orig_sp, cdeclZstr_251, cdeclZstr_7, FALSE, 4, TRUE, cdeclZstr_252);
    L_temp.heapptr = L_instance;
    L_temp.dataword.l = 0;
    L_temp_2.heapptr = cdeclZliteral_6.heapptr;
    L_temp_2.dataword.l = 4;
    orig_sp[0] = L_temp;
    orig_sp[1] = cdeclZSYM_accessor;
    orig_sp[2] = cdeclZstr_252;
    orig_sp[3] = dylanZSYM_name;
    orig_sp[4] = cdeclZstr_251;
    orig_sp[5] = cdeclZSYM_dylan_name;
    orig_sp[6] = cdeclZstr_7;
    orig_sp[7] = dylanZSYM_size;
    orig_sp[8] = L_temp_2;
    /* initialize */
    GENERAL_ENTRY(dylanZdylan_visceraZinitialize.heapptr)(orig_sp + 9, dylanZdylan_visceraZinitialize.heapptr, 9);
    L_temp_3.heapptr = L_instance;
    L_temp_3.dataword.l = 0;
    cdeclZc_declarationsZunsigned_int_type = L_temp_3;
    return;
}


/* Define Constant short-type */

/* short-type allocated as cdeclZc_declarationsZshort_type */

extern descriptor_t cdeclZstr_21;	/* "short" */

extern descriptor_t cdeclZstr_253;	/* "signed-short-at" */

extern descriptor_t cdeclZc_declarationsZshort_type;	/* short-type */

/* form at {<unknown-source-location> instance} */
void cdeclZUNKNOWN_22(descriptor_t *orig_sp)
{
    heapptr_t L_instance; /* instance */
    descriptor_t L_temp;
    descriptor_t L_temp_2;
    descriptor_t L_temp_3;

    /* maker for <integer-type-declaration> */
    L_instance = cdeclZc_declarationsZCLS_integer_type_declaration_MAKER_FUN(orig_sp, cdeclZstr_21, cdeclZstr_7, FALSE, 2, TRUE, cdeclZstr_253);
    L_temp.heapptr = L_instance;
    L_temp.dataword.l = 0;
    L_temp_2.heapptr = cdeclZliteral_6.heapptr;
    L_temp_2.dataword.l = 2;
    orig_sp[0] = L_temp;
    orig_sp[1] = cdeclZSYM_accessor;
    orig_sp[2] = cdeclZstr_253;
    orig_sp[3] = dylanZSYM_name;
    orig_sp[4] = cdeclZstr_21;
    orig_sp[5] = cdeclZSYM_dylan_name;
    orig_sp[6] = cdeclZstr_7;
    orig_sp[7] = dylanZSYM_size;
    orig_sp[8] = L_temp_2;
    /* initialize */
    GENERAL_ENTRY(dylanZdylan_visceraZinitialize.heapptr)(orig_sp + 9, dylanZdylan_visceraZinitialize.heapptr, 9);
    L_temp_3.heapptr = L_instance;
    L_temp_3.dataword.l = 0;
    cdeclZc_declarationsZshort_type = L_temp_3;
    return;
}


/* Define Constant unsigned-short-type */

/* unsigned-short-type allocated as cdeclZc_declarationsZunsigned_short_type */

extern descriptor_t cdeclZstr_254;	/* "unsigned short" */

extern descriptor_t cdeclZstr_255;	/* "unsigned-short-at" */

extern descriptor_t cdeclZc_declarationsZunsigned_short_type;	/* unsigned-short-type */

/* form at {<unknown-source-location> instance} */
void cdeclZUNKNOWN_23(descriptor_t *orig_sp)
{
    heapptr_t L_instance; /* instance */
    descriptor_t L_temp;
    descriptor_t L_temp_2;
    descriptor_t L_temp_3;

    /* maker for <integer-type-declaration> */
    L_instance = cdeclZc_declarationsZCLS_integer_type_declaration_MAKER_FUN(orig_sp, cdeclZstr_254, cdeclZstr_7, FALSE, 2, TRUE, cdeclZstr_255);
    L_temp.heapptr = L_instance;
    L_temp.dataword.l = 0;
    L_temp_2.heapptr = cdeclZliteral_6.heapptr;
    L_temp_2.dataword.l = 2;
    orig_sp[0] = L_temp;
    orig_sp[1] = cdeclZSYM_accessor;
    orig_sp[2] = cdeclZstr_255;
    orig_sp[3] = dylanZSYM_name;
    orig_sp[4] = cdeclZstr_254;
    orig_sp[5] = cdeclZSYM_dylan_name;
    orig_sp[6] = cdeclZstr_7;
    orig_sp[7] = dylanZSYM_size;
    orig_sp[8] = L_temp_2;
    /* initialize */
    GENERAL_ENTRY(dylanZdylan_visceraZinitialize.heapptr)(orig_sp + 9, dylanZdylan_visceraZinitialize.heapptr, 9);
    L_temp_3.heapptr = L_instance;
    L_temp_3.dataword.l = 0;
    cdeclZc_declarationsZunsigned_short_type = L_temp_3;
    return;
}


/* Define Constant long-type */

/* long-type allocated as cdeclZc_declarationsZlong_type */

extern descriptor_t cdeclZstr_22;	/* "long" */

extern descriptor_t cdeclZc_declarationsZlong_type;	/* long-type */

/* form at {<unknown-source-location> instance} */
void cdeclZUNKNOWN_24(descriptor_t *orig_sp)
{
    heapptr_t L_instance; /* instance */
    descriptor_t L_temp;
    descriptor_t L_temp_2;
    descriptor_t L_temp_3;

    /* maker for <integer-type-declaration> */
    L_instance = cdeclZc_declarationsZCLS_integer_type_declaration_MAKER_FUN(orig_sp, cdeclZstr_22, cdeclZstr_7, FALSE, 4, TRUE, cdeclZstr_250);
    L_temp.heapptr = L_instance;
    L_temp.dataword.l = 0;
    L_temp_2.heapptr = cdeclZliteral_6.heapptr;
    L_temp_2.dataword.l = 4;
    orig_sp[0] = L_temp;
    orig_sp[1] = cdeclZSYM_accessor;
    orig_sp[2] = cdeclZstr_250;
    orig_sp[3] = dylanZSYM_name;
    orig_sp[4] = cdeclZstr_22;
    orig_sp[5] = cdeclZSYM_dylan_name;
    orig_sp[6] = cdeclZstr_7;
    orig_sp[7] = dylanZSYM_size;
    orig_sp[8] = L_temp_2;
    /* initialize */
    GENERAL_ENTRY(dylanZdylan_visceraZinitialize.heapptr)(orig_sp + 9, dylanZdylan_visceraZinitialize.heapptr, 9);
    L_temp_3.heapptr = L_instance;
    L_temp_3.dataword.l = 0;
    cdeclZc_declarationsZlong_type = L_temp_3;
    return;
}


/* Define Constant unsigned-long-type */

/* unsigned-long-type allocated as cdeclZc_declarationsZunsigned_long_type */

extern descriptor_t cdeclZstr_256;	/* "unsigned long" */

extern descriptor_t cdeclZc_declarationsZunsigned_long_type;	/* unsigned-long-type */

/* form at {<unknown-source-location> instance} */
void cdeclZUNKNOWN_25(descriptor_t *orig_sp)
{
    heapptr_t L_instance; /* instance */
    descriptor_t L_temp;
    descriptor_t L_temp_2;
    descriptor_t L_temp_3;

    /* maker for <integer-type-declaration> */
    L_instance = cdeclZc_declarationsZCLS_integer_type_declaration_MAKER_FUN(orig_sp, cdeclZstr_256, cdeclZstr_7, FALSE, 4, TRUE, cdeclZstr_252);
    L_temp.heapptr = L_instance;
    L_temp.dataword.l = 0;
    L_temp_2.heapptr = cdeclZliteral_6.heapptr;
    L_temp_2.dataword.l = 4;
    orig_sp[0] = L_temp;
    orig_sp[1] = cdeclZSYM_accessor;
    orig_sp[2] = cdeclZstr_252;
    orig_sp[3] = dylanZSYM_name;
    orig_sp[4] = cdeclZstr_256;
    orig_sp[5] = cdeclZSYM_dylan_name;
    orig_sp[6] = cdeclZstr_7;
    orig_sp[7] = dylanZSYM_size;
    orig_sp[8] = L_temp_2;
    /* initialize */
    GENERAL_ENTRY(dylanZdylan_visceraZinitialize.heapptr)(orig_sp + 9, dylanZdylan_visceraZinitialize.heapptr, 9);
    L_temp_3.heapptr = L_instance;
    L_temp_3.dataword.l = 0;
    cdeclZc_declarationsZunsigned_long_type = L_temp_3;
    return;
}


/* Define Constant char-type */

/* char-type allocated as cdeclZc_declarationsZchar_type */

extern descriptor_t cdeclZstr_24;	/* "char" */

extern descriptor_t cdeclZstr_257;	/* "signed-byte-at" */

extern descriptor_t cdeclZc_declarationsZchar_type;	/* char-type */

/* form at {<unknown-source-location> instance} */
void cdeclZUNKNOWN_26(descriptor_t *orig_sp)
{
    heapptr_t L_instance; /* instance */
    descriptor_t L_temp;
    descriptor_t L_temp_2;
    descriptor_t L_temp_3;

    /* maker for <integer-type-declaration> */
    L_instance = cdeclZc_declarationsZCLS_integer_type_declaration_MAKER_FUN(orig_sp, cdeclZstr_24, cdeclZstr_7, FALSE, 1, TRUE, cdeclZstr_257);
    L_temp.heapptr = L_instance;
    L_temp.dataword.l = 0;
    L_temp_2.heapptr = cdeclZliteral_6.heapptr;
    L_temp_2.dataword.l = 1;
    orig_sp[0] = L_temp;
    orig_sp[1] = cdeclZSYM_accessor;
    orig_sp[2] = cdeclZstr_257;
    orig_sp[3] = dylanZSYM_name;
    orig_sp[4] = cdeclZstr_24;
    orig_sp[5] = cdeclZSYM_dylan_name;
    orig_sp[6] = cdeclZstr_7;
    orig_sp[7] = dylanZSYM_size;
    orig_sp[8] = L_temp_2;
    /* initialize */
    GENERAL_ENTRY(dylanZdylan_visceraZinitialize.heapptr)(orig_sp + 9, dylanZdylan_visceraZinitialize.heapptr, 9);
    L_temp_3.heapptr = L_instance;
    L_temp_3.dataword.l = 0;
    cdeclZc_declarationsZchar_type = L_temp_3;
    return;
}


/* Define Constant unsigned-char-type */

/* unsigned-char-type allocated as cdeclZc_declarationsZunsigned_char_type */

extern descriptor_t cdeclZstr_258;	/* "unsigned char" */

extern descriptor_t cdeclZstr_259;	/* "unsigned-byte-at" */

extern descriptor_t cdeclZc_declarationsZunsigned_char_type;	/* unsigned-char-type */

/* form at {<unknown-source-location> instance} */
void cdeclZUNKNOWN_27(descriptor_t *orig_sp)
{
    heapptr_t L_instance; /* instance */
    descriptor_t L_temp;
    descriptor_t L_temp_2;
    descriptor_t L_temp_3;

    /* maker for <integer-type-declaration> */
    L_instance = cdeclZc_declarationsZCLS_integer_type_declaration_MAKER_FUN(orig_sp, cdeclZstr_258, cdeclZstr_7, FALSE, 1, TRUE, cdeclZstr_259);
    L_temp.heapptr = L_instance;
    L_temp.dataword.l = 0;
    L_temp_2.heapptr = cdeclZliteral_6.heapptr;
    L_temp_2.dataword.l = 1;
    orig_sp[0] = L_temp;
    orig_sp[1] = cdeclZSYM_accessor;
    orig_sp[2] = cdeclZstr_259;
    orig_sp[3] = dylanZSYM_name;
    orig_sp[4] = cdeclZstr_258;
    orig_sp[5] = cdeclZSYM_dylan_name;
    orig_sp[6] = cdeclZstr_7;
    orig_sp[7] = dylanZSYM_size;
    orig_sp[8] = L_temp_2;
    /* initialize */
    GENERAL_ENTRY(dylanZdylan_visceraZinitialize.heapptr)(orig_sp + 9, dylanZdylan_visceraZinitialize.heapptr, 9);
    L_temp_3.heapptr = L_instance;
    L_temp_3.dataword.l = 0;
    cdeclZc_declarationsZunsigned_char_type = L_temp_3;
    return;
}


/* Define Constant float-type */

/* float-type allocated as cdeclZc_declarationsZfloat_type */

extern descriptor_t cdeclZstr_27;	/* "float" */

extern descriptor_t cdeclZstr_260;	/* "<float>" */

extern descriptor_t cdeclZc_declarationsZfloat_type;	/* float-type */

/* form at {<unknown-source-location> instance} */
void cdeclZUNKNOWN_28(descriptor_t *orig_sp)
{
    heapptr_t L_instance; /* instance */
    descriptor_t L_temp;
    descriptor_t L_temp_2;
    descriptor_t L_temp_3;

    /* maker for <float-type-declaration> */
    L_instance = cdeclZc_declarationsZCLS_float_type_declaration_MAKER_FUN(orig_sp, cdeclZstr_27, cdeclZstr_260, FALSE, 4, TRUE);
    L_temp.heapptr = L_instance;
    L_temp.dataword.l = 0;
    L_temp_2.heapptr = cdeclZliteral_6.heapptr;
    L_temp_2.dataword.l = 4;
    orig_sp[0] = L_temp;
    orig_sp[1] = dylanZSYM_name;
    orig_sp[2] = cdeclZstr_27;
    orig_sp[3] = cdeclZSYM_dylan_name;
    orig_sp[4] = cdeclZstr_260;
    orig_sp[5] = dylanZSYM_size;
    orig_sp[6] = L_temp_2;
    /* initialize */
    GENERAL_ENTRY(dylanZdylan_visceraZinitialize.heapptr)(orig_sp + 7, dylanZdylan_visceraZinitialize.heapptr, 7);
    L_temp_3.heapptr = L_instance;
    L_temp_3.dataword.l = 0;
    cdeclZc_declarationsZfloat_type = L_temp_3;
    return;
}


/* Define Constant double-type */

/* double-type allocated as cdeclZc_declarationsZdouble_type */

extern descriptor_t cdeclZstr_28;	/* "double" */

extern descriptor_t cdeclZc_declarationsZdouble_type;	/* double-type */

/* form at {<unknown-source-location> instance} */
void cdeclZUNKNOWN_29(descriptor_t *orig_sp)
{
    heapptr_t L_instance; /* instance */
    descriptor_t L_temp;
    descriptor_t L_temp_2;
    descriptor_t L_temp_3;

    /* maker for <float-type-declaration> */
    L_instance = cdeclZc_declarationsZCLS_float_type_declaration_MAKER_FUN(orig_sp, cdeclZstr_28, cdeclZstr_260, FALSE, 8, TRUE);
    L_temp.heapptr = L_instance;
    L_temp.dataword.l = 0;
    L_temp_2.heapptr = cdeclZliteral_6.heapptr;
    L_temp_2.dataword.l = 8;
    orig_sp[0] = L_temp;
    orig_sp[1] = dylanZSYM_name;
    orig_sp[2] = cdeclZstr_28;
    orig_sp[3] = cdeclZSYM_dylan_name;
    orig_sp[4] = cdeclZstr_260;
    orig_sp[5] = dylanZSYM_size;
    orig_sp[6] = L_temp_2;
    /* initialize */
    GENERAL_ENTRY(dylanZdylan_visceraZinitialize.heapptr)(orig_sp + 7, dylanZdylan_visceraZinitialize.heapptr, 7);
    L_temp_3.heapptr = L_instance;
    L_temp_3.dataword.l = 0;
    cdeclZc_declarationsZdouble_type = L_temp_3;
    return;
}


/* Define Constant long-double-type */

/* long-double-type allocated as cdeclZc_declarationsZlong_double_type */

extern descriptor_t cdeclZc_declarationsZlong_double_type;	/* long-double-type */

/* form at {<unknown-source-location> instance} */
void cdeclZUNKNOWN_30(descriptor_t *orig_sp)
{
    heapptr_t L_instance; /* instance */
    descriptor_t L_temp;
    descriptor_t L_temp_2;
    descriptor_t L_temp_3;

    /* maker for <float-type-declaration> */
    L_instance = cdeclZc_declarationsZCLS_float_type_declaration_MAKER_FUN(orig_sp, cdeclZstr_28, cdeclZstr_260, FALSE, 16, TRUE);
    L_temp.heapptr = L_instance;
    L_temp.dataword.l = 0;
    L_temp_2.heapptr = cdeclZliteral_6.heapptr;
    L_temp_2.dataword.l = 16;
    orig_sp[0] = L_temp;
    orig_sp[1] = dylanZSYM_name;
    orig_sp[2] = cdeclZstr_28;
    orig_sp[3] = cdeclZSYM_dylan_name;
    orig_sp[4] = cdeclZstr_260;
    orig_sp[5] = dylanZSYM_size;
    orig_sp[6] = L_temp_2;
    /* initialize */
    GENERAL_ENTRY(dylanZdylan_visceraZinitialize.heapptr)(orig_sp + 7, dylanZdylan_visceraZinitialize.heapptr, 7);
    L_temp_3.heapptr = L_instance;
    L_temp_3.dataword.l = 0;
    cdeclZc_declarationsZlong_double_type = L_temp_3;
    return;
}


/* Define Method compute-closure{<deque>, <predefined-type-declaration>} */

/* compute-closure{<deque>, <predefined-type-declaration>} */
descriptor_t cdeclZc_declarationsZcompute_closure_METH_7(descriptor_t *orig_sp, descriptor_t A0 /* results */, heapptr_t A1)
{

    return A0;
}


/* {Implicit} Define Generic bits-in-field */

/* bits-in-field is bits-in-field */

/* generic-entry for bits-in-field{<bitfield-declaration>} */
descriptor_t * cdeclZc_declarationsZbits_in_field_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    long L_bits_in_field; /* bits-in-field */
    descriptor_t L_temp;

    L_args = ((void *)(orig_sp - 1));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    orig_sp = L_args;
    L_bits_in_field = SLOT(L_arg_2, long, 40);
    L_temp.heapptr = cdeclZliteral_6.heapptr;
    L_temp.dataword.l = L_bits_in_field;
    orig_sp[0] = L_temp;
    return orig_sp + 1;
}


/* {Implicit} Define Generic bits-in-field-setter */

/* bits-in-field-setter is bits-in-field-setter */

/* generic-entry for bits-in-field-setter{<integer>, <bitfield-declaration>} */
descriptor_t * cdeclZc_declarationsZbits_in_field_setter_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    long L_arg_2; /* arg */
    descriptor_t L_arg_3; /* arg */
    heapptr_t L_arg_4; /* arg */
    descriptor_t L_temp;

    L_args = ((void *)(orig_sp - 2));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.dataword.l;
    L_arg_3 = (((descriptor_t *)L_args)[1]);
    L_arg_4 = L_arg_3.heapptr;
    orig_sp = L_args;
    SLOT(L_arg_4, long, 40) = L_arg_2;
    L_temp.heapptr = cdeclZliteral_6.heapptr;
    L_temp.dataword.l = L_arg_2;
    orig_sp[0] = L_temp;
    return orig_sp + 1;
}


/* {Implicit} Define Generic base-type */

/* base-type is base-type */

/* generic-entry for base-type{<bitfield-declaration>} */
descriptor_t * cdeclZc_declarationsZbase_type_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    heapptr_t L_base_type; /* base-type */
    descriptor_t L_temp;

    L_args = ((void *)(orig_sp - 1));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    orig_sp = L_args;
    L_base_type = SLOT(L_arg_2, heapptr_t, 44);
    L_temp.heapptr = L_base_type;
    L_temp.dataword.l = 0;
    orig_sp[0] = L_temp;
    return orig_sp + 1;
}


/* {Implicit} Define Generic base-type-setter */

/* base-type-setter is base-type-setter */

/* generic-entry for base-type-setter{<type-declaration>, <bitfield-declaration>} */
descriptor_t * cdeclZc_declarationsZbase_type_setter_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    descriptor_t L_arg_3; /* arg */
    heapptr_t L_arg_4; /* arg */
    descriptor_t L_temp;

    L_args = ((void *)(orig_sp - 2));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    L_arg_3 = (((descriptor_t *)L_args)[1]);
    L_arg_4 = L_arg_3.heapptr;
    orig_sp = L_args;
    SLOT(L_arg_4, heapptr_t, 44) = L_arg_2;
    L_temp.heapptr = L_arg_2;
    L_temp.dataword.l = 0;
    orig_sp[0] = L_temp;
    return orig_sp + 1;
}


/* {Implicit} Define Generic composite-field */

/* composite-field is composite-field */

/* generic-entry for composite-field{<bitfield-declaration>} */
descriptor_t * cdeclZc_declarationsZcomposite_field_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    heapptr_t L_composite_field; /* composite-field */
    descriptor_t L_temp;

    L_args = ((void *)(orig_sp - 1));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    orig_sp = L_args;
    L_composite_field = SLOT(L_arg_2, heapptr_t, 48);
    L_temp.heapptr = L_composite_field;
    L_temp.dataword.l = 0;
    orig_sp[0] = L_temp;
    return orig_sp + 1;
}


/* {Implicit} Define Generic composite-field-setter */

/* composite-field-setter is composite-field-setter */

/* generic-entry for composite-field-setter{type-union(<coalesced-bitfields>, <false>), <bitfield-declaration>} */
descriptor_t * cdeclZc_declarationsZcomposite_field_setter_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    descriptor_t L_arg_3; /* arg */
    heapptr_t L_arg_4; /* arg */
    descriptor_t L_temp;

    L_args = ((void *)(orig_sp - 2));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    L_arg_3 = (((descriptor_t *)L_args)[1]);
    L_arg_4 = L_arg_3.heapptr;
    orig_sp = L_args;
    SLOT(L_arg_4, heapptr_t, 48) = L_arg_2;
    L_temp.heapptr = L_arg_2;
    L_temp.dataword.l = 0;
    orig_sp[0] = L_temp;
    return orig_sp + 1;
}


/* {Implicit} Define Generic start-bit */

/* start-bit is start-bit */

/* generic-entry for start-bit{<bitfield-declaration>} */
descriptor_t * cdeclZc_declarationsZstart_bit_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    long L_start_bit; /* start-bit */
    descriptor_t L_temp;

    L_args = ((void *)(orig_sp - 1));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    orig_sp = L_args;
    L_start_bit = SLOT(L_arg_2, long, 52);
    L_temp.heapptr = cdeclZliteral_6.heapptr;
    L_temp.dataword.l = L_start_bit;
    orig_sp[0] = L_temp;
    return orig_sp + 1;
}


/* {Implicit} Define Generic start-bit-setter */

/* start-bit-setter is start-bit-setter */

/* generic-entry for start-bit-setter{<integer>, <bitfield-declaration>} */
descriptor_t * cdeclZc_declarationsZstart_bit_setter_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    long L_arg_2; /* arg */
    descriptor_t L_arg_3; /* arg */
    heapptr_t L_arg_4; /* arg */
    descriptor_t L_temp;

    L_args = ((void *)(orig_sp - 2));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.dataword.l;
    L_arg_3 = (((descriptor_t *)L_args)[1]);
    L_arg_4 = L_arg_3.heapptr;
    orig_sp = L_args;
    SLOT(L_arg_4, long, 52) = L_arg_2;
    L_temp.heapptr = cdeclZliteral_6.heapptr;
    L_temp.dataword.l = L_arg_2;
    orig_sp[0] = L_temp;
    return orig_sp + 1;
}


/* Define Class <bitfield-declaration> */

/* <bitfield-declaration> is <bitfield-declaration> */

/* getter for bits-in-field{<bitfield-declaration>} */
long cdeclZc_declarationsZbits_in_field_METH(descriptor_t *orig_sp, heapptr_t A0 /* object */)
{
    long L_result; /* result */

    L_result = SLOT(A0, long, 40);
    return L_result;
}

/* setter for bits-in-field-setter{<integer>, <bitfield-declaration>} */
long cdeclZc_declarationsZbits_in_field_setter_METH(descriptor_t *orig_sp, long A0 /* new-value */, heapptr_t A1 /* object */)
{
    long L_new_value; /* new-value */

    L_new_value = A0;
    SLOT(A1, long, 40) = L_new_value;
    return L_new_value;
}

/* getter for start-bit{<bitfield-declaration>} */
long cdeclZc_declarationsZstart_bit_METH(descriptor_t *orig_sp, heapptr_t A0 /* object */)
{
    long L_result; /* result */

    L_result = SLOT(A0, long, 52);
    return L_result;
}

/* setter for start-bit-setter{<integer>, <bitfield-declaration>} */
long cdeclZc_declarationsZstart_bit_setter_METH(descriptor_t *orig_sp, long A0 /* new-value */, heapptr_t A1 /* object */)
{
    long L_new_value; /* new-value */

    L_new_value = A0;
    SLOT(A1, long, 52) = L_new_value;
    return L_new_value;
}

extern descriptor_t dylanZSYM_base;	/* #"base" */

extern descriptor_t cdeclZSYM_bits;	/* #"bits" */

/* maker for <bitfield-declaration> */
heapptr_t cdeclZc_declarationsZCLS_bitfield_declaration_MAKER_FUN(descriptor_t *orig_sp, descriptor_t A0 /* name */, descriptor_t A1 /* d-name-init-value */, boolean A2 /* equated?-init-value */, long A3 /* bits */, boolean A4 /* bits-supplied? */, heapptr_t A5 /* base */)
{
    descriptor_t L_name; /* name */
    heapptr_t L_base; /* base */
    descriptor_t L_d_name_init_value; /* d-name-init-value */
    boolean L_equatedQUERY_init_value; /* equated?-init-value */
    long L_bits; /* bits */
    boolean L_bits_suppliedQUERY; /* bits-supplied? */
    heapptr_t L_instance; /* instance */

    L_name = A0;
    L_base = A5;
    L_d_name_init_value = A1;
    L_equatedQUERY_init_value = A2;
    L_bits = A3;
    L_bits_suppliedQUERY = A4;
    if ((L_name.heapptr != NULL)) {
	if (L_bits_suppliedQUERY) {
	    if ((L_base != NULL)) {
		L_instance = allocate(56);
		SLOT(L_instance, heapptr_t, 0) = cdeclZc_declarationsZCLS_bitfield_declaration.heapptr;
		SLOT(L_instance, descriptor_t, 4) = L_name;
		SLOT(L_instance, descriptor_t, 12) = dylanZfalse;
		SLOT(L_instance, descriptor_t, 20) = L_d_name_init_value;
		SLOT(L_instance, descriptor_t, 28) = dylanZfalse;
		SLOT(L_instance, bool, 36) = FALSE;
		SLOT(L_instance, bool, 37) = L_equatedQUERY_init_value;
		SLOT(L_instance, long, 40) = L_bits;
		SLOT(L_instance, heapptr_t, 44) = L_base;
		SLOT(L_instance, heapptr_t, 48) = obj_False;
		SLOT(L_instance, long, 52) = 0;
		return L_instance;
	    }
	    else {
		/* missing-required-init-keyword-error{<symbol>, <class>} */
		dylanZdylan_visceraZmissing_required_init_keyword_error_METH(orig_sp, dylanZSYM_base.heapptr, cdeclZc_declarationsZCLS_bitfield_declaration.heapptr);
		not_reached();
	    }
	}
	else {
	    /* missing-required-init-keyword-error{<symbol>, <class>} */
	    dylanZdylan_visceraZmissing_required_init_keyword_error_METH(orig_sp, cdeclZSYM_bits.heapptr, cdeclZc_declarationsZCLS_bitfield_declaration.heapptr);
	    not_reached();
	}
    }
    else {
	/* missing-required-init-keyword-error{<symbol>, <class>} */
	dylanZdylan_visceraZmissing_required_init_keyword_error_METH(orig_sp, dylanZSYM_name.heapptr, cdeclZc_declarationsZCLS_bitfield_declaration.heapptr);
	not_reached();
    }
}

/* general-entry for maker for <bitfield-declaration> */
descriptor_t * cdeclZc_declarationsZCLS_bitfield_declaration_MAKER_GENERAL(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */)
{
    long L_nargs; /* nargs */
    void * L_args; /* args */
    descriptor_t L_name; /* name */
    descriptor_t L_dylan_name; /* dylan-name */
    boolean L_equated; /* equated */
    long L_bits; /* bits */
    boolean L_bits_suppliedQUERY; /* bits-supplied? */
    heapptr_t L_base; /* base */
    long L_index; /* index */
    descriptor_t L_temp; /* temp */
    heapptr_t L_key; /* key */
    descriptor_t L_value; /* value */
    boolean L_condition; /* condition */
    boolean L_temp_2; /* temp */
    boolean L_temp_3; /* temp */
    heapptr_t L_PCTobject_class; /* %object-class */
    boolean L_temp_4; /* temp */
    heapptr_t L_PCTobject_class_2; /* %object-class */
    boolean L_temp_5; /* temp */
    heapptr_t L_result0; /* result0 */
    descriptor_t L_temp_6;

    L_nargs = A1;
    if (((L_nargs & 1) == 0)) {
	L_args = ((void *)(orig_sp - L_nargs));
	L_name.heapptr = 0;
	L_name.dataword.l = 0;
	L_dylan_name = dylanZfalse;
	L_equated = FALSE;
	L_bits = 0;
	L_bits_suppliedQUERY = FALSE;
	L_base = 0;
	L_index = (L_nargs - 2);
	while (1) {
	    if ((L_index < 0)) {
		goto block0;
	    }
	    else {
		L_temp = (((descriptor_t *)L_args)[L_index]);
		if ((dylanZdylan_visceraZCLS_symbol.heapptr == SLOT(L_temp.heapptr, heapptr_t, 0))) {
		    L_key = L_temp.heapptr;
		    L_value = (((descriptor_t *)L_args)[(L_index + 1)]);
		    if ((L_key == dylanZSYM_name.heapptr)) {
			/* %instance?{<object>, <class>} */
			L_condition = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			if (L_condition) {
			    L_name = L_value;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == cdeclZSYM_dylan_name.heapptr)) {
			/* %instance?{<object>, <class>} */
			L_temp_2 = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			if (L_temp_2) {
			    L_temp_3 = TRUE;
			}
			else if ((obj_False == L_value.heapptr)) {
			    L_temp_3 = TRUE;
			}
			else {
			    L_temp_3 = FALSE;
			}
			if (L_temp_3) {
			    L_dylan_name = L_value;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, cdeclZliteral_18.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == cdeclZSYM_equated.heapptr)) {
			L_PCTobject_class = SLOT(L_value.heapptr, heapptr_t, 0);
			if ((dylanZdylan_visceraZCLS_true.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else {
			    L_temp_4 = (dylanZdylan_visceraZCLS_false.heapptr == L_PCTobject_class);
			}
			if (L_temp_4) {
			    L_equated = (L_value.heapptr != obj_False);
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_boolean.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == cdeclZSYM_bits.heapptr)) {
			if ((dylanZdylan_visceraZCLS_integer.heapptr == SLOT(L_value.heapptr, heapptr_t, 0))) {
			    L_bits = L_value.dataword.l;
			    L_bits_suppliedQUERY = TRUE;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_integer.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == dylanZSYM_base.heapptr)) {
			L_PCTobject_class_2 = SLOT(L_value.heapptr, heapptr_t, 0);
			if ((cdeclZc_declarationsZCLS_bitfield_declaration.heapptr == L_PCTobject_class_2)) {
			    L_temp_5 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_incomplete_type_declaration.heapptr == L_PCTobject_class_2)) {
			    L_temp_5 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_float_type_declaration.heapptr == L_PCTobject_class_2)) {
			    L_temp_5 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_integer_type_declaration.heapptr == L_PCTobject_class_2)) {
			    L_temp_5 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_predefined_type_declaration.heapptr == L_PCTobject_class_2)) {
			    L_temp_5 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_typedef_declaration.heapptr == L_PCTobject_class_2)) {
			    L_temp_5 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_function_type_declaration.heapptr == L_PCTobject_class_2)) {
			    L_temp_5 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_vector_declaration.heapptr == L_PCTobject_class_2)) {
			    L_temp_5 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_pointer_declaration.heapptr == L_PCTobject_class_2)) {
			    L_temp_5 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_enum_declaration.heapptr == L_PCTobject_class_2)) {
			    L_temp_5 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_struct_declaration.heapptr == L_PCTobject_class_2)) {
			    L_temp_5 = TRUE;
			}
			else {
			    L_temp_5 = (cdeclZc_declarationsZCLS_union_declaration.heapptr == L_PCTobject_class_2);
			}
			if (L_temp_5) {
			    L_base = L_value.heapptr;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, cdeclZc_declarationsZCLS_type_declaration.heapptr);
			    not_reached();
			}
		    }
		    else {
		    }
		    L_index = (L_index - 2);
		}
		else {
		    /* type-error{<object>, <type>} */
		    dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp, dylanZdylan_visceraZCLS_symbol.heapptr);
		    not_reached();
		}
	    }
	}
      block0:;
	orig_sp = L_args;
	/* maker for <bitfield-declaration> */
	L_result0 = cdeclZc_declarationsZCLS_bitfield_declaration_MAKER_FUN(orig_sp, L_name, L_dylan_name, L_equated, L_bits, L_bits_suppliedQUERY, L_base);
	L_temp_6.heapptr = L_result0;
	L_temp_6.dataword.l = 0;
	orig_sp[0] = L_temp_6;
	return orig_sp + 1;
    }
    else {
	/* odd-number-of-keyword/value-arguments-error{} */
	dylanZdylan_visceraZodd_number_of_keywordSLASHvalue_arguments_error_METH(orig_sp);
	not_reached();
    }
}


/* {Implicit} Define Generic bit-size */

/* bit-size is bit-size */

/* generic-entry for bit-size{<coalesced-bitfields>} */
descriptor_t * cdeclZc_declarationsZbit_size_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    long L_bit_size; /* bit-size */
    descriptor_t L_temp;

    L_args = ((void *)(orig_sp - 1));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    orig_sp = L_args;
    L_bit_size = SLOT(L_arg_2, long, 44);
    L_temp.heapptr = cdeclZliteral_6.heapptr;
    L_temp.dataword.l = L_bit_size;
    orig_sp[0] = L_temp;
    return orig_sp + 1;
}


/* {Implicit} Define Generic bit-size-setter */

/* bit-size-setter is bit-size-setter */

/* generic-entry for bit-size-setter{<integer>, <coalesced-bitfields>} */
descriptor_t * cdeclZc_declarationsZbit_size_setter_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    long L_arg_2; /* arg */
    descriptor_t L_arg_3; /* arg */
    heapptr_t L_arg_4; /* arg */
    descriptor_t L_temp;

    L_args = ((void *)(orig_sp - 2));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.dataword.l;
    L_arg_3 = (((descriptor_t *)L_args)[1]);
    L_arg_4 = L_arg_3.heapptr;
    orig_sp = L_args;
    SLOT(L_arg_4, long, 44) = L_arg_2;
    L_temp.heapptr = cdeclZliteral_6.heapptr;
    L_temp.dataword.l = L_arg_2;
    orig_sp[0] = L_temp;
    return orig_sp + 1;
}


/* {Implicit} Define Generic fields */

/* fields is fields */

/* generic-entry for fields{<coalesced-bitfields>} */
descriptor_t * cdeclZc_declarationsZfields_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    descriptor_t L_fields; /* fields */

    L_args = ((void *)(orig_sp - 1));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    orig_sp = L_args;
    L_fields = SLOT(L_arg_2, descriptor_t, 48);
    orig_sp[0] = L_fields;
    return orig_sp + 1;
}


/* {Implicit} Define Generic fields-setter */

/* fields-setter is fields-setter */

/* generic-entry for fields-setter{<stretchy-vector>, <coalesced-bitfields>} */
descriptor_t * cdeclZc_declarationsZfields_setter_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    descriptor_t L_arg_2; /* arg */
    descriptor_t L_arg_3; /* arg */
    heapptr_t L_arg_4; /* arg */

    L_args = ((void *)(orig_sp - 2));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg;
    L_arg_3 = (((descriptor_t *)L_args)[1]);
    L_arg_4 = L_arg_3.heapptr;
    orig_sp = L_args;
    SLOT(L_arg_4, descriptor_t, 48) = L_arg_2;
    orig_sp[0] = L_arg_2;
    return orig_sp + 1;
}


/* Define Class <coalesced-bitfields> */

/* <coalesced-bitfields> is <coalesced-bitfields> */

/* init-function for type */
descriptor_t cdeclZc_declarationsZtype_INIT(descriptor_t *orig_sp)
{
    descriptor_t L_temp;

    if ((L_temp = cdeclZc_declarationsZunsigned_char_type).heapptr == NULL) abort();
    return L_temp;
}

extern heapptr_t dylanZdylan_visceraZCLS_stretchy_object_vector_MAKER_FUN(descriptor_t *orig_sp);	/* maker for <stretchy-object-vector> */

extern void dylanZdylan_visceraZinitialize_METH_4(descriptor_t *orig_sp, heapptr_t A0, long A1, descriptor_t A2);	/* initialize{<stretchy-object-vector>} */

/* init-function for fields */
descriptor_t cdeclZc_declarationsZfields_INIT(descriptor_t *orig_sp)
{
    heapptr_t L_instance; /* instance */
    descriptor_t L_temp;

    /* maker for <stretchy-object-vector> */
    L_instance = dylanZdylan_visceraZCLS_stretchy_object_vector_MAKER_FUN(orig_sp);
    /* initialize{<stretchy-object-vector>} */
    dylanZdylan_visceraZinitialize_METH_4(orig_sp, L_instance, 0, dylanZfalse);
    L_temp.heapptr = L_instance;
    L_temp.dataword.l = 0;
    return L_temp;
}

/* getter for bit-size{<coalesced-bitfields>} */
long cdeclZc_declarationsZbit_size_METH(descriptor_t *orig_sp, heapptr_t A0 /* object */)
{
    long L_result; /* result */

    L_result = SLOT(A0, long, 44);
    return L_result;
}

/* setter for bit-size-setter{<integer>, <coalesced-bitfields>} */
long cdeclZc_declarationsZbit_size_setter_METH(descriptor_t *orig_sp, long A0 /* new-value */, heapptr_t A1 /* object */)
{
    long L_new_value; /* new-value */

    L_new_value = A0;
    SLOT(A1, long, 44) = L_new_value;
    return L_new_value;
}

extern descriptor_t dylanZdylan_visceraZCLS_stretchy_vector;	/* <stretchy-vector> */

/* maker for <coalesced-bitfields> */
heapptr_t cdeclZc_declarationsZCLS_coalesced_bitfields_MAKER_FUN(descriptor_t *orig_sp, descriptor_t A0 /* name */, descriptor_t A1 /* d-name-init-value */)
{
    descriptor_t L_name; /* name */
    descriptor_t L_d_name_init_value; /* d-name-init-value */
    descriptor_t L_temp; /* temp */
    long L_unique_id; /* unique-id */
    boolean L_temp_2; /* temp */
    descriptor_t L_temp_3; /* temp */
    boolean L_condition; /* condition */
    heapptr_t L_type_init_value; /* type-init-value */
    heapptr_t L_instance; /* instance */

    L_name = A0;
    L_d_name_init_value = A1;
    if ((L_name.heapptr != NULL)) {
	/* init-function for type */
	L_temp = cdeclZc_declarationsZtype_INIT(orig_sp);
	L_unique_id = SLOT(SLOT(L_temp.heapptr, heapptr_t, 0), long, 8);
	if ((L_unique_id < 10099)) {
	    L_temp_2 = FALSE;
	}
	else if ((10101 < L_unique_id)) {
	    L_temp_2 = FALSE;
	}
	else {
	    L_temp_2 = TRUE;
	}
	if (L_temp_2) {
	    /* init-function for fields */
	    L_temp_3 = cdeclZc_declarationsZfields_INIT(orig_sp);
	    /* %instance?{<object>, <class>} */
	    L_condition = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_temp_3, dylanZdylan_visceraZCLS_stretchy_vector.heapptr);
	    L_type_init_value = L_temp.heapptr;
	    if (L_condition) {
		L_instance = allocate(56);
		SLOT(L_instance, heapptr_t, 0) = cdeclZc_declarationsZCLS_coalesced_bitfields.heapptr;
		SLOT(L_instance, descriptor_t, 4) = L_name;
		SLOT(L_instance, descriptor_t, 12) = dylanZfalse;
		SLOT(L_instance, descriptor_t, 20) = L_d_name_init_value;
		SLOT(L_instance, descriptor_t, 28) = dylanZfalse;
		SLOT(L_instance, bool, 36) = FALSE;
		SLOT(L_instance, heapptr_t, 40) = L_type_init_value;
		SLOT(L_instance, long, 44) = 0;
		SLOT(L_instance, descriptor_t, 48) = L_temp_3;
		return L_instance;
	    }
	    else {
		/* type-error{<object>, <type>} */
		dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp_3, dylanZdylan_visceraZCLS_stretchy_vector.heapptr);
		not_reached();
	    }
	}
	else {
	    /* type-error{<object>, <type>} */
	    dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp, cdeclZc_declarationsZCLS_predefined_type_declaration.heapptr);
	    not_reached();
	}
    }
    else {
	/* missing-required-init-keyword-error{<symbol>, <class>} */
	dylanZdylan_visceraZmissing_required_init_keyword_error_METH(orig_sp, dylanZSYM_name.heapptr, cdeclZc_declarationsZCLS_coalesced_bitfields.heapptr);
	not_reached();
    }
}

/* general-entry for maker for <coalesced-bitfields> */
descriptor_t * cdeclZc_declarationsZCLS_coalesced_bitfields_MAKER_GENERAL(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */)
{
    long L_nargs; /* nargs */
    void * L_args; /* args */
    descriptor_t L_name; /* name */
    descriptor_t L_dylan_name; /* dylan-name */
    long L_index; /* index */
    descriptor_t L_temp; /* temp */
    heapptr_t L_key; /* key */
    descriptor_t L_value; /* value */
    boolean L_condition; /* condition */
    boolean L_temp_2; /* temp */
    boolean L_temp_3; /* temp */
    heapptr_t L_result0; /* result0 */
    descriptor_t L_temp_4;

    L_nargs = A1;
    if (((L_nargs & 1) == 0)) {
	L_args = ((void *)(orig_sp - L_nargs));
	L_name.heapptr = 0;
	L_name.dataword.l = 0;
	L_dylan_name = dylanZfalse;
	L_index = (L_nargs - 2);
	while (1) {
	    if ((L_index < 0)) {
		goto block0;
	    }
	    else {
		L_temp = (((descriptor_t *)L_args)[L_index]);
		if ((dylanZdylan_visceraZCLS_symbol.heapptr == SLOT(L_temp.heapptr, heapptr_t, 0))) {
		    L_key = L_temp.heapptr;
		    L_value = (((descriptor_t *)L_args)[(L_index + 1)]);
		    if ((L_key == dylanZSYM_name.heapptr)) {
			/* %instance?{<object>, <class>} */
			L_condition = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			if (L_condition) {
			    L_name = L_value;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == cdeclZSYM_dylan_name.heapptr)) {
			/* %instance?{<object>, <class>} */
			L_temp_2 = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			if (L_temp_2) {
			    L_temp_3 = TRUE;
			}
			else if ((obj_False == L_value.heapptr)) {
			    L_temp_3 = TRUE;
			}
			else {
			    L_temp_3 = FALSE;
			}
			if (L_temp_3) {
			    L_dylan_name = L_value;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, cdeclZliteral_18.heapptr);
			    not_reached();
			}
		    }
		    else {
		    }
		    L_index = (L_index - 2);
		}
		else {
		    /* type-error{<object>, <type>} */
		    dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp, dylanZdylan_visceraZCLS_symbol.heapptr);
		    not_reached();
		}
	    }
	}
      block0:;
	orig_sp = L_args;
	/* maker for <coalesced-bitfields> */
	L_result0 = cdeclZc_declarationsZCLS_coalesced_bitfields_MAKER_FUN(orig_sp, L_name, L_dylan_name);
	L_temp_4.heapptr = L_result0;
	L_temp_4.dataword.l = 0;
	orig_sp[0] = L_temp_4;
	return orig_sp + 1;
    }
    else {
	/* odd-number-of-keyword/value-arguments-error{} */
	dylanZdylan_visceraZodd_number_of_keywordSLASHvalue_arguments_error_METH(orig_sp);
	not_reached();
    }
}

/* generic-entry for init-function for type */
descriptor_t * cdeclZc_declarationsZtype_INIT_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    descriptor_t L_result0; /* result0 */

    orig_sp = ((void *)(orig_sp - 0));
    /* init-function for type */
    L_result0 = cdeclZc_declarationsZtype_INIT(orig_sp);
    orig_sp[0] = L_result0;
    return orig_sp + 1;
}

/* general-entry for init-function for type */
descriptor_t * cdeclZc_declarationsZtype_INIT_GENERAL(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */)
{
    long L_nargs; /* nargs */
    descriptor_t L_result0; /* result0 */

    L_nargs = A1;
    if ((L_nargs == 0)) {
	orig_sp = ((void *)(orig_sp - 0));
	/* init-function for type */
	L_result0 = cdeclZc_declarationsZtype_INIT(orig_sp);
	orig_sp[0] = L_result0;
	return orig_sp + 1;
    }
    else {
	/* wrong-number-of-arguments-error{<boolean>, <integer>, <integer>} */
	dylanZdylan_visceraZwrong_number_of_arguments_error_METH(orig_sp, TRUE, 0, L_nargs);
	not_reached();
    }
}

/* generic-entry for init-function for fields */
descriptor_t * cdeclZc_declarationsZfields_INIT_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    descriptor_t L_result0; /* result0 */

    orig_sp = ((void *)(orig_sp - 0));
    /* init-function for fields */
    L_result0 = cdeclZc_declarationsZfields_INIT(orig_sp);
    orig_sp[0] = L_result0;
    return orig_sp + 1;
}

/* general-entry for init-function for fields */
descriptor_t * cdeclZc_declarationsZfields_INIT_GENERAL(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */)
{
    long L_nargs; /* nargs */
    descriptor_t L_result0; /* result0 */

    L_nargs = A1;
    if ((L_nargs == 0)) {
	orig_sp = ((void *)(orig_sp - 0));
	/* init-function for fields */
	L_result0 = cdeclZc_declarationsZfields_INIT(orig_sp);
	orig_sp[0] = L_result0;
	return orig_sp + 1;
    }
    else {
	/* wrong-number-of-arguments-error{<boolean>, <integer>, <integer>} */
	dylanZdylan_visceraZwrong_number_of_arguments_error_METH(orig_sp, TRUE, 0, L_nargs);
	not_reached();
    }
}


/* Define Method compute-closure{<deque>, <bitfield-declaration>} */

/* compute-closure{<deque>, <bitfield-declaration>} */
descriptor_t cdeclZc_declarationsZcompute_closure_METH_6(descriptor_t *orig_sp, descriptor_t A0 /* results */, heapptr_t A1)
{

    return A0;
}


/* {Implicit} Define Generic sealed-string */

/* sealed-string is sealed-string */

/* generic-entry for sealed-string{<value-declaration>} */
descriptor_t * cdeclZc_declarationsZsealed_string_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    descriptor_t L_sealed_string; /* sealed-string */

    L_args = ((void *)(orig_sp - 1));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    orig_sp = L_args;
    L_sealed_string = SLOT(L_arg_2, descriptor_t, 44);
    orig_sp[0] = L_sealed_string;
    return orig_sp + 1;
}


/* {Implicit} Define Generic sealed-string-setter */

/* sealed-string-setter is sealed-string-setter */

/* generic-entry for sealed-string-setter{<string>, <value-declaration>} */
descriptor_t * cdeclZc_declarationsZsealed_string_setter_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    descriptor_t L_arg_2; /* arg */
    descriptor_t L_arg_3; /* arg */
    heapptr_t L_arg_4; /* arg */

    L_args = ((void *)(orig_sp - 2));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg;
    L_arg_3 = (((descriptor_t *)L_args)[1]);
    L_arg_4 = L_arg_3.heapptr;
    orig_sp = L_args;
    SLOT(L_arg_4, descriptor_t, 44) = L_arg_2;
    orig_sp[0] = L_arg_2;
    return orig_sp + 1;
}


/* Define Class <value-declaration> */

/* <value-declaration> is <value-declaration> */


/* Define Class <function-declaration> */

/* <function-declaration> is <function-declaration> */

extern descriptor_t dylanZstr_21;	/* "" */

/* maker for <function-declaration> */
heapptr_t cdeclZc_declarationsZCLS_function_declaration_MAKER_FUN(descriptor_t *orig_sp, descriptor_t A0 /* name */, descriptor_t A1 /* d-name-init-value */, heapptr_t A2 /* type */)
{
    descriptor_t L_name; /* name */
    heapptr_t L_type; /* type */
    descriptor_t L_d_name_init_value; /* d-name-init-value */
    heapptr_t L_instance; /* instance */

    L_name = A0;
    L_type = A2;
    L_d_name_init_value = A1;
    if ((L_name.heapptr != NULL)) {
	if ((L_type != NULL)) {
	    L_instance = allocate(52);
	    SLOT(L_instance, heapptr_t, 0) = cdeclZc_declarationsZCLS_function_declaration.heapptr;
	    SLOT(L_instance, descriptor_t, 4) = L_name;
	    SLOT(L_instance, descriptor_t, 12) = dylanZfalse;
	    SLOT(L_instance, descriptor_t, 20) = L_d_name_init_value;
	    SLOT(L_instance, descriptor_t, 28) = dylanZfalse;
	    SLOT(L_instance, bool, 36) = FALSE;
	    SLOT(L_instance, heapptr_t, 40) = L_type;
	    SLOT(L_instance, descriptor_t, 44) = dylanZstr_21;
	    return L_instance;
	}
	else {
	    /* missing-required-init-keyword-error{<symbol>, <class>} */
	    dylanZdylan_visceraZmissing_required_init_keyword_error_METH(orig_sp, dylanZSYM_type.heapptr, cdeclZc_declarationsZCLS_function_declaration.heapptr);
	    not_reached();
	}
    }
    else {
	/* missing-required-init-keyword-error{<symbol>, <class>} */
	dylanZdylan_visceraZmissing_required_init_keyword_error_METH(orig_sp, dylanZSYM_name.heapptr, cdeclZc_declarationsZCLS_function_declaration.heapptr);
	not_reached();
    }
}

/* general-entry for maker for <function-declaration> */
descriptor_t * cdeclZc_declarationsZCLS_function_declaration_MAKER_GENERAL(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */)
{
    long L_nargs; /* nargs */
    void * L_args; /* args */
    descriptor_t L_name; /* name */
    descriptor_t L_dylan_name; /* dylan-name */
    heapptr_t L_type; /* type */
    long L_index; /* index */
    descriptor_t L_temp; /* temp */
    heapptr_t L_key; /* key */
    descriptor_t L_value; /* value */
    boolean L_condition; /* condition */
    boolean L_temp_2; /* temp */
    boolean L_temp_3; /* temp */
    heapptr_t L_PCTobject_class; /* %object-class */
    boolean L_temp_4; /* temp */
    heapptr_t L_result0; /* result0 */
    descriptor_t L_temp_5;

    L_nargs = A1;
    if (((L_nargs & 1) == 0)) {
	L_args = ((void *)(orig_sp - L_nargs));
	L_name.heapptr = 0;
	L_name.dataword.l = 0;
	L_dylan_name = dylanZfalse;
	L_type = 0;
	L_index = (L_nargs - 2);
	while (1) {
	    if ((L_index < 0)) {
		goto block0;
	    }
	    else {
		L_temp = (((descriptor_t *)L_args)[L_index]);
		if ((dylanZdylan_visceraZCLS_symbol.heapptr == SLOT(L_temp.heapptr, heapptr_t, 0))) {
		    L_key = L_temp.heapptr;
		    L_value = (((descriptor_t *)L_args)[(L_index + 1)]);
		    if ((L_key == dylanZSYM_name.heapptr)) {
			/* %instance?{<object>, <class>} */
			L_condition = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			if (L_condition) {
			    L_name = L_value;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == cdeclZSYM_dylan_name.heapptr)) {
			/* %instance?{<object>, <class>} */
			L_temp_2 = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			if (L_temp_2) {
			    L_temp_3 = TRUE;
			}
			else if ((obj_False == L_value.heapptr)) {
			    L_temp_3 = TRUE;
			}
			else {
			    L_temp_3 = FALSE;
			}
			if (L_temp_3) {
			    L_dylan_name = L_value;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, cdeclZliteral_18.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == dylanZSYM_type.heapptr)) {
			L_PCTobject_class = SLOT(L_value.heapptr, heapptr_t, 0);
			if ((cdeclZc_declarationsZCLS_bitfield_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_incomplete_type_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_float_type_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_integer_type_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_predefined_type_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_typedef_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_function_type_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_vector_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_pointer_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_enum_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_struct_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else {
			    L_temp_4 = (cdeclZc_declarationsZCLS_union_declaration.heapptr == L_PCTobject_class);
			}
			if (L_temp_4) {
			    L_type = L_value.heapptr;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, cdeclZc_declarationsZCLS_type_declaration.heapptr);
			    not_reached();
			}
		    }
		    else {
		    }
		    L_index = (L_index - 2);
		}
		else {
		    /* type-error{<object>, <type>} */
		    dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp, dylanZdylan_visceraZCLS_symbol.heapptr);
		    not_reached();
		}
	    }
	}
      block0:;
	orig_sp = L_args;
	/* maker for <function-declaration> */
	L_result0 = cdeclZc_declarationsZCLS_function_declaration_MAKER_FUN(orig_sp, L_name, L_dylan_name, L_type);
	L_temp_5.heapptr = L_result0;
	L_temp_5.dataword.l = 0;
	orig_sp[0] = L_temp_5;
	return orig_sp + 1;
    }
    else {
	/* odd-number-of-keyword/value-arguments-error{} */
	dylanZdylan_visceraZodd_number_of_keywordSLASHvalue_arguments_error_METH(orig_sp);
	not_reached();
    }
}


/* {Implicit} Define Generic equated */

/* equated is equated */

/* generic-entry for equated{<object-declaration>} */
descriptor_t * cdeclZc_declarationsZequated_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    descriptor_t L_equated; /* equated */

    L_args = ((void *)(orig_sp - 1));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    orig_sp = L_args;
    L_equated = SLOT(L_arg_2, descriptor_t, 52);
    orig_sp[0] = L_equated;
    return orig_sp + 1;
}


/* {Implicit} Define Generic equated-setter */

/* equated-setter is equated-setter */

/* generic-entry for equated-setter{type-union(<string>, <false>), <object-declaration>} */
descriptor_t * cdeclZc_declarationsZequated_setter_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    descriptor_t L_arg_2; /* arg */
    descriptor_t L_arg_3; /* arg */
    heapptr_t L_arg_4; /* arg */

    L_args = ((void *)(orig_sp - 2));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg;
    L_arg_3 = (((descriptor_t *)L_args)[1]);
    L_arg_4 = L_arg_3.heapptr;
    orig_sp = L_args;
    SLOT(L_arg_4, descriptor_t, 52) = L_arg_2;
    orig_sp[0] = L_arg_2;
    return orig_sp + 1;
}


/* {Implicit} Define Generic read-only */

/* read-only is read-only */

/* generic-entry for read-only{<object-declaration>} */
descriptor_t * cdeclZc_declarationsZread_only_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    heapptr_t L_read_only; /* read-only */
    descriptor_t L_temp;

    L_args = ((void *)(orig_sp - 1));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    orig_sp = L_args;
    L_read_only = SLOT(L_arg_2, heapptr_t, 60);
    L_temp.heapptr = L_read_only;
    L_temp.dataword.l = 0;
    orig_sp[0] = L_temp;
    return orig_sp + 1;
}


/* {Implicit} Define Generic read-only-setter */

/* read-only-setter is read-only-setter */

/* generic-entry for read-only-setter{type-union(<boolean>, <empty-list>), <object-declaration>} */
descriptor_t * cdeclZc_declarationsZread_only_setter_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    descriptor_t L_arg_3; /* arg */
    heapptr_t L_arg_4; /* arg */
    descriptor_t L_temp;

    L_args = ((void *)(orig_sp - 2));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    L_arg_3 = (((descriptor_t *)L_args)[1]);
    L_arg_4 = L_arg_3.heapptr;
    orig_sp = L_args;
    SLOT(L_arg_4, heapptr_t, 60) = L_arg_2;
    L_temp.heapptr = L_arg_2;
    L_temp.dataword.l = 0;
    orig_sp[0] = L_temp;
    return orig_sp + 1;
}


/* Define Class <object-declaration> */

/* <object-declaration> is <object-declaration> */

/* maker for <object-declaration> */
heapptr_t cdeclZc_declarationsZCLS_object_declaration_MAKER_FUN(descriptor_t *orig_sp, descriptor_t A0 /* name */, descriptor_t A1 /* d-name-init-value */, heapptr_t A2 /* type */)
{
    descriptor_t L_name; /* name */
    heapptr_t L_type; /* type */
    descriptor_t L_d_name_init_value; /* d-name-init-value */
    heapptr_t L_instance; /* instance */

    L_name = A0;
    L_type = A2;
    L_d_name_init_value = A1;
    if ((L_name.heapptr != NULL)) {
	if ((L_type != NULL)) {
	    L_instance = allocate(64);
	    SLOT(L_instance, heapptr_t, 0) = cdeclZc_declarationsZCLS_object_declaration.heapptr;
	    SLOT(L_instance, descriptor_t, 4) = L_name;
	    SLOT(L_instance, descriptor_t, 12) = dylanZfalse;
	    SLOT(L_instance, descriptor_t, 20) = L_d_name_init_value;
	    SLOT(L_instance, descriptor_t, 28) = dylanZfalse;
	    SLOT(L_instance, bool, 36) = FALSE;
	    SLOT(L_instance, heapptr_t, 40) = L_type;
	    SLOT(L_instance, descriptor_t, 44) = dylanZstr_21;
	    SLOT(L_instance, descriptor_t, 52) = dylanZfalse;
	    SLOT(L_instance, heapptr_t, 60) = dylanZempty_list.heapptr;
	    return L_instance;
	}
	else {
	    /* missing-required-init-keyword-error{<symbol>, <class>} */
	    dylanZdylan_visceraZmissing_required_init_keyword_error_METH(orig_sp, dylanZSYM_type.heapptr, cdeclZc_declarationsZCLS_object_declaration.heapptr);
	    not_reached();
	}
    }
    else {
	/* missing-required-init-keyword-error{<symbol>, <class>} */
	dylanZdylan_visceraZmissing_required_init_keyword_error_METH(orig_sp, dylanZSYM_name.heapptr, cdeclZc_declarationsZCLS_object_declaration.heapptr);
	not_reached();
    }
}

/* general-entry for maker for <object-declaration> */
descriptor_t * cdeclZc_declarationsZCLS_object_declaration_MAKER_GENERAL(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */)
{
    long L_nargs; /* nargs */
    void * L_args; /* args */
    descriptor_t L_name; /* name */
    descriptor_t L_dylan_name; /* dylan-name */
    heapptr_t L_type; /* type */
    long L_index; /* index */
    descriptor_t L_temp; /* temp */
    heapptr_t L_key; /* key */
    descriptor_t L_value; /* value */
    boolean L_condition; /* condition */
    boolean L_temp_2; /* temp */
    boolean L_temp_3; /* temp */
    heapptr_t L_PCTobject_class; /* %object-class */
    boolean L_temp_4; /* temp */
    heapptr_t L_result0; /* result0 */
    descriptor_t L_temp_5;

    L_nargs = A1;
    if (((L_nargs & 1) == 0)) {
	L_args = ((void *)(orig_sp - L_nargs));
	L_name.heapptr = 0;
	L_name.dataword.l = 0;
	L_dylan_name = dylanZfalse;
	L_type = 0;
	L_index = (L_nargs - 2);
	while (1) {
	    if ((L_index < 0)) {
		goto block0;
	    }
	    else {
		L_temp = (((descriptor_t *)L_args)[L_index]);
		if ((dylanZdylan_visceraZCLS_symbol.heapptr == SLOT(L_temp.heapptr, heapptr_t, 0))) {
		    L_key = L_temp.heapptr;
		    L_value = (((descriptor_t *)L_args)[(L_index + 1)]);
		    if ((L_key == dylanZSYM_name.heapptr)) {
			/* %instance?{<object>, <class>} */
			L_condition = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			if (L_condition) {
			    L_name = L_value;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == cdeclZSYM_dylan_name.heapptr)) {
			/* %instance?{<object>, <class>} */
			L_temp_2 = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			if (L_temp_2) {
			    L_temp_3 = TRUE;
			}
			else if ((obj_False == L_value.heapptr)) {
			    L_temp_3 = TRUE;
			}
			else {
			    L_temp_3 = FALSE;
			}
			if (L_temp_3) {
			    L_dylan_name = L_value;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, cdeclZliteral_18.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == dylanZSYM_type.heapptr)) {
			L_PCTobject_class = SLOT(L_value.heapptr, heapptr_t, 0);
			if ((cdeclZc_declarationsZCLS_bitfield_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_incomplete_type_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_float_type_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_integer_type_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_predefined_type_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_typedef_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_function_type_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_vector_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_pointer_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_enum_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_struct_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else {
			    L_temp_4 = (cdeclZc_declarationsZCLS_union_declaration.heapptr == L_PCTobject_class);
			}
			if (L_temp_4) {
			    L_type = L_value.heapptr;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, cdeclZc_declarationsZCLS_type_declaration.heapptr);
			    not_reached();
			}
		    }
		    else {
		    }
		    L_index = (L_index - 2);
		}
		else {
		    /* type-error{<object>, <type>} */
		    dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp, dylanZdylan_visceraZCLS_symbol.heapptr);
		    not_reached();
		}
	    }
	}
      block0:;
	orig_sp = L_args;
	/* maker for <object-declaration> */
	L_result0 = cdeclZc_declarationsZCLS_object_declaration_MAKER_FUN(orig_sp, L_name, L_dylan_name, L_type);
	L_temp_5.heapptr = L_result0;
	L_temp_5.dataword.l = 0;
	orig_sp[0] = L_temp_5;
	return orig_sp + 1;
    }
    else {
	/* odd-number-of-keyword/value-arguments-error{} */
	dylanZdylan_visceraZodd_number_of_keywordSLASHvalue_arguments_error_METH(orig_sp);
	not_reached();
    }
}


/* {Implicit} Define Generic getter */

/* getter is getter */

/* generic-entry for getter{<variable-declaration>} */
descriptor_t * cdeclZc_declarationsZgetter_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    descriptor_t L_getter; /* getter */

    L_args = ((void *)(orig_sp - 1));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    orig_sp = L_args;
    L_getter = SLOT(L_arg_2, descriptor_t, 64);
    orig_sp[0] = L_getter;
    return orig_sp + 1;
}


/* {Implicit} Define Generic getter-setter */

/* getter-setter is getter-setter */

/* generic-entry for getter-setter{type-union(<string>, <false>), <variable-declaration>} */
descriptor_t * cdeclZc_declarationsZgetter_setter_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    descriptor_t L_arg_2; /* arg */
    descriptor_t L_arg_3; /* arg */
    heapptr_t L_arg_4; /* arg */

    L_args = ((void *)(orig_sp - 2));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg;
    L_arg_3 = (((descriptor_t *)L_args)[1]);
    L_arg_4 = L_arg_3.heapptr;
    orig_sp = L_args;
    SLOT(L_arg_4, descriptor_t, 64) = L_arg_2;
    orig_sp[0] = L_arg_2;
    return orig_sp + 1;
}


/* {Implicit} Define Generic setter */

/* setter is setter */

/* generic-entry for setter{<variable-declaration>} */
descriptor_t * cdeclZc_declarationsZsetter_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    descriptor_t L_setter; /* setter */

    L_args = ((void *)(orig_sp - 1));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    orig_sp = L_args;
    L_setter = SLOT(L_arg_2, descriptor_t, 72);
    orig_sp[0] = L_setter;
    return orig_sp + 1;
}


/* {Implicit} Define Generic setter-setter */

/* setter-setter is setter-setter */

/* generic-entry for setter-setter{type-union(<string>, <false>), <variable-declaration>} */
descriptor_t * cdeclZc_declarationsZsetter_setter_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    descriptor_t L_arg_2; /* arg */
    descriptor_t L_arg_3; /* arg */
    heapptr_t L_arg_4; /* arg */

    L_args = ((void *)(orig_sp - 2));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg;
    L_arg_3 = (((descriptor_t *)L_args)[1]);
    L_arg_4 = L_arg_3.heapptr;
    orig_sp = L_args;
    SLOT(L_arg_4, descriptor_t, 72) = L_arg_2;
    orig_sp[0] = L_arg_2;
    return orig_sp + 1;
}


/* Define Class <variable-declaration> */

/* <variable-declaration> is <variable-declaration> */

/* maker for <variable-declaration> */
heapptr_t cdeclZc_declarationsZCLS_variable_declaration_MAKER_FUN(descriptor_t *orig_sp, descriptor_t A0 /* name */, descriptor_t A1 /* d-name-init-value */, heapptr_t A2 /* type */)
{
    descriptor_t L_name; /* name */
    heapptr_t L_type; /* type */
    descriptor_t L_d_name_init_value; /* d-name-init-value */
    heapptr_t L_instance; /* instance */

    L_name = A0;
    L_type = A2;
    L_d_name_init_value = A1;
    if ((L_name.heapptr != NULL)) {
	if ((L_type != NULL)) {
	    L_instance = allocate(80);
	    SLOT(L_instance, heapptr_t, 0) = cdeclZc_declarationsZCLS_variable_declaration.heapptr;
	    SLOT(L_instance, descriptor_t, 4) = L_name;
	    SLOT(L_instance, descriptor_t, 12) = dylanZfalse;
	    SLOT(L_instance, descriptor_t, 20) = L_d_name_init_value;
	    SLOT(L_instance, descriptor_t, 28) = dylanZfalse;
	    SLOT(L_instance, bool, 36) = FALSE;
	    SLOT(L_instance, heapptr_t, 40) = L_type;
	    SLOT(L_instance, descriptor_t, 44) = dylanZstr_21;
	    SLOT(L_instance, descriptor_t, 52) = dylanZfalse;
	    SLOT(L_instance, heapptr_t, 60) = dylanZempty_list.heapptr;
	    SLOT(L_instance, descriptor_t, 64) = dylanZfalse;
	    SLOT(L_instance, descriptor_t, 72) = dylanZfalse;
	    return L_instance;
	}
	else {
	    /* missing-required-init-keyword-error{<symbol>, <class>} */
	    dylanZdylan_visceraZmissing_required_init_keyword_error_METH(orig_sp, dylanZSYM_type.heapptr, cdeclZc_declarationsZCLS_variable_declaration.heapptr);
	    not_reached();
	}
    }
    else {
	/* missing-required-init-keyword-error{<symbol>, <class>} */
	dylanZdylan_visceraZmissing_required_init_keyword_error_METH(orig_sp, dylanZSYM_name.heapptr, cdeclZc_declarationsZCLS_variable_declaration.heapptr);
	not_reached();
    }
}

/* general-entry for maker for <variable-declaration> */
descriptor_t * cdeclZc_declarationsZCLS_variable_declaration_MAKER_GENERAL(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */)
{
    long L_nargs; /* nargs */
    void * L_args; /* args */
    descriptor_t L_name; /* name */
    descriptor_t L_dylan_name; /* dylan-name */
    heapptr_t L_type; /* type */
    long L_index; /* index */
    descriptor_t L_temp; /* temp */
    heapptr_t L_key; /* key */
    descriptor_t L_value; /* value */
    boolean L_condition; /* condition */
    boolean L_temp_2; /* temp */
    boolean L_temp_3; /* temp */
    heapptr_t L_PCTobject_class; /* %object-class */
    boolean L_temp_4; /* temp */
    heapptr_t L_result0; /* result0 */
    descriptor_t L_temp_5;

    L_nargs = A1;
    if (((L_nargs & 1) == 0)) {
	L_args = ((void *)(orig_sp - L_nargs));
	L_name.heapptr = 0;
	L_name.dataword.l = 0;
	L_dylan_name = dylanZfalse;
	L_type = 0;
	L_index = (L_nargs - 2);
	while (1) {
	    if ((L_index < 0)) {
		goto block0;
	    }
	    else {
		L_temp = (((descriptor_t *)L_args)[L_index]);
		if ((dylanZdylan_visceraZCLS_symbol.heapptr == SLOT(L_temp.heapptr, heapptr_t, 0))) {
		    L_key = L_temp.heapptr;
		    L_value = (((descriptor_t *)L_args)[(L_index + 1)]);
		    if ((L_key == dylanZSYM_name.heapptr)) {
			/* %instance?{<object>, <class>} */
			L_condition = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			if (L_condition) {
			    L_name = L_value;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == cdeclZSYM_dylan_name.heapptr)) {
			/* %instance?{<object>, <class>} */
			L_temp_2 = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			if (L_temp_2) {
			    L_temp_3 = TRUE;
			}
			else if ((obj_False == L_value.heapptr)) {
			    L_temp_3 = TRUE;
			}
			else {
			    L_temp_3 = FALSE;
			}
			if (L_temp_3) {
			    L_dylan_name = L_value;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, cdeclZliteral_18.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == dylanZSYM_type.heapptr)) {
			L_PCTobject_class = SLOT(L_value.heapptr, heapptr_t, 0);
			if ((cdeclZc_declarationsZCLS_bitfield_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_incomplete_type_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_float_type_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_integer_type_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_predefined_type_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_typedef_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_function_type_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_vector_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_pointer_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_enum_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_struct_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else {
			    L_temp_4 = (cdeclZc_declarationsZCLS_union_declaration.heapptr == L_PCTobject_class);
			}
			if (L_temp_4) {
			    L_type = L_value.heapptr;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, cdeclZc_declarationsZCLS_type_declaration.heapptr);
			    not_reached();
			}
		    }
		    else {
		    }
		    L_index = (L_index - 2);
		}
		else {
		    /* type-error{<object>, <type>} */
		    dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp, dylanZdylan_visceraZCLS_symbol.heapptr);
		    not_reached();
		}
	    }
	}
      block0:;
	orig_sp = L_args;
	/* maker for <variable-declaration> */
	L_result0 = cdeclZc_declarationsZCLS_variable_declaration_MAKER_FUN(orig_sp, L_name, L_dylan_name, L_type);
	L_temp_5.heapptr = L_result0;
	L_temp_5.dataword.l = 0;
	orig_sp[0] = L_temp_5;
	return orig_sp + 1;
    }
    else {
	/* odd-number-of-keyword/value-arguments-error{} */
	dylanZdylan_visceraZodd_number_of_keywordSLASHvalue_arguments_error_METH(orig_sp);
	not_reached();
    }
}


/* {Implicit} Define Generic excluded? */

/* excluded? is excluded? */

/* generic-entry for excluded?{<slot-declaration>} */
descriptor_t * cdeclZc_declarationsZexcludedQUERY_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    boolean L_excludedQUERY; /* excluded? */
    descriptor_t L_temp;

    L_args = ((void *)(orig_sp - 1));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    orig_sp = L_args;
    L_excludedQUERY = SLOT(L_arg_2, bool, 37);
    L_temp.heapptr = (L_excludedQUERY ? obj_True : obj_False);
    L_temp.dataword.l = 0;
    orig_sp[0] = L_temp;
    return orig_sp + 1;
}


/* {Implicit} Define Generic excluded?-setter */

/* excluded?-setter is excluded?-setter */

/* generic-entry for excluded?-setter{<boolean>, <slot-declaration>} */
descriptor_t * cdeclZc_declarationsZexcludedQUERY_setter_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    boolean L_arg_2; /* arg */
    descriptor_t L_arg_3; /* arg */
    heapptr_t L_arg_4; /* arg */
    descriptor_t L_temp;

    L_args = ((void *)(orig_sp - 2));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = (L_arg.heapptr != obj_False);
    L_arg_3 = (((descriptor_t *)L_args)[1]);
    L_arg_4 = L_arg_3.heapptr;
    orig_sp = L_args;
    SLOT(L_arg_4, bool, 37) = L_arg_2;
    L_temp.heapptr = (L_arg_2 ? obj_True : obj_False);
    L_temp.dataword.l = 0;
    orig_sp[0] = L_temp;
    return orig_sp + 1;
}


/* Define Class <slot-declaration> */

/* <slot-declaration> is <slot-declaration> */

/* getter for excluded?{<slot-declaration>} */
boolean cdeclZc_declarationsZexcludedQUERY_METH(descriptor_t *orig_sp, heapptr_t A0 /* object */)
{
    boolean L_result; /* result */

    L_result = SLOT(A0, bool, 37);
    return L_result;
}

/* setter for excluded?-setter{<boolean>, <slot-declaration>} */
boolean cdeclZc_declarationsZexcludedQUERY_setter_METH(descriptor_t *orig_sp, boolean A0 /* new-value */, heapptr_t A1 /* object */)
{
    boolean L_new_value; /* new-value */

    L_new_value = A0;
    SLOT(A1, bool, 37) = L_new_value;
    return L_new_value;
}

/* maker for <slot-declaration> */
heapptr_t cdeclZc_declarationsZCLS_slot_declaration_MAKER_FUN(descriptor_t *orig_sp, descriptor_t A0 /* name */, descriptor_t A1 /* d-name-init-value */, heapptr_t A2 /* type */)
{
    descriptor_t L_name; /* name */
    heapptr_t L_type; /* type */
    descriptor_t L_d_name_init_value; /* d-name-init-value */
    heapptr_t L_instance; /* instance */

    L_name = A0;
    L_type = A2;
    L_d_name_init_value = A1;
    if ((L_name.heapptr != NULL)) {
	if ((L_type != NULL)) {
	    L_instance = allocate(64);
	    SLOT(L_instance, heapptr_t, 0) = cdeclZc_declarationsZCLS_slot_declaration.heapptr;
	    SLOT(L_instance, descriptor_t, 4) = L_name;
	    SLOT(L_instance, descriptor_t, 12) = dylanZfalse;
	    SLOT(L_instance, descriptor_t, 20) = L_d_name_init_value;
	    SLOT(L_instance, descriptor_t, 28) = dylanZfalse;
	    SLOT(L_instance, bool, 36) = FALSE;
	    SLOT(L_instance, heapptr_t, 40) = L_type;
	    SLOT(L_instance, descriptor_t, 44) = dylanZstr_21;
	    SLOT(L_instance, descriptor_t, 52) = dylanZfalse;
	    SLOT(L_instance, heapptr_t, 60) = dylanZempty_list.heapptr;
	    SLOT(L_instance, bool, 37) = FALSE;
	    return L_instance;
	}
	else {
	    /* missing-required-init-keyword-error{<symbol>, <class>} */
	    dylanZdylan_visceraZmissing_required_init_keyword_error_METH(orig_sp, dylanZSYM_type.heapptr, cdeclZc_declarationsZCLS_slot_declaration.heapptr);
	    not_reached();
	}
    }
    else {
	/* missing-required-init-keyword-error{<symbol>, <class>} */
	dylanZdylan_visceraZmissing_required_init_keyword_error_METH(orig_sp, dylanZSYM_name.heapptr, cdeclZc_declarationsZCLS_slot_declaration.heapptr);
	not_reached();
    }
}

/* general-entry for maker for <slot-declaration> */
descriptor_t * cdeclZc_declarationsZCLS_slot_declaration_MAKER_GENERAL(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */)
{
    long L_nargs; /* nargs */
    void * L_args; /* args */
    descriptor_t L_name; /* name */
    descriptor_t L_dylan_name; /* dylan-name */
    heapptr_t L_type; /* type */
    long L_index; /* index */
    descriptor_t L_temp; /* temp */
    heapptr_t L_key; /* key */
    descriptor_t L_value; /* value */
    boolean L_condition; /* condition */
    boolean L_temp_2; /* temp */
    boolean L_temp_3; /* temp */
    heapptr_t L_PCTobject_class; /* %object-class */
    boolean L_temp_4; /* temp */
    heapptr_t L_result0; /* result0 */
    descriptor_t L_temp_5;

    L_nargs = A1;
    if (((L_nargs & 1) == 0)) {
	L_args = ((void *)(orig_sp - L_nargs));
	L_name.heapptr = 0;
	L_name.dataword.l = 0;
	L_dylan_name = dylanZfalse;
	L_type = 0;
	L_index = (L_nargs - 2);
	while (1) {
	    if ((L_index < 0)) {
		goto block0;
	    }
	    else {
		L_temp = (((descriptor_t *)L_args)[L_index]);
		if ((dylanZdylan_visceraZCLS_symbol.heapptr == SLOT(L_temp.heapptr, heapptr_t, 0))) {
		    L_key = L_temp.heapptr;
		    L_value = (((descriptor_t *)L_args)[(L_index + 1)]);
		    if ((L_key == dylanZSYM_name.heapptr)) {
			/* %instance?{<object>, <class>} */
			L_condition = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			if (L_condition) {
			    L_name = L_value;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == cdeclZSYM_dylan_name.heapptr)) {
			/* %instance?{<object>, <class>} */
			L_temp_2 = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			if (L_temp_2) {
			    L_temp_3 = TRUE;
			}
			else if ((obj_False == L_value.heapptr)) {
			    L_temp_3 = TRUE;
			}
			else {
			    L_temp_3 = FALSE;
			}
			if (L_temp_3) {
			    L_dylan_name = L_value;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, cdeclZliteral_18.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == dylanZSYM_type.heapptr)) {
			L_PCTobject_class = SLOT(L_value.heapptr, heapptr_t, 0);
			if ((cdeclZc_declarationsZCLS_bitfield_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_incomplete_type_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_float_type_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_integer_type_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_predefined_type_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_typedef_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_function_type_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_vector_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_pointer_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_enum_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_struct_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else {
			    L_temp_4 = (cdeclZc_declarationsZCLS_union_declaration.heapptr == L_PCTobject_class);
			}
			if (L_temp_4) {
			    L_type = L_value.heapptr;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, cdeclZc_declarationsZCLS_type_declaration.heapptr);
			    not_reached();
			}
		    }
		    else {
		    }
		    L_index = (L_index - 2);
		}
		else {
		    /* type-error{<object>, <type>} */
		    dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp, dylanZdylan_visceraZCLS_symbol.heapptr);
		    not_reached();
		}
	    }
	}
      block0:;
	orig_sp = L_args;
	/* maker for <slot-declaration> */
	L_result0 = cdeclZc_declarationsZCLS_slot_declaration_MAKER_FUN(orig_sp, L_name, L_dylan_name, L_type);
	L_temp_5.heapptr = L_result0;
	L_temp_5.dataword.l = 0;
	orig_sp[0] = L_temp_5;
	return orig_sp + 1;
    }
    else {
	/* odd-number-of-keyword/value-arguments-error{} */
	dylanZdylan_visceraZodd_number_of_keywordSLASHvalue_arguments_error_METH(orig_sp);
	not_reached();
    }
}


/* Define Class <result-declaration> */

/* <result-declaration> is <result-declaration> */

/* maker for <result-declaration> */
heapptr_t cdeclZc_declarationsZCLS_result_declaration_MAKER_FUN(descriptor_t *orig_sp, descriptor_t A0 /* name */, descriptor_t A1 /* d-name-init-value */, heapptr_t A2 /* type */)
{
    descriptor_t L_name; /* name */
    heapptr_t L_type; /* type */
    descriptor_t L_d_name_init_value; /* d-name-init-value */
    heapptr_t L_instance; /* instance */

    L_name = A0;
    L_type = A2;
    L_d_name_init_value = A1;
    if ((L_name.heapptr != NULL)) {
	if ((L_type != NULL)) {
	    L_instance = allocate(64);
	    SLOT(L_instance, heapptr_t, 0) = cdeclZc_declarationsZCLS_result_declaration.heapptr;
	    SLOT(L_instance, descriptor_t, 4) = L_name;
	    SLOT(L_instance, descriptor_t, 12) = dylanZfalse;
	    SLOT(L_instance, descriptor_t, 20) = L_d_name_init_value;
	    SLOT(L_instance, descriptor_t, 28) = dylanZfalse;
	    SLOT(L_instance, bool, 36) = FALSE;
	    SLOT(L_instance, heapptr_t, 40) = L_type;
	    SLOT(L_instance, descriptor_t, 44) = dylanZstr_21;
	    SLOT(L_instance, descriptor_t, 52) = dylanZfalse;
	    SLOT(L_instance, heapptr_t, 60) = dylanZempty_list.heapptr;
	    return L_instance;
	}
	else {
	    /* missing-required-init-keyword-error{<symbol>, <class>} */
	    dylanZdylan_visceraZmissing_required_init_keyword_error_METH(orig_sp, dylanZSYM_type.heapptr, cdeclZc_declarationsZCLS_result_declaration.heapptr);
	    not_reached();
	}
    }
    else {
	/* missing-required-init-keyword-error{<symbol>, <class>} */
	dylanZdylan_visceraZmissing_required_init_keyword_error_METH(orig_sp, dylanZSYM_name.heapptr, cdeclZc_declarationsZCLS_result_declaration.heapptr);
	not_reached();
    }
}

/* general-entry for maker for <result-declaration> */
descriptor_t * cdeclZc_declarationsZCLS_result_declaration_MAKER_GENERAL(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */)
{
    long L_nargs; /* nargs */
    void * L_args; /* args */
    descriptor_t L_name; /* name */
    descriptor_t L_dylan_name; /* dylan-name */
    heapptr_t L_type; /* type */
    long L_index; /* index */
    descriptor_t L_temp; /* temp */
    heapptr_t L_key; /* key */
    descriptor_t L_value; /* value */
    boolean L_condition; /* condition */
    boolean L_temp_2; /* temp */
    boolean L_temp_3; /* temp */
    heapptr_t L_PCTobject_class; /* %object-class */
    boolean L_temp_4; /* temp */
    heapptr_t L_result0; /* result0 */
    descriptor_t L_temp_5;

    L_nargs = A1;
    if (((L_nargs & 1) == 0)) {
	L_args = ((void *)(orig_sp - L_nargs));
	L_name.heapptr = 0;
	L_name.dataword.l = 0;
	L_dylan_name = dylanZfalse;
	L_type = 0;
	L_index = (L_nargs - 2);
	while (1) {
	    if ((L_index < 0)) {
		goto block0;
	    }
	    else {
		L_temp = (((descriptor_t *)L_args)[L_index]);
		if ((dylanZdylan_visceraZCLS_symbol.heapptr == SLOT(L_temp.heapptr, heapptr_t, 0))) {
		    L_key = L_temp.heapptr;
		    L_value = (((descriptor_t *)L_args)[(L_index + 1)]);
		    if ((L_key == dylanZSYM_name.heapptr)) {
			/* %instance?{<object>, <class>} */
			L_condition = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			if (L_condition) {
			    L_name = L_value;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == cdeclZSYM_dylan_name.heapptr)) {
			/* %instance?{<object>, <class>} */
			L_temp_2 = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			if (L_temp_2) {
			    L_temp_3 = TRUE;
			}
			else if ((obj_False == L_value.heapptr)) {
			    L_temp_3 = TRUE;
			}
			else {
			    L_temp_3 = FALSE;
			}
			if (L_temp_3) {
			    L_dylan_name = L_value;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, cdeclZliteral_18.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == dylanZSYM_type.heapptr)) {
			L_PCTobject_class = SLOT(L_value.heapptr, heapptr_t, 0);
			if ((cdeclZc_declarationsZCLS_bitfield_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_incomplete_type_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_float_type_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_integer_type_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_predefined_type_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_typedef_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_function_type_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_vector_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_pointer_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_enum_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_struct_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else {
			    L_temp_4 = (cdeclZc_declarationsZCLS_union_declaration.heapptr == L_PCTobject_class);
			}
			if (L_temp_4) {
			    L_type = L_value.heapptr;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, cdeclZc_declarationsZCLS_type_declaration.heapptr);
			    not_reached();
			}
		    }
		    else {
		    }
		    L_index = (L_index - 2);
		}
		else {
		    /* type-error{<object>, <type>} */
		    dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp, dylanZdylan_visceraZCLS_symbol.heapptr);
		    not_reached();
		}
	    }
	}
      block0:;
	orig_sp = L_args;
	/* maker for <result-declaration> */
	L_result0 = cdeclZc_declarationsZCLS_result_declaration_MAKER_FUN(orig_sp, L_name, L_dylan_name, L_type);
	L_temp_5.heapptr = L_result0;
	L_temp_5.dataword.l = 0;
	orig_sp[0] = L_temp_5;
	return orig_sp + 1;
    }
    else {
	/* odd-number-of-keyword/value-arguments-error{} */
	dylanZdylan_visceraZodd_number_of_keywordSLASHvalue_arguments_error_METH(orig_sp);
	not_reached();
    }
}


/* {Implicit} Define Generic direction */

/* direction is direction */

/* generic-entry for direction{<arg-declaration>} */
descriptor_t * cdeclZc_declarationsZdirection_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    heapptr_t L_direction; /* direction */
    descriptor_t L_temp;

    L_args = ((void *)(orig_sp - 1));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    orig_sp = L_args;
    L_direction = SLOT(L_arg_2, heapptr_t, 64);
    L_temp.heapptr = L_direction;
    L_temp.dataword.l = 0;
    orig_sp[0] = L_temp;
    return orig_sp + 1;
}


/* {Implicit} Define Generic direction-setter */

/* direction-setter is direction-setter */

/* generic-entry for direction-setter{<symbol>, <arg-declaration>} */
descriptor_t * cdeclZc_declarationsZdirection_setter_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    descriptor_t L_arg_3; /* arg */
    heapptr_t L_arg_4; /* arg */
    descriptor_t L_temp;

    L_args = ((void *)(orig_sp - 2));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    L_arg_3 = (((descriptor_t *)L_args)[1]);
    L_arg_4 = L_arg_3.heapptr;
    orig_sp = L_args;
    SLOT(L_arg_4, heapptr_t, 64) = L_arg_2;
    L_temp.heapptr = L_arg_2;
    L_temp.dataword.l = 0;
    orig_sp[0] = L_temp;
    return orig_sp + 1;
}


/* {Implicit} Define Generic original-type */

/* original-type is original-type */

/* generic-entry for original-type{<arg-declaration>} */
descriptor_t * cdeclZc_declarationsZoriginal_type_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    heapptr_t L_original_type; /* original-type */
    descriptor_t L_temp;

    L_args = ((void *)(orig_sp - 1));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    orig_sp = L_args;
    L_original_type = SLOT(L_arg_2, heapptr_t, 68);
    L_temp.heapptr = L_original_type;
    L_temp.dataword.l = 0;
    orig_sp[0] = L_temp;
    return orig_sp + 1;
}


/* {Implicit} Define Generic original-type-setter */

/* original-type-setter is original-type-setter */

/* generic-entry for original-type-setter{type-union(<false>, <type-declaration>), <arg-declaration>} */
descriptor_t * cdeclZc_declarationsZoriginal_type_setter_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    descriptor_t L_arg_3; /* arg */
    heapptr_t L_arg_4; /* arg */
    descriptor_t L_temp;

    L_args = ((void *)(orig_sp - 2));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = L_arg.heapptr;
    L_arg_3 = (((descriptor_t *)L_args)[1]);
    L_arg_4 = L_arg_3.heapptr;
    orig_sp = L_args;
    SLOT(L_arg_4, heapptr_t, 68) = L_arg_2;
    L_temp.heapptr = L_arg_2;
    L_temp.dataword.l = 0;
    orig_sp[0] = L_temp;
    return orig_sp + 1;
}


/* Define Class <arg-declaration> */

/* <arg-declaration> is <arg-declaration> */

/* maker for <arg-declaration> */
heapptr_t cdeclZc_declarationsZCLS_arg_declaration_MAKER_FUN(descriptor_t *orig_sp, descriptor_t A0 /* name */, descriptor_t A1 /* d-name-init-value */, heapptr_t A2 /* type */)
{
    descriptor_t L_name; /* name */
    heapptr_t L_type; /* type */
    descriptor_t L_d_name_init_value; /* d-name-init-value */
    heapptr_t L_instance; /* instance */

    L_name = A0;
    L_type = A2;
    L_d_name_init_value = A1;
    if ((L_name.heapptr != NULL)) {
	if ((L_type != NULL)) {
	    L_instance = allocate(72);
	    SLOT(L_instance, heapptr_t, 0) = cdeclZc_declarationsZCLS_arg_declaration.heapptr;
	    SLOT(L_instance, descriptor_t, 4) = L_name;
	    SLOT(L_instance, descriptor_t, 12) = dylanZfalse;
	    SLOT(L_instance, descriptor_t, 20) = L_d_name_init_value;
	    SLOT(L_instance, descriptor_t, 28) = dylanZfalse;
	    SLOT(L_instance, bool, 36) = FALSE;
	    SLOT(L_instance, heapptr_t, 40) = L_type;
	    SLOT(L_instance, descriptor_t, 44) = dylanZstr_21;
	    SLOT(L_instance, descriptor_t, 52) = dylanZfalse;
	    SLOT(L_instance, heapptr_t, 60) = dylanZempty_list.heapptr;
	    SLOT(L_instance, heapptr_t, 64) = dylanZSYM_default.heapptr;
	    SLOT(L_instance, heapptr_t, 68) = obj_False;
	    return L_instance;
	}
	else {
	    /* missing-required-init-keyword-error{<symbol>, <class>} */
	    dylanZdylan_visceraZmissing_required_init_keyword_error_METH(orig_sp, dylanZSYM_type.heapptr, cdeclZc_declarationsZCLS_arg_declaration.heapptr);
	    not_reached();
	}
    }
    else {
	/* missing-required-init-keyword-error{<symbol>, <class>} */
	dylanZdylan_visceraZmissing_required_init_keyword_error_METH(orig_sp, dylanZSYM_name.heapptr, cdeclZc_declarationsZCLS_arg_declaration.heapptr);
	not_reached();
    }
}

/* general-entry for maker for <arg-declaration> */
descriptor_t * cdeclZc_declarationsZCLS_arg_declaration_MAKER_GENERAL(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */)
{
    long L_nargs; /* nargs */
    void * L_args; /* args */
    descriptor_t L_name; /* name */
    descriptor_t L_dylan_name; /* dylan-name */
    heapptr_t L_type; /* type */
    long L_index; /* index */
    descriptor_t L_temp; /* temp */
    heapptr_t L_key; /* key */
    descriptor_t L_value; /* value */
    boolean L_condition; /* condition */
    boolean L_temp_2; /* temp */
    boolean L_temp_3; /* temp */
    heapptr_t L_PCTobject_class; /* %object-class */
    boolean L_temp_4; /* temp */
    heapptr_t L_result0; /* result0 */
    descriptor_t L_temp_5;

    L_nargs = A1;
    if (((L_nargs & 1) == 0)) {
	L_args = ((void *)(orig_sp - L_nargs));
	L_name.heapptr = 0;
	L_name.dataword.l = 0;
	L_dylan_name = dylanZfalse;
	L_type = 0;
	L_index = (L_nargs - 2);
	while (1) {
	    if ((L_index < 0)) {
		goto block0;
	    }
	    else {
		L_temp = (((descriptor_t *)L_args)[L_index]);
		if ((dylanZdylan_visceraZCLS_symbol.heapptr == SLOT(L_temp.heapptr, heapptr_t, 0))) {
		    L_key = L_temp.heapptr;
		    L_value = (((descriptor_t *)L_args)[(L_index + 1)]);
		    if ((L_key == dylanZSYM_name.heapptr)) {
			/* %instance?{<object>, <class>} */
			L_condition = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			if (L_condition) {
			    L_name = L_value;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == cdeclZSYM_dylan_name.heapptr)) {
			/* %instance?{<object>, <class>} */
			L_temp_2 = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			if (L_temp_2) {
			    L_temp_3 = TRUE;
			}
			else if ((obj_False == L_value.heapptr)) {
			    L_temp_3 = TRUE;
			}
			else {
			    L_temp_3 = FALSE;
			}
			if (L_temp_3) {
			    L_dylan_name = L_value;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, cdeclZliteral_18.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == dylanZSYM_type.heapptr)) {
			L_PCTobject_class = SLOT(L_value.heapptr, heapptr_t, 0);
			if ((cdeclZc_declarationsZCLS_bitfield_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_incomplete_type_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_float_type_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_integer_type_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_predefined_type_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_typedef_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_function_type_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_vector_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_pointer_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_enum_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_struct_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else {
			    L_temp_4 = (cdeclZc_declarationsZCLS_union_declaration.heapptr == L_PCTobject_class);
			}
			if (L_temp_4) {
			    L_type = L_value.heapptr;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, cdeclZc_declarationsZCLS_type_declaration.heapptr);
			    not_reached();
			}
		    }
		    else {
		    }
		    L_index = (L_index - 2);
		}
		else {
		    /* type-error{<object>, <type>} */
		    dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp, dylanZdylan_visceraZCLS_symbol.heapptr);
		    not_reached();
		}
	    }
	}
      block0:;
	orig_sp = L_args;
	/* maker for <arg-declaration> */
	L_result0 = cdeclZc_declarationsZCLS_arg_declaration_MAKER_FUN(orig_sp, L_name, L_dylan_name, L_type);
	L_temp_5.heapptr = L_result0;
	L_temp_5.dataword.l = 0;
	orig_sp[0] = L_temp_5;
	return orig_sp + 1;
    }
    else {
	/* odd-number-of-keyword/value-arguments-error{} */
	dylanZdylan_visceraZodd_number_of_keywordSLASHvalue_arguments_error_METH(orig_sp);
	not_reached();
    }
}


/* Define Class <varargs-declaration> */

/* <varargs-declaration> is <varargs-declaration> */

/* maker for <varargs-declaration> */
heapptr_t cdeclZc_declarationsZCLS_varargs_declaration_MAKER_FUN(descriptor_t *orig_sp, descriptor_t A0 /* name */, descriptor_t A1 /* d-name-init-value */, heapptr_t A2 /* type */)
{
    descriptor_t L_name; /* name */
    heapptr_t L_type; /* type */
    descriptor_t L_d_name_init_value; /* d-name-init-value */
    heapptr_t L_instance; /* instance */

    L_name = A0;
    L_type = A2;
    L_d_name_init_value = A1;
    if ((L_name.heapptr != NULL)) {
	if ((L_type != NULL)) {
	    L_instance = allocate(72);
	    SLOT(L_instance, heapptr_t, 0) = cdeclZc_declarationsZCLS_varargs_declaration.heapptr;
	    SLOT(L_instance, descriptor_t, 4) = L_name;
	    SLOT(L_instance, descriptor_t, 12) = dylanZfalse;
	    SLOT(L_instance, descriptor_t, 20) = L_d_name_init_value;
	    SLOT(L_instance, descriptor_t, 28) = dylanZfalse;
	    SLOT(L_instance, bool, 36) = FALSE;
	    SLOT(L_instance, heapptr_t, 40) = L_type;
	    SLOT(L_instance, descriptor_t, 44) = dylanZstr_21;
	    SLOT(L_instance, descriptor_t, 52) = dylanZfalse;
	    SLOT(L_instance, heapptr_t, 60) = dylanZempty_list.heapptr;
	    SLOT(L_instance, heapptr_t, 64) = dylanZSYM_default.heapptr;
	    SLOT(L_instance, heapptr_t, 68) = obj_False;
	    return L_instance;
	}
	else {
	    /* missing-required-init-keyword-error{<symbol>, <class>} */
	    dylanZdylan_visceraZmissing_required_init_keyword_error_METH(orig_sp, dylanZSYM_type.heapptr, cdeclZc_declarationsZCLS_varargs_declaration.heapptr);
	    not_reached();
	}
    }
    else {
	/* missing-required-init-keyword-error{<symbol>, <class>} */
	dylanZdylan_visceraZmissing_required_init_keyword_error_METH(orig_sp, dylanZSYM_name.heapptr, cdeclZc_declarationsZCLS_varargs_declaration.heapptr);
	not_reached();
    }
}

/* general-entry for maker for <varargs-declaration> */
descriptor_t * cdeclZc_declarationsZCLS_varargs_declaration_MAKER_GENERAL(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */)
{
    long L_nargs; /* nargs */
    void * L_args; /* args */
    descriptor_t L_name; /* name */
    descriptor_t L_dylan_name; /* dylan-name */
    heapptr_t L_type; /* type */
    long L_index; /* index */
    descriptor_t L_temp; /* temp */
    heapptr_t L_key; /* key */
    descriptor_t L_value; /* value */
    boolean L_condition; /* condition */
    boolean L_temp_2; /* temp */
    boolean L_temp_3; /* temp */
    heapptr_t L_PCTobject_class; /* %object-class */
    boolean L_temp_4; /* temp */
    heapptr_t L_result0; /* result0 */
    descriptor_t L_temp_5;

    L_nargs = A1;
    if (((L_nargs & 1) == 0)) {
	L_args = ((void *)(orig_sp - L_nargs));
	L_name.heapptr = 0;
	L_name.dataword.l = 0;
	L_dylan_name = dylanZfalse;
	L_type = 0;
	L_index = (L_nargs - 2);
	while (1) {
	    if ((L_index < 0)) {
		goto block0;
	    }
	    else {
		L_temp = (((descriptor_t *)L_args)[L_index]);
		if ((dylanZdylan_visceraZCLS_symbol.heapptr == SLOT(L_temp.heapptr, heapptr_t, 0))) {
		    L_key = L_temp.heapptr;
		    L_value = (((descriptor_t *)L_args)[(L_index + 1)]);
		    if ((L_key == dylanZSYM_name.heapptr)) {
			/* %instance?{<object>, <class>} */
			L_condition = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			if (L_condition) {
			    L_name = L_value;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == cdeclZSYM_dylan_name.heapptr)) {
			/* %instance?{<object>, <class>} */
			L_temp_2 = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_value, dylanZdylan_visceraZCLS_string.heapptr);
			if (L_temp_2) {
			    L_temp_3 = TRUE;
			}
			else if ((obj_False == L_value.heapptr)) {
			    L_temp_3 = TRUE;
			}
			else {
			    L_temp_3 = FALSE;
			}
			if (L_temp_3) {
			    L_dylan_name = L_value;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, cdeclZliteral_18.heapptr);
			    not_reached();
			}
		    }
		    else if ((L_key == dylanZSYM_type.heapptr)) {
			L_PCTobject_class = SLOT(L_value.heapptr, heapptr_t, 0);
			if ((cdeclZc_declarationsZCLS_bitfield_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_incomplete_type_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_float_type_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_integer_type_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_predefined_type_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_typedef_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_function_type_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_vector_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_pointer_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_enum_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else if ((cdeclZc_declarationsZCLS_struct_declaration.heapptr == L_PCTobject_class)) {
			    L_temp_4 = TRUE;
			}
			else {
			    L_temp_4 = (cdeclZc_declarationsZCLS_union_declaration.heapptr == L_PCTobject_class);
			}
			if (L_temp_4) {
			    L_type = L_value.heapptr;
			}
			else {
			    /* type-error{<object>, <type>} */
			    dylanZdylan_visceraZtype_error_METH(orig_sp, L_value, cdeclZc_declarationsZCLS_type_declaration.heapptr);
			    not_reached();
			}
		    }
		    else {
		    }
		    L_index = (L_index - 2);
		}
		else {
		    /* type-error{<object>, <type>} */
		    dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp, dylanZdylan_visceraZCLS_symbol.heapptr);
		    not_reached();
		}
	    }
	}
      block0:;
	orig_sp = L_args;
	/* maker for <varargs-declaration> */
	L_result0 = cdeclZc_declarationsZCLS_varargs_declaration_MAKER_FUN(orig_sp, L_name, L_dylan_name, L_type);
	L_temp_5.heapptr = L_result0;
	L_temp_5.dataword.l = 0;
	orig_sp[0] = L_temp_5;
	return orig_sp + 1;
    }
    else {
	/* odd-number-of-keyword/value-arguments-error{} */
	dylanZdylan_visceraZodd_number_of_keywordSLASHvalue_arguments_error_METH(orig_sp);
	not_reached();
    }
}


/* Define Generic find-parameter */

/* find-parameter is find-parameter */

extern heapptr_t cdeclZc_declarationsZfind_parameter_METH(descriptor_t *orig_sp, heapptr_t A0, heapptr_t A1);	/* find-parameter{<function-type-declaration>, <symbol>} */

/* generic-entry for find-parameter{<function-type-declaration>, <symbol>} */
descriptor_t * cdeclZc_declarationsZfind_parameter_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    descriptor_t L_arg_2; /* arg */
    heapptr_t L_arg_3; /* arg */
    heapptr_t L_arg_4; /* arg */
    heapptr_t L_result0; /* result0 */
    descriptor_t L_temp;

    L_args = ((void *)(orig_sp - 2));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = (((descriptor_t *)L_args)[1]);
    L_arg_3 = L_arg.heapptr;
    L_arg_4 = L_arg_2.heapptr;
    orig_sp = L_args;
    /* find-parameter{<function-type-declaration>, <symbol>} */
    L_result0 = cdeclZc_declarationsZfind_parameter_METH(orig_sp, L_arg_3, L_arg_4);
    L_temp.heapptr = L_result0;
    L_temp.dataword.l = 0;
    orig_sp[0] = L_temp;
    return orig_sp + 1;
}

extern heapptr_t cdeclZc_declarationsZfind_parameter_METH_2(descriptor_t *orig_sp, heapptr_t A0, descriptor_t A1);	/* find-parameter{<function-type-declaration>, <string>} */

/* generic-entry for find-parameter{<function-type-declaration>, <string>} */
descriptor_t * cdeclZc_declarationsZfind_parameter_METH_GENERIC_2(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    descriptor_t L_arg_2; /* arg */
    heapptr_t L_arg_3; /* arg */
    descriptor_t L_arg_4; /* arg */
    heapptr_t L_result0; /* result0 */
    descriptor_t L_temp;

    L_args = ((void *)(orig_sp - 2));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = (((descriptor_t *)L_args)[1]);
    L_arg_3 = L_arg.heapptr;
    L_arg_4 = L_arg_2;
    orig_sp = L_args;
    /* find-parameter{<function-type-declaration>, <string>} */
    L_result0 = cdeclZc_declarationsZfind_parameter_METH_2(orig_sp, L_arg_3, L_arg_4);
    L_temp.heapptr = L_result0;
    L_temp.dataword.l = 0;
    orig_sp[0] = L_temp;
    return orig_sp + 1;
}

extern heapptr_t cdeclZc_declarationsZfind_parameter_METH_3(descriptor_t *orig_sp, heapptr_t A0, long A1);	/* find-parameter{<function-type-declaration>, <integer>} */

/* generic-entry for find-parameter{<function-type-declaration>, <integer>} */
descriptor_t * cdeclZc_declarationsZfind_parameter_METH_GENERIC_3(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    descriptor_t L_arg_2; /* arg */
    heapptr_t L_arg_3; /* arg */
    long L_arg_4; /* arg */
    heapptr_t L_result0; /* result0 */
    descriptor_t L_temp;

    L_args = ((void *)(orig_sp - 2));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = (((descriptor_t *)L_args)[1]);
    L_arg_3 = L_arg.heapptr;
    L_arg_4 = L_arg_2.dataword.l;
    orig_sp = L_args;
    /* find-parameter{<function-type-declaration>, <integer>} */
    L_result0 = cdeclZc_declarationsZfind_parameter_METH_3(orig_sp, L_arg_3, L_arg_4);
    L_temp.heapptr = L_result0;
    L_temp.dataword.l = 0;
    orig_sp[0] = L_temp;
    return orig_sp + 1;
}

extern heapptr_t cdeclZc_declarationsZfind_parameter_METH_4(descriptor_t *orig_sp, heapptr_t A0, descriptor_t A1);	/* find-parameter{<function-declaration>, <object>} */

/* generic-entry for find-parameter{<function-declaration>, <object>} */
descriptor_t * cdeclZc_declarationsZfind_parameter_METH_GENERIC_4(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    descriptor_t L_arg_2; /* arg */
    heapptr_t L_arg_3; /* arg */
    descriptor_t L_arg_4; /* arg */
    heapptr_t L_result0; /* result0 */
    descriptor_t L_temp;

    L_args = ((void *)(orig_sp - 2));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = (((descriptor_t *)L_args)[1]);
    L_arg_3 = L_arg.heapptr;
    L_arg_4 = L_arg_2;
    orig_sp = L_args;
    /* find-parameter{<function-declaration>, <object>} */
    L_result0 = cdeclZc_declarationsZfind_parameter_METH_4(orig_sp, L_arg_3, L_arg_4);
    L_temp.heapptr = L_result0;
    L_temp.dataword.l = 0;
    orig_sp[0] = L_temp;
    return orig_sp + 1;
}


/* Define Generic find-result */

/* find-result is find-result */

extern descriptor_t cdeclZc_declarationsZfind_result_2;	/* find-result */

extern heapptr_t cdeclZc_declarationsZfind_result_METH(descriptor_t *orig_sp, heapptr_t A0);	/* find-result{<function-declaration>} */

extern heapptr_t cdeclZc_declarationsZfind_result_METH_2(descriptor_t *orig_sp, heapptr_t A0);	/* find-result{<function-type-declaration>} */

/* discriminator for find-result */
heapptr_t cdeclZc_declarationsZfind_result_DISCRIM_FUN(descriptor_t *orig_sp, heapptr_t A0 /* arg0 */)
{
    heapptr_t L_arg0; /* arg0 */
    long L_unique_id; /* unique-id */
    heapptr_t L_instance; /* instance */
    descriptor_t L_temp;
    heapptr_t L_result0; /* result0 */
    heapptr_t L_instance_2; /* instance */
    descriptor_t L_temp_2;
    heapptr_t L_instance_3; /* instance */
    descriptor_t L_temp_3;

    L_arg0 = A0;
    L_unique_id = SLOT(SLOT(L_arg0, heapptr_t, 0), long, 8);
    if ((L_unique_id < 10103)) {
	if ((L_unique_id < 10091)) {
	    if ((L_unique_id < 10090)) {
		/* maker for <simple-object-vector> */
		L_instance = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 1, dylanZfalse);
		L_temp.heapptr = L_arg0;
		L_temp.dataword.l = 0;
		SLOT(L_instance, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_temp;
		/* no-applicable-methods-error{<generic-function>, <simple-object-vector>} */
		dylanZdylan_visceraZno_applicable_methods_error_METH(orig_sp, cdeclZc_declarationsZfind_result_2.heapptr, L_instance);
		not_reached();
	    }
	    else {
		/* find-result{<function-declaration>} */
		L_result0 = cdeclZc_declarationsZfind_result_METH(orig_sp, L_arg0);
	    }
	}
	else {
	    /* maker for <simple-object-vector> */
	    L_instance_2 = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 1, dylanZfalse);
	    L_temp_2.heapptr = L_arg0;
	    L_temp_2.dataword.l = 0;
	    SLOT(L_instance_2, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_temp_2;
	    /* no-applicable-methods-error{<generic-function>, <simple-object-vector>} */
	    dylanZdylan_visceraZno_applicable_methods_error_METH(orig_sp, cdeclZc_declarationsZfind_result_2.heapptr, L_instance_2);
	    not_reached();
	}
    }
    else if ((L_unique_id < 10104)) {
	/* find-result{<function-type-declaration>} */
	L_result0 = cdeclZc_declarationsZfind_result_METH_2(orig_sp, L_arg0);
    }
    else {
	/* maker for <simple-object-vector> */
	L_instance_3 = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 1, dylanZfalse);
	L_temp_3.heapptr = L_arg0;
	L_temp_3.dataword.l = 0;
	SLOT(L_instance_3, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_temp_3;
	/* no-applicable-methods-error{<generic-function>, <simple-object-vector>} */
	dylanZdylan_visceraZno_applicable_methods_error_METH(orig_sp, cdeclZc_declarationsZfind_result_2.heapptr, L_instance_3);
	not_reached();
    }
    return L_result0;
}

/* general-entry for discriminator for find-result */
descriptor_t * cdeclZc_declarationsZfind_result_DISCRIM_GENERAL(descriptor_t *orig_sp, heapptr_t A0 /* self */, long A1 /* nargs */)
{
    long L_nargs; /* nargs */
    void * L_args; /* args */
    descriptor_t L_temp; /* temp */
    heapptr_t L_PCTobject_class; /* %object-class */
    boolean L_temp_2; /* temp */
    heapptr_t L_arg; /* arg */
    heapptr_t L_result0; /* result0 */
    descriptor_t L_temp_3;

    L_nargs = A1;
    if ((L_nargs == 1)) {
	L_args = ((void *)(orig_sp - 1));
	L_temp = (((descriptor_t *)L_args)[0]);
	L_PCTobject_class = SLOT(L_temp.heapptr, heapptr_t, 0);
	if ((cdeclZc_declarationsZCLS_varargs_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_arg_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_bitfield_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_incomplete_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_result_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_macro_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_function_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_variable_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_enum_slot_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_coalesced_bitfields.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_slot_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_object_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_float_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_integer_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_predefined_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_typedef_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_function_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_vector_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_pointer_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_enum_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_struct_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_2 = TRUE;
	}
	else {
	    L_temp_2 = (cdeclZc_declarationsZCLS_union_declaration.heapptr == L_PCTobject_class);
	}
	if (L_temp_2) {
	    L_arg = L_temp.heapptr;
	    orig_sp = L_args;
	    /* discriminator for find-result */
	    L_result0 = cdeclZc_declarationsZfind_result_DISCRIM_FUN(orig_sp, L_arg);
	    L_temp_3.heapptr = L_result0;
	    L_temp_3.dataword.l = 0;
	    orig_sp[0] = L_temp_3;
	    return orig_sp + 1;
	}
	else {
	    /* type-error{<object>, <type>} */
	    dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp, cdeclZc_declarationsZCLS_declaration.heapptr);
	    not_reached();
	}
    }
    else {
	/* wrong-number-of-arguments-error{<boolean>, <integer>, <integer>} */
	dylanZdylan_visceraZwrong_number_of_arguments_error_METH(orig_sp, TRUE, 1, L_nargs);
	not_reached();
    }
}


/* Define Generic ignored?-setter */

/* ignored?-setter is ignored?-setter */

extern boolean cdeclZc_declarationsZignoredQUERY_setter_METH(descriptor_t *orig_sp, boolean A0, heapptr_t A1);	/* ignored?-setter{singleton(#t), <result-declaration>} */

/* generic-entry for ignored?-setter{singleton(#t), <result-declaration>} */
descriptor_t * cdeclZc_declarationsZignoredQUERY_setter_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    heapptr_t L_arg_2; /* arg */
    boolean L_result0; /* result0 */
    descriptor_t L_temp;

    L_args = ((void *)(orig_sp - 2));
    L_arg = (((descriptor_t *)L_args)[1]);
    L_arg_2 = L_arg.heapptr;
    orig_sp = L_args;
    /* ignored?-setter{singleton(#t), <result-declaration>} */
    L_result0 = cdeclZc_declarationsZignoredQUERY_setter_METH(orig_sp, TRUE, L_arg_2);
    L_temp.heapptr = (L_result0 ? obj_True : obj_False);
    L_temp.dataword.l = 0;
    orig_sp[0] = L_temp;
    return orig_sp + 1;
}


/* Define Generic argument-direction-setter */

/* argument-direction-setter is argument-direction-setter */

extern heapptr_t cdeclZc_declarationsZargument_direction_setter_METH(descriptor_t *orig_sp, heapptr_t A0, heapptr_t A1);	/* argument-direction-setter{<symbol>, <arg-declaration>} */

/* generic-entry for argument-direction-setter{<symbol>, <arg-declaration>} */
descriptor_t * cdeclZc_declarationsZargument_direction_setter_METH_GENERIC(descriptor_t *orig_sp, heapptr_t A0, long A1, heapptr_t A2)
{
    void * L_args; /* args */
    descriptor_t L_arg; /* arg */
    descriptor_t L_arg_2; /* arg */
    heapptr_t L_arg_3; /* arg */
    heapptr_t L_arg_4; /* arg */
    heapptr_t L_result0; /* result0 */
    descriptor_t L_temp;

    L_args = ((void *)(orig_sp - 2));
    L_arg = (((descriptor_t *)L_args)[0]);
    L_arg_2 = (((descriptor_t *)L_args)[1]);
    L_arg_3 = L_arg.heapptr;
    L_arg_4 = L_arg_2.heapptr;
    orig_sp = L_args;
    /* argument-direction-setter{<symbol>, <arg-declaration>} */
    L_result0 = cdeclZc_declarationsZargument_direction_setter_METH(orig_sp, L_arg_3, L_arg_4);
    L_temp.heapptr = L_result0;
    L_temp.dataword.l = 0;
    orig_sp[0] = L_temp;
    return orig_sp + 1;
}


/* Define Method equate{<object-declaration>, <string>} */

/* equate{<object-declaration>, <string>} */
void cdeclZc_declarationsZequate_METH_2(descriptor_t *orig_sp, heapptr_t A0 /* decl */, descriptor_t A1 /* name */)
{
    descriptor_t *cluster_0_top;
    heapptr_t L_decl; /* decl */
    descriptor_t L_name; /* name */
    heapptr_t L_type; /* type */
    descriptor_t L_arg0; /* arg0 */
    long L_unique_id; /* unique-id */
    boolean L_temp; /* temp */
    heapptr_t L_type_2; /* type */
    descriptor_t L_arg1; /* arg1 */
    heapptr_t L_instance; /* instance */

    L_decl = A0;
    L_name = A1;
    L_type = SLOT(L_decl, heapptr_t, 40);
    /* discriminator for true-type */
    cluster_0_top = cdeclZc_declarationsZtrue_type_DISCRIM_FUN(orig_sp, L_type);
    L_arg0 = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
    L_unique_id = SLOT(SLOT(L_arg0.heapptr, heapptr_t, 0), long, 8);
    if ((L_unique_id < 10099)) {
	L_temp = FALSE;
    }
    else if ((10101 < L_unique_id)) {
	L_temp = FALSE;
    }
    else {
	L_temp = TRUE;
    }
    if (L_temp) {
	L_type_2 = SLOT(L_decl, heapptr_t, 40);
	/* simple-name{<declaration>} */
	L_arg1 = cdeclZc_declarationsZsimple_name_METH(orig_sp, L_type_2);
	/* maker for <simple-object-vector> */
	L_instance = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 1, dylanZfalse);
	SLOT(L_instance, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_arg1;
	/* error{<string>} */
	dylanZdylan_visceraZerror_METH(orig_sp, cdeclZstr_236, L_instance);
	not_reached();
    }
    else {
	SLOT(L_decl, descriptor_t, 52) = L_name;
	return;
    }
}


/* Define Method find-dylan-name{<function-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */

/* find-dylan-name{<function-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
descriptor_t cdeclZc_declarationsZfind_dylan_name_METH_3(descriptor_t *orig_sp, heapptr_t A0 /* decl */, heapptr_t A1 /* mapper */, descriptor_t A2 /* prefix */, descriptor_t A3 /* containers */, boolean A4 /* read-only */, descriptor_t A5 /* sealing */)
{
    heapptr_t L_decl; /* decl */
    heapptr_t L_mapper; /* mapper */
    descriptor_t L_prefix; /* prefix */
    boolean L_read_only; /* read-only */
    descriptor_t L_sealing; /* sealing */
    descriptor_t L_containers; /* containers */
    heapptr_t L_type; /* type */
    descriptor_t L_d_name; /* d-name */
    descriptor_t L_result; /* result */
    descriptor_t L_new_value; /* new-value */

    L_decl = A0;
    L_mapper = A1;
    L_prefix = A2;
    L_read_only = A4;
    L_sealing = A5;
    L_containers = A3;
    L_type = SLOT(L_decl, heapptr_t, 40);
    /* discriminator for find-dylan-name */
    cdeclZc_declarationsZfind_dylan_name_DISCRIM_FUN(orig_sp, L_type, L_mapper, L_prefix, dylanZempty_list, L_read_only, L_sealing);
    L_d_name = SLOT(L_decl, descriptor_t, 20);
    if ((L_d_name.heapptr != obj_False)) {
	L_result = L_d_name;
    }
    else {
	/* compute-dylan-name{<function-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
	L_new_value = cdeclZc_declarationsZcompute_dylan_name_METH_6(orig_sp, L_decl, L_mapper, L_prefix, L_containers, L_read_only, L_sealing);
	SLOT(L_decl, descriptor_t, 20) = L_new_value;
	L_result = L_new_value;
    }
    return L_result;
}


/* Define Method compute-dylan-name{<function-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */

extern descriptor_t dylanZSYM_function;	/* #"function" */

/* compute-dylan-name{<function-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
descriptor_t cdeclZc_declarationsZcompute_dylan_name_METH_6(descriptor_t *orig_sp, heapptr_t A0 /* decl */, heapptr_t A1 /* mapper */, descriptor_t A2 /* prefix */, descriptor_t A3 /* containers */, boolean A4 /* rd-only */, descriptor_t A5 /* sealing */)
{
    descriptor_t *cluster_0_top;
    heapptr_t L_decl; /* decl */
    heapptr_t L_mapper; /* mapper */
    descriptor_t L_prefix; /* prefix */
    descriptor_t L_containers; /* containers */
    boolean L_rd_only; /* rd-only */
    descriptor_t L_sealing; /* sealing */
    heapptr_t L_type; /* type */
    descriptor_t L_simple_name; /* simple-name */
    descriptor_t L_temp; /* temp */
    boolean L_condition; /* condition */

    L_decl = A0;
    L_mapper = A1;
    L_prefix = A2;
    L_containers = A3;
    L_rd_only = A4;
    L_sealing = A5;
    L_type = SLOT(L_decl, heapptr_t, 40);
    /* discriminator for find-dylan-name */
    cdeclZc_declarationsZfind_dylan_name_DISCRIM_FUN(orig_sp, L_type, L_mapper, L_prefix, L_containers, L_rd_only, L_sealing);
    L_simple_name = SLOT(L_decl, descriptor_t, 4);
    orig_sp[0] = dylanZSYM_function;
    orig_sp[1] = L_prefix;
    orig_sp[2] = L_simple_name;
    orig_sp[3] = L_containers;
    cluster_0_top = GENERAL_ENTRY(L_mapper)(orig_sp + 4, L_mapper, 4);
    L_temp = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
    /* %instance?{<object>, <class>} */
    L_condition = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_temp, dylanZdylan_visceraZCLS_string.heapptr);
    if (L_condition) {
	return L_temp;
    }
    else {
	/* type-error{<object>, <type>} */
	dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp, dylanZdylan_visceraZCLS_string.heapptr);
	not_reached();
    }
}


/* Define Method compute-closure{<deque>, <function-declaration>} */

/* compute-closure{<deque>, <function-declaration>} */
descriptor_t cdeclZc_declarationsZcompute_closure_METH_5(descriptor_t *orig_sp, descriptor_t A0 /* results */, heapptr_t A1 /* decl */)
{
    descriptor_t *cluster_0_top;
    descriptor_t L_results; /* results */
    heapptr_t L_decl; /* decl */
    boolean L_declaredQUERY; /* declared? */
    heapptr_t L_type; /* type */
    heapptr_t L_result; /* result */
    heapptr_t L_type_2; /* type */
    descriptor_t L_parameters; /* parameters */
    descriptor_t L_initial_state; /* initial-state */
    descriptor_t L_limit; /* limit */
    heapptr_t L_next_state; /* next-state */
    heapptr_t L_finished_stateQUERY; /* finished-state? */
    heapptr_t L_current_element; /* current-element */
    descriptor_t L_state; /* state */
    descriptor_t L_state_2; /* state */
    descriptor_t L_condition; /* condition */
    descriptor_t L_arg0; /* arg0 */
    descriptor_t L_arg0_2; /* arg0 */
    descriptor_t L_temp;
    descriptor_t L_temp_2;
    descriptor_t L_temp_3;

    L_results = A0;
    L_decl = A1;
    L_declaredQUERY = SLOT(L_decl, bool, 36);
    if (L_declaredQUERY) {
    }
    else {
	SLOT(L_decl, bool, 36) = TRUE;
	L_type = SLOT(L_decl, heapptr_t, 40);
	if ((cdeclZc_declarationsZCLS_function_type_declaration.heapptr == SLOT(L_type, heapptr_t, 0))) {
	    L_result = SLOT(L_type, heapptr_t, 40);
	    /* compute-closure{<deque>, <result-declaration>} */
	    cdeclZc_declarationsZcompute_closure_METH_3(orig_sp, L_results, L_result);
	    L_type_2 = SLOT(L_decl, heapptr_t, 40);
	    if ((cdeclZc_declarationsZCLS_function_type_declaration.heapptr == SLOT(L_type_2, heapptr_t, 0))) {
		L_parameters = SLOT(L_type_2, descriptor_t, 44);
		orig_sp[0] = L_parameters;
		/* forward-iteration-protocol */
		cluster_0_top = GENERAL_ENTRY(dylanZdylan_visceraZforward_iteration_protocol.heapptr)(orig_sp + 1, dylanZdylan_visceraZforward_iteration_protocol.heapptr, 1);
		L_initial_state = orig_sp[0];
		L_limit = orig_sp[1];
		L_next_state = orig_sp[2].heapptr;
		L_finished_stateQUERY = orig_sp[3].heapptr;
		L_current_element = orig_sp[5].heapptr;
		L_state = L_initial_state;
		while (1) {
		    L_state_2 = L_state;
		    orig_sp[0] = L_parameters;
		    orig_sp[1] = L_state_2;
		    orig_sp[2] = L_limit;
		    cluster_0_top = GENERAL_ENTRY(L_finished_stateQUERY)(orig_sp + 3, L_finished_stateQUERY, 3);
		    L_condition = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
		    if ((L_condition.heapptr != obj_False)) {
			goto block0;
		    }
		    else {
			orig_sp[0] = L_parameters;
			orig_sp[1] = L_state_2;
			cluster_0_top = GENERAL_ENTRY(L_current_element)(orig_sp + 2, L_current_element, 2);
			L_arg0 = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
			if ((cdeclZc_declarationsZCLS_varargs_declaration.heapptr == SLOT(L_arg0.heapptr, heapptr_t, 0))) {
			}
			else {
			    orig_sp[0] = L_results;
			    orig_sp[1] = L_arg0;
			    /* compute-closure */
			    GENERAL_ENTRY(cdeclZc_declarationsZcompute_closure.heapptr)(orig_sp + 2, cdeclZc_declarationsZcompute_closure.heapptr, 2);
			}
			orig_sp[0] = L_parameters;
			orig_sp[1] = L_state_2;
			cluster_0_top = GENERAL_ENTRY(L_next_state)(orig_sp + 2, L_next_state, 2);
			L_arg0_2 = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
			L_state = L_arg0_2;
		    }
		}
	      block0:;
		if ((dylanZdylan_visceraZCLS_simple_object_deque.heapptr == SLOT(L_results.heapptr, heapptr_t, 0))) {
		    L_temp.heapptr = L_decl;
		    L_temp.dataword.l = 0;
		    /* push-last{<simple-object-deque>, <object>} */
		    dylanZdylan_visceraZpush_last_METH(orig_sp, L_results.heapptr, L_temp);
		}
		else {
		    /* type-error{<object>, <type>} */
		    dylanZdylan_visceraZtype_error_METH(orig_sp, L_results, dylanZdylan_visceraZCLS_simple_object_deque.heapptr);
		    not_reached();
		}
	    }
	    else {
		L_temp_2.heapptr = L_type_2;
		L_temp_2.dataword.l = 0;
		/* type-error{<object>, <type>} */
		dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp_2, cdeclZc_declarationsZCLS_function_type_declaration.heapptr);
		not_reached();
	    }
	}
	else {
	    L_temp_3.heapptr = L_type;
	    L_temp_3.dataword.l = 0;
	    /* type-error{<object>, <type>} */
	    dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp_3, cdeclZc_declarationsZCLS_function_type_declaration.heapptr);
	    not_reached();
	}
    }
    return L_results;
}


/* Define Method mapped-name{<object-declaration>} */

/* mapped-name{<object-declaration>} */
descriptor_t cdeclZc_declarationsZmapped_name_METH(descriptor_t *orig_sp, heapptr_t A0 /* decl */, descriptor_t A1 /* explicit-only? */)
{
    heapptr_t L_decl; /* decl */
    descriptor_t L_explicit_onlyQUERY; /* explicit-only? */
    descriptor_t L_map_type; /* map-type */
    descriptor_t L_result; /* result */
    heapptr_t L_type; /* type */
    heapptr_t L_instance; /* instance */
    descriptor_t L_temp; /* temp */

    L_decl = A0;
    L_explicit_onlyQUERY = A1;
    L_map_type = SLOT(L_decl, descriptor_t, 28);
    if ((L_map_type.heapptr != obj_False)) {
	L_result = L_map_type;
    }
    else {
	L_type = SLOT(L_decl, heapptr_t, 40);
	/* maker for <simple-object-vector> */
	L_instance = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 2, dylanZfalse);
	SLOT(L_instance, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = cdeclZSYM_explicit_onlyQUERY;
	SLOT(L_instance, descriptor_t, 8 + 1 * sizeof(descriptor_t)) = dylanZtrue;
	/* discriminator for mapped-name */
	L_temp = cdeclZc_declarationsZmapped_name_DISCRIM_FUN(orig_sp, L_type, L_instance);
	if ((L_temp.heapptr != obj_False)) {
	    L_result = L_temp;
	}
	else if ((L_explicit_onlyQUERY.heapptr != obj_False)) {
	    L_result = dylanZfalse;
	}
	else {
	    /* type-name{<object-declaration>} */
	    L_result = cdeclZc_declarationsZtype_name_METH_2(orig_sp, L_decl);
	}
    }
    return L_result;
}


/* Define Method type-name{<object-declaration>} */

/* type-name{<object-declaration>} */
descriptor_t cdeclZc_declarationsZtype_name_METH_2(descriptor_t *orig_sp, heapptr_t A0 /* decl */)
{
    heapptr_t L_decl; /* decl */
    descriptor_t L_equated; /* equated */
    descriptor_t L_result; /* result */
    heapptr_t L_type; /* type */

    L_decl = A0;
    L_equated = SLOT(L_decl, descriptor_t, 52);
    if ((L_equated.heapptr != obj_False)) {
	L_result = L_equated;
    }
    else {
	L_type = SLOT(L_decl, heapptr_t, 40);
	/* dylan-name{<declaration>} */
	L_result = cdeclZc_declarationsZdylan_name_METH(orig_sp, L_type);
    }
    return L_result;
}


/* Define Method find-dylan-name{<value-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */

/* find-dylan-name{<value-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
descriptor_t cdeclZc_declarationsZfind_dylan_name_METH_8(descriptor_t *orig_sp, heapptr_t A0 /* decl */, heapptr_t A1 /* mapper */, descriptor_t A2 /* prefix */, descriptor_t A3 /* containers */, boolean A4 /* read-only */, descriptor_t A5 /* sealing */)
{
    descriptor_t *cluster_0_top;
    heapptr_t L_decl; /* decl */
    descriptor_t L_sealing; /* sealing */
    heapptr_t L_mapper; /* mapper */
    descriptor_t L_prefix; /* prefix */
    descriptor_t L_containers; /* containers */
    boolean L_read_only; /* read-only */
    descriptor_t L_sealed_string; /* sealed-string */
    boolean L_condition; /* condition */
    descriptor_t L_d_name; /* d-name */
    descriptor_t L_result; /* result */
    descriptor_t L_new_value; /* new-value */

    L_decl = A0;
    L_sealing = A5;
    L_mapper = A1;
    L_prefix = A2;
    L_containers = A3;
    L_read_only = A4;
    L_sealed_string = SLOT(L_decl, descriptor_t, 44);
    orig_sp[0] = L_sealed_string;
    orig_sp[1] = dylanZstr_21;
    /* = */
    cluster_0_top = GENERAL_ENTRY(dylanZdylan_visceraZEQUAL.heapptr)(orig_sp + 2, dylanZdylan_visceraZEQUAL.heapptr, 2);
    L_condition = (orig_sp == cluster_0_top ? FALSE : (orig_sp[0].heapptr != obj_False));
    if (L_condition) {
	SLOT(L_decl, descriptor_t, 44) = L_sealing;
    }
    else {
    }
    L_d_name = SLOT(L_decl, descriptor_t, 20);
    if ((L_d_name.heapptr != obj_False)) {
	L_result = L_d_name;
    }
    else {
	/* discriminator for compute-dylan-name */
	L_new_value = cdeclZc_declarationsZcompute_dylan_name_DISCRIM_FUN(orig_sp, L_decl, L_mapper, L_prefix, L_containers, L_read_only, L_sealing);
	SLOT(L_decl, descriptor_t, 20) = L_new_value;
	L_result = L_new_value;
    }
    return L_result;
}


/* Define Method find-dylan-name{<object-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */

/* find-dylan-name{<object-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
descriptor_t cdeclZc_declarationsZfind_dylan_name_METH_4(descriptor_t *orig_sp, heapptr_t A0 /* decl */, heapptr_t A1 /* mapper */, descriptor_t A2 /* prefix */, descriptor_t A3 /* containers */, boolean A4 /* rd-only */, descriptor_t A5 /* sealing */)
{
    descriptor_t *cluster_0_top;
    heapptr_t L_decl; /* decl */
    boolean L_rd_only; /* rd-only */
    descriptor_t L_sealing; /* sealing */
    heapptr_t L_mapper; /* mapper */
    descriptor_t L_prefix; /* prefix */
    descriptor_t L_containers; /* containers */
    descriptor_t L_sealed_string; /* sealed-string */
    boolean L_condition; /* condition */
    heapptr_t L_read_only; /* read-only */
    descriptor_t L_d_name; /* d-name */
    descriptor_t L_result; /* result */
    descriptor_t L_new_value; /* new-value */

    L_decl = A0;
    L_rd_only = A4;
    L_sealing = A5;
    L_mapper = A1;
    L_prefix = A2;
    L_containers = A3;
    L_sealed_string = SLOT(L_decl, descriptor_t, 44);
    orig_sp[0] = L_sealed_string;
    orig_sp[1] = dylanZstr_21;
    /* = */
    cluster_0_top = GENERAL_ENTRY(dylanZdylan_visceraZEQUAL.heapptr)(orig_sp + 2, dylanZdylan_visceraZEQUAL.heapptr, 2);
    L_condition = (orig_sp == cluster_0_top ? FALSE : (orig_sp[0].heapptr != obj_False));
    if (L_condition) {
	SLOT(L_decl, descriptor_t, 44) = L_sealing;
    }
    else {
    }
    L_read_only = SLOT(L_decl, heapptr_t, 60);
    if ((L_read_only == dylanZempty_list.heapptr)) {
	SLOT(L_decl, heapptr_t, 60) = (L_rd_only ? obj_True : obj_False);
    }
    else {
    }
    L_d_name = SLOT(L_decl, descriptor_t, 20);
    if ((L_d_name.heapptr != obj_False)) {
	L_result = L_d_name;
    }
    else {
	/* discriminator for compute-dylan-name */
	L_new_value = cdeclZc_declarationsZcompute_dylan_name_DISCRIM_FUN(orig_sp, L_decl, L_mapper, L_prefix, L_containers, L_rd_only, L_sealing);
	SLOT(L_decl, descriptor_t, 20) = L_new_value;
	L_result = L_new_value;
    }
    return L_result;
}


/* Define Method compute-dylan-name{<object-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */

extern descriptor_t cdeclZSYM_variable;	/* #"variable" */

/* compute-dylan-name{<object-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
descriptor_t cdeclZc_declarationsZcompute_dylan_name_METH_7(descriptor_t *orig_sp, heapptr_t A0 /* decl */, heapptr_t A1 /* mapper */, descriptor_t A2 /* prefix */, descriptor_t A3 /* containers */, boolean A4, descriptor_t A5)
{
    descriptor_t *cluster_0_top;
    heapptr_t L_mapper; /* mapper */
    descriptor_t L_prefix; /* prefix */
    descriptor_t L_containers; /* containers */
    descriptor_t L_simple_name; /* simple-name */
    descriptor_t L_temp; /* temp */
    boolean L_condition; /* condition */

    L_mapper = A1;
    L_prefix = A2;
    L_containers = A3;
    L_simple_name = SLOT(A0, descriptor_t, 4);
    orig_sp[0] = cdeclZSYM_variable;
    orig_sp[1] = L_prefix;
    orig_sp[2] = L_simple_name;
    orig_sp[3] = L_containers;
    cluster_0_top = GENERAL_ENTRY(L_mapper)(orig_sp + 4, L_mapper, 4);
    L_temp = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
    /* %instance?{<object>, <class>} */
    L_condition = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_temp, dylanZdylan_visceraZCLS_string.heapptr);
    if (L_condition) {
	return L_temp;
    }
    else {
	/* type-error{<object>, <type>} */
	dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp, dylanZdylan_visceraZCLS_string.heapptr);
	not_reached();
    }
}


/* Define Method find-dylan-name{<variable-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */

extern descriptor_t cdeclZstr_261;	/* "-setter" */

extern descriptor_t cdeclZdylan_visceraZconcatenate;	/* concatenate */

/* find-dylan-name{<variable-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
descriptor_t cdeclZc_declarationsZfind_dylan_name_METH_6(descriptor_t *orig_sp, heapptr_t A0 /* decl */, heapptr_t A1 /* mapper */, descriptor_t A2 /* prefix */, descriptor_t A3 /* containers */, boolean A4 /* rd-only */, descriptor_t A5 /* sealing */)
{
    descriptor_t *cluster_0_top;
    heapptr_t L_decl; /* decl */
    boolean L_rd_only; /* rd-only */
    descriptor_t L_sealing; /* sealing */
    heapptr_t L_mapper; /* mapper */
    descriptor_t L_prefix; /* prefix */
    descriptor_t L_containers; /* containers */
    descriptor_t L_sealed_string; /* sealed-string */
    boolean L_condition; /* condition */
    heapptr_t L_read_only; /* read-only */
    descriptor_t L_d_name; /* d-name */
    descriptor_t L_new_value; /* new-value */
    descriptor_t L_getter; /* getter */
    descriptor_t L_new_value_2; /* new-value */
    descriptor_t L_d_name_2; /* d-name */
    descriptor_t L_setter; /* setter */
    descriptor_t L_new_value_3; /* new-value */
    descriptor_t L_d_name_3; /* d-name */
    descriptor_t L_new_value_4; /* new-value */
    boolean L_temp; /* temp */
    boolean L_temp_2; /* temp */
    descriptor_t L_temp_3; /* temp */

    L_decl = A0;
    L_rd_only = A4;
    L_sealing = A5;
    L_mapper = A1;
    L_prefix = A2;
    L_containers = A3;
    L_sealed_string = SLOT(L_decl, descriptor_t, 44);
    orig_sp[0] = L_sealed_string;
    orig_sp[1] = dylanZstr_21;
    /* = */
    cluster_0_top = GENERAL_ENTRY(dylanZdylan_visceraZEQUAL.heapptr)(orig_sp + 2, dylanZdylan_visceraZEQUAL.heapptr, 2);
    L_condition = (orig_sp == cluster_0_top ? FALSE : (orig_sp[0].heapptr != obj_False));
    if (L_condition) {
	SLOT(L_decl, descriptor_t, 44) = L_sealing;
    }
    else {
    }
    L_read_only = SLOT(L_decl, heapptr_t, 60);
    if ((L_read_only == dylanZempty_list.heapptr)) {
	SLOT(L_decl, heapptr_t, 60) = (L_rd_only ? obj_True : obj_False);
    }
    else {
    }
    L_d_name = SLOT(L_decl, descriptor_t, 20);
    if ((L_d_name.heapptr != obj_False)) {
    }
    else {
	/* compute-dylan-name{<object-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
	L_new_value = cdeclZc_declarationsZcompute_dylan_name_METH_7(orig_sp, L_decl, L_mapper, L_prefix, L_containers, L_rd_only, L_sealing);
	SLOT(L_decl, descriptor_t, 20) = L_new_value;
    }
    L_getter = SLOT(L_decl, descriptor_t, 64);
    if ((L_getter.heapptr != obj_False)) {
	L_new_value_2 = L_getter;
    }
    else {
	L_d_name_2 = SLOT(L_decl, descriptor_t, 20);
	L_new_value_2 = L_d_name_2;
    }
    SLOT(L_decl, descriptor_t, 64) = L_new_value_2;
    L_setter = SLOT(L_decl, descriptor_t, 72);
    if ((L_setter.heapptr != obj_False)) {
	L_new_value_3 = L_setter;
    }
    else {
	L_d_name_3 = SLOT(L_decl, descriptor_t, 20);
	orig_sp[0] = L_d_name_3;
	orig_sp[1] = cdeclZstr_261;
	/* concatenate */
	cluster_0_top = GENERAL_ENTRY(cdeclZdylan_visceraZconcatenate.heapptr)(orig_sp + 2, cdeclZdylan_visceraZconcatenate.heapptr, 2);
	L_new_value_3 = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
    }
    L_new_value_4 = L_new_value_3;
    /* %instance?{<object>, <class>} */
    L_temp = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_new_value_4, dylanZdylan_visceraZCLS_string.heapptr);
    if (L_temp) {
	L_temp_2 = TRUE;
    }
    else {
	L_temp_2 = FALSE;
    }
    if (L_temp_2) {
	L_temp_3 = L_new_value_4;
	SLOT(L_decl, descriptor_t, 72) = L_temp_3;
	return L_temp_3;
    }
    else {
	/* type-error{<object>, <type>} */
	dylanZdylan_visceraZtype_error_METH(orig_sp, L_new_value_4, cdeclZliteral_18.heapptr);
	not_reached();
    }
}


/* Define Method compute-closure{<deque>, <object-declaration>} */

/* compute-closure{<deque>, <object-declaration>} */
descriptor_t cdeclZc_declarationsZcompute_closure_METH_4(descriptor_t *orig_sp, descriptor_t A0 /* results */, heapptr_t A1 /* decl */)
{
    descriptor_t L_results; /* results */
    heapptr_t L_decl; /* decl */
    boolean L_declaredQUERY; /* declared? */
    heapptr_t L_type; /* type */
    descriptor_t L_temp;
    descriptor_t L_temp_2;

    L_results = A0;
    L_decl = A1;
    L_declaredQUERY = SLOT(L_decl, bool, 36);
    if (L_declaredQUERY) {
    }
    else {
	SLOT(L_decl, bool, 36) = TRUE;
	L_type = SLOT(L_decl, heapptr_t, 40);
	L_temp.heapptr = L_type;
	L_temp.dataword.l = 0;
	orig_sp[0] = L_results;
	orig_sp[1] = L_temp;
	/* compute-closure */
	GENERAL_ENTRY(cdeclZc_declarationsZcompute_closure.heapptr)(orig_sp + 2, cdeclZc_declarationsZcompute_closure.heapptr, 2);
	if ((dylanZdylan_visceraZCLS_simple_object_deque.heapptr == SLOT(L_results.heapptr, heapptr_t, 0))) {
	    L_temp_2.heapptr = L_decl;
	    L_temp_2.dataword.l = 0;
	    /* push-last{<simple-object-deque>, <object>} */
	    dylanZdylan_visceraZpush_last_METH(orig_sp, L_results.heapptr, L_temp_2);
	}
	else {
	    /* type-error{<object>, <type>} */
	    dylanZdylan_visceraZtype_error_METH(orig_sp, L_results, dylanZdylan_visceraZCLS_simple_object_deque.heapptr);
	    not_reached();
	}
    }
    return L_results;
}


/* Define Method find-dylan-name{<arg-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */

/* find-dylan-name{<arg-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
descriptor_t cdeclZc_declarationsZfind_dylan_name_METH_5(descriptor_t *orig_sp, heapptr_t A0 /* decl */, heapptr_t A1 /* mapper */, descriptor_t A2 /* prefix */, descriptor_t A3 /* containers */, boolean A4 /* rd-only */, descriptor_t A5 /* sealing */, heapptr_t A6)
{
    heapptr_t L_decl; /* decl */
    heapptr_t L_mapper; /* mapper */
    descriptor_t L_prefix; /* prefix */
    boolean L_rd_only; /* rd-only */
    descriptor_t L_sealing; /* sealing */
    descriptor_t L_containers; /* containers */
    heapptr_t L_original_type; /* original-type */
    heapptr_t L_original_type_2; /* original-type */
    heapptr_t L_PCTobject_class; /* %object-class */
    boolean L_temp; /* temp */
    descriptor_t L_result; /* result */

    L_decl = A0;
    L_mapper = A1;
    L_prefix = A2;
    L_rd_only = A4;
    L_sealing = A5;
    L_containers = A3;
    L_original_type = SLOT(L_decl, heapptr_t, 68);
    if ((L_original_type != obj_False)) {
	L_original_type_2 = SLOT(L_decl, heapptr_t, 68);
	L_PCTobject_class = SLOT(L_original_type_2, heapptr_t, 0);
	if ((cdeclZc_declarationsZCLS_bitfield_declaration.heapptr == L_PCTobject_class)) {
	    L_temp = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_incomplete_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_float_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_integer_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_predefined_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_typedef_declaration.heapptr == L_PCTobject_class)) {
	    L_temp = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_function_type_declaration.heapptr == L_PCTobject_class)) {
	    L_temp = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_vector_declaration.heapptr == L_PCTobject_class)) {
	    L_temp = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_pointer_declaration.heapptr == L_PCTobject_class)) {
	    L_temp = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_enum_declaration.heapptr == L_PCTobject_class)) {
	    L_temp = TRUE;
	}
	else if ((cdeclZc_declarationsZCLS_struct_declaration.heapptr == L_PCTobject_class)) {
	    L_temp = TRUE;
	}
	else {
	    L_temp = (cdeclZc_declarationsZCLS_union_declaration.heapptr == L_PCTobject_class);
	}
	if (L_temp) {
	    /* discriminator for find-dylan-name */
	    cdeclZc_declarationsZfind_dylan_name_DISCRIM_FUN(orig_sp, L_original_type_2, L_mapper, L_prefix, dylanZempty_list, L_rd_only, L_sealing);
	}
	else {
	    /* type-error{<object>, <type>} */
	    dylanZdylan_visceraZtype_error_METH(orig_sp, dylanZfalse, cdeclZc_declarationsZCLS_declaration.heapptr);
	    not_reached();
	}
    }
    else {
    }
    /* find-dylan-name{<object-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
    L_result = cdeclZc_declarationsZfind_dylan_name_METH_4(orig_sp, L_decl, L_mapper, L_prefix, L_containers, L_rd_only, L_sealing);
    return L_result;
}


/* Define Method compute-dylan-name{<arg-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */

/* compute-dylan-name{<arg-declaration>, <function>, <string>, <sequence>, <boolean>, <string>} */
descriptor_t cdeclZc_declarationsZcompute_dylan_name_METH_8(descriptor_t *orig_sp, heapptr_t A0 /* decl */, heapptr_t A1 /* mapper */, descriptor_t A2 /* prefix */, descriptor_t A3 /* containers */, boolean A4, descriptor_t A5)
{
    descriptor_t *cluster_0_top;
    heapptr_t L_mapper; /* mapper */
    descriptor_t L_prefix; /* prefix */
    descriptor_t L_containers; /* containers */
    descriptor_t L_simple_name; /* simple-name */
    descriptor_t L_temp; /* temp */
    boolean L_condition; /* condition */

    L_mapper = A1;
    L_prefix = A2;
    L_containers = A3;
    L_simple_name = SLOT(A0, descriptor_t, 4);
    orig_sp[0] = cdeclZSYM_variable;
    orig_sp[1] = L_prefix;
    orig_sp[2] = L_simple_name;
    orig_sp[3] = L_containers;
    cluster_0_top = GENERAL_ENTRY(L_mapper)(orig_sp + 4, L_mapper, 4);
    L_temp = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
    /* %instance?{<object>, <class>} */
    L_condition = dylanZdylan_visceraZPCTinstanceQUERY_METH(orig_sp, L_temp, dylanZdylan_visceraZCLS_string.heapptr);
    if (L_condition) {
	return L_temp;
    }
    else {
	/* type-error{<object>, <type>} */
	dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp, dylanZdylan_visceraZCLS_string.heapptr);
	not_reached();
    }
}


/* Define Method compute-closure{<deque>, <result-declaration>} */

/* compute-closure{<deque>, <result-declaration>} */
descriptor_t cdeclZc_declarationsZcompute_closure_METH_3(descriptor_t *orig_sp, descriptor_t A0 /* results */, heapptr_t A1 /* decl */)
{
    descriptor_t *cluster_0_top;
    descriptor_t L_results; /* results */
    heapptr_t L_type; /* type */
    descriptor_t L_temp;
    descriptor_t L_results_2; /* results */

    L_results = A0;
    L_type = SLOT(A1, heapptr_t, 40);
    L_temp.heapptr = L_type;
    L_temp.dataword.l = 0;
    orig_sp[0] = L_results;
    orig_sp[1] = L_temp;
    /* compute-closure */
    cluster_0_top = GENERAL_ENTRY(cdeclZc_declarationsZcompute_closure.heapptr)(orig_sp + 2, cdeclZc_declarationsZcompute_closure.heapptr, 2);
    L_results_2 = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
    return L_results_2;
}


/* Define Method compute-closure{<deque>, <arg-declaration>} */

/* compute-closure{<deque>, <arg-declaration>} */
descriptor_t cdeclZc_declarationsZcompute_closure_METH_2(descriptor_t *orig_sp, descriptor_t A0 /* results */, heapptr_t A1 /* decl */)
{
    descriptor_t *cluster_0_top;
    descriptor_t L_results; /* results */
    heapptr_t L_decl; /* decl */
    heapptr_t L_original_type; /* original-type */
    heapptr_t L_original_type_2; /* original-type */
    descriptor_t L_temp;
    heapptr_t L_type; /* type */
    descriptor_t L_temp_2;
    descriptor_t L_results_2; /* results */

    L_results = A0;
    L_decl = A1;
    L_original_type = SLOT(L_decl, heapptr_t, 68);
    if ((L_original_type != obj_False)) {
	L_original_type_2 = SLOT(L_decl, heapptr_t, 68);
	L_temp.heapptr = L_original_type_2;
	L_temp.dataword.l = 0;
	orig_sp[0] = L_results;
	orig_sp[1] = L_temp;
	/* compute-closure */
	GENERAL_ENTRY(cdeclZc_declarationsZcompute_closure.heapptr)(orig_sp + 2, cdeclZc_declarationsZcompute_closure.heapptr, 2);
    }
    else {
    }
    L_type = SLOT(L_decl, heapptr_t, 40);
    L_temp_2.heapptr = L_type;
    L_temp_2.dataword.l = 0;
    orig_sp[0] = L_results;
    orig_sp[1] = L_temp_2;
    /* compute-closure */
    cluster_0_top = GENERAL_ENTRY(cdeclZc_declarationsZcompute_closure.heapptr)(orig_sp + 2, cdeclZc_declarationsZcompute_closure.heapptr, 2);
    L_results_2 = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
    return L_results_2;
}


/* Define Method find-parameter{<function-declaration>, <object>} */

extern descriptor_t cdeclZc_declarationsZfind_parameter_2;	/* find-parameter */

/* find-parameter{<function-declaration>, <object>} */
heapptr_t cdeclZc_declarationsZfind_parameter_METH_4(descriptor_t *orig_sp, heapptr_t A0 /* decl */, descriptor_t A1 /* param */)
{
    descriptor_t *cluster_0_top;
    descriptor_t L_param; /* param */
    heapptr_t L_type; /* type */
    descriptor_t L_temp;
    heapptr_t L_result; /* result */

    L_param = A1;
    L_type = SLOT(A0, heapptr_t, 40);
    L_temp.heapptr = L_type;
    L_temp.dataword.l = 0;
    orig_sp[0] = L_temp;
    orig_sp[1] = L_param;
    /* find-parameter */
    cluster_0_top = GENERAL_ENTRY(cdeclZc_declarationsZfind_parameter_2.heapptr)(orig_sp + 2, cdeclZc_declarationsZfind_parameter_2.heapptr, 2);
    L_result = (orig_sp == cluster_0_top ? obj_False : orig_sp[0].heapptr);
    return L_result;
}


/* Define Method find-parameter{<function-type-declaration>, <integer>} */

extern descriptor_t cdeclZstr_262;	/* "No such parameter: %d." */

/* find-parameter{<function-type-declaration>, <integer>} */
heapptr_t cdeclZc_declarationsZfind_parameter_METH_3(descriptor_t *orig_sp, heapptr_t A0 /* decl */, long A1 /* param */)
{
    descriptor_t *cluster_0_top;
    long L_param; /* param */
    descriptor_t L_parameters; /* parameters */
    descriptor_t L_temp;
    descriptor_t L_temp_2; /* temp */
    heapptr_t L_PCTobject_class; /* %object-class */
    boolean L_temp_3; /* temp */
    heapptr_t L_instance; /* instance */
    descriptor_t L_temp_4;

    L_param = A1;
    L_parameters = SLOT(A0, descriptor_t, 44);
    L_temp.heapptr = cdeclZliteral_6.heapptr;
    L_temp.dataword.l = (L_param - 1);
    orig_sp[0] = L_parameters;
    orig_sp[1] = L_temp;
    orig_sp[2] = dylanZSYM_default;
    orig_sp[3] = dylanZfalse;
    /* element */
    cluster_0_top = GENERAL_ENTRY(dylanZdylan_visceraZelement.heapptr)(orig_sp + 4, dylanZdylan_visceraZelement.heapptr, 4);
    L_temp_2 = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
    if ((L_temp_2.heapptr != obj_False)) {
	L_PCTobject_class = SLOT(L_temp_2.heapptr, heapptr_t, 0);
	if ((cdeclZc_declarationsZCLS_varargs_declaration.heapptr == L_PCTobject_class)) {
	    L_temp_3 = TRUE;
	}
	else {
	    L_temp_3 = (cdeclZc_declarationsZCLS_arg_declaration.heapptr == L_PCTobject_class);
	}
	if (L_temp_3) {
	    return L_temp_2.heapptr;
	}
	else {
	    /* type-error{<object>, <type>} */
	    dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp_2, cdeclZc_declarationsZCLS_arg_declaration.heapptr);
	    not_reached();
	}
    }
    else {
	/* maker for <simple-object-vector> */
	L_instance = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 1, dylanZfalse);
	L_temp_4.heapptr = cdeclZliteral_6.heapptr;
	L_temp_4.dataword.l = L_param;
	SLOT(L_instance, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_temp_4;
	/* error{<string>} */
	dylanZdylan_visceraZerror_METH(orig_sp, cdeclZstr_262, L_instance);
	not_reached();
    }
}


/* Define Method find-parameter{<function-type-declaration>, <string>} */

extern descriptor_t cdeclZstr_263;	/* "No such parameter: %s." */

/* find-parameter{<function-type-declaration>, <string>} */
heapptr_t cdeclZc_declarationsZfind_parameter_METH_2(descriptor_t *orig_sp, heapptr_t A0 /* decl */, descriptor_t A1 /* param */)
{
    descriptor_t *cluster_0_top;
    descriptor_t L_param; /* param */
    descriptor_t L_parameters; /* parameters */
    descriptor_t L_state; /* state */
    descriptor_t L_limit; /* limit */
    heapptr_t L_next; /* next */
    heapptr_t L_doneQUERY; /* done? */
    heapptr_t L_curel; /* curel */
    descriptor_t L_doneQUERY_2; /* done? */
    descriptor_t L_current_element; /* current-element */
    heapptr_t L_PCTobject_class; /* %object-class */
    boolean L_temp; /* temp */
    heapptr_t L_temp_2; /* temp */
    descriptor_t L_arg0; /* arg0 */
    boolean L_condition; /* condition */
    heapptr_t L_result0; /* result0 */
    heapptr_t L_res; /* res */
    heapptr_t L_res_2; /* res */
    heapptr_t L_res_3; /* res */
    heapptr_t L_res_4; /* res */
    heapptr_t L_PCTobject_class_2; /* %object-class */
    boolean L_temp_3; /* temp */
    descriptor_t L_temp_4;
    heapptr_t L_instance; /* instance */

    L_param = A1;
    L_parameters = SLOT(A0, descriptor_t, 44);
    orig_sp[0] = L_parameters;
    /* forward-iteration-protocol */
    cluster_0_top = GENERAL_ENTRY(dylanZdylan_visceraZforward_iteration_protocol.heapptr)(orig_sp + 1, dylanZdylan_visceraZforward_iteration_protocol.heapptr, 1);
    L_state = orig_sp[0];
    L_limit = orig_sp[1];
    L_next = orig_sp[2].heapptr;
    L_doneQUERY = orig_sp[3].heapptr;
    L_curel = orig_sp[5].heapptr;
    while (1) {
	orig_sp[0] = L_parameters;
	orig_sp[1] = L_state;
	orig_sp[2] = L_limit;
	cluster_0_top = GENERAL_ENTRY(L_doneQUERY)(orig_sp + 3, L_doneQUERY, 3);
	L_doneQUERY_2 = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
	if ((L_doneQUERY_2.heapptr != obj_False)) {
	    goto block0;
	}
	else {
	    orig_sp[0] = L_parameters;
	    orig_sp[1] = L_state;
	    cluster_0_top = GENERAL_ENTRY(L_curel)(orig_sp + 2, L_curel, 2);
	    L_current_element = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
	    L_PCTobject_class = SLOT(L_current_element.heapptr, heapptr_t, 0);
	    if ((cdeclZc_declarationsZCLS_varargs_declaration.heapptr == L_PCTobject_class)) {
		L_temp = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_arg_declaration.heapptr == L_PCTobject_class)) {
		L_temp = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_bitfield_declaration.heapptr == L_PCTobject_class)) {
		L_temp = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_incomplete_type_declaration.heapptr == L_PCTobject_class)) {
		L_temp = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_result_declaration.heapptr == L_PCTobject_class)) {
		L_temp = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_macro_declaration.heapptr == L_PCTobject_class)) {
		L_temp = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_function_declaration.heapptr == L_PCTobject_class)) {
		L_temp = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_variable_declaration.heapptr == L_PCTobject_class)) {
		L_temp = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_enum_slot_declaration.heapptr == L_PCTobject_class)) {
		L_temp = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_coalesced_bitfields.heapptr == L_PCTobject_class)) {
		L_temp = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_slot_declaration.heapptr == L_PCTobject_class)) {
		L_temp = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_object_declaration.heapptr == L_PCTobject_class)) {
		L_temp = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_float_type_declaration.heapptr == L_PCTobject_class)) {
		L_temp = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_integer_type_declaration.heapptr == L_PCTobject_class)) {
		L_temp = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_predefined_type_declaration.heapptr == L_PCTobject_class)) {
		L_temp = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_typedef_declaration.heapptr == L_PCTobject_class)) {
		L_temp = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_function_type_declaration.heapptr == L_PCTobject_class)) {
		L_temp = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_vector_declaration.heapptr == L_PCTobject_class)) {
		L_temp = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_pointer_declaration.heapptr == L_PCTobject_class)) {
		L_temp = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_enum_declaration.heapptr == L_PCTobject_class)) {
		L_temp = TRUE;
	    }
	    else if ((cdeclZc_declarationsZCLS_struct_declaration.heapptr == L_PCTobject_class)) {
		L_temp = TRUE;
	    }
	    else {
		L_temp = (cdeclZc_declarationsZCLS_union_declaration.heapptr == L_PCTobject_class);
	    }
	    if (L_temp) {
		L_temp_2 = L_current_element.heapptr;
		/* simple-name{<declaration>} */
		L_arg0 = cdeclZc_declarationsZsimple_name_METH(orig_sp, L_temp_2);
		orig_sp[0] = L_arg0;
		orig_sp[1] = L_param;
		/* = */
		cluster_0_top = GENERAL_ENTRY(dylanZdylan_visceraZEQUAL.heapptr)(orig_sp + 2, dylanZdylan_visceraZEQUAL.heapptr, 2);
		L_condition = (orig_sp == cluster_0_top ? FALSE : (orig_sp[0].heapptr != obj_False));
		if (L_condition) {
		    L_result0 = L_temp_2;
		}
		else {
		    L_result0 = obj_False;
		}
		L_res = L_result0;
		if ((L_res != obj_False)) {
		    L_res_2 = L_res;
		    goto block1;
		}
		else {
		    orig_sp[0] = L_parameters;
		    orig_sp[1] = L_state;
		    cluster_0_top = GENERAL_ENTRY(L_next)(orig_sp + 2, L_next, 2);
		    L_state = (orig_sp == cluster_0_top ? dylanZfalse : orig_sp[0]);
		}
	    }
	    else {
		/* type-error{<object>, <type>} */
		dylanZdylan_visceraZtype_error_METH(orig_sp, L_current_element, cdeclZc_declarationsZCLS_declaration.heapptr);
		not_reached();
	    }
	}
    }
  block0:;
    L_res_2 = obj_False;
  block1:;
    L_res_3 = L_res_2;
    if ((L_res_3 != obj_False)) {
	L_res_4 = L_res_3;
	L_PCTobject_class_2 = SLOT(L_res_4, heapptr_t, 0);
	if ((cdeclZc_declarationsZCLS_varargs_declaration.heapptr == L_PCTobject_class_2)) {
	    L_temp_3 = TRUE;
	}
	else {
	    L_temp_3 = (cdeclZc_declarationsZCLS_arg_declaration.heapptr == L_PCTobject_class_2);
	}
	if (L_temp_3) {
	    return L_res_4;
	}
	else {
	    L_temp_4.heapptr = L_res_4;
	    L_temp_4.dataword.l = 0;
	    /* type-error{<object>, <type>} */
	    dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp_4, cdeclZc_declarationsZCLS_arg_declaration.heapptr);
	    not_reached();
	}
    }
    else {
	/* maker for <simple-object-vector> */
	L_instance = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 1, dylanZfalse);
	SLOT(L_instance, descriptor_t, 8 + 0 * sizeof(descriptor_t)) = L_param;
	/* error{<string>} */
	dylanZdylan_visceraZerror_METH(orig_sp, cdeclZstr_263, L_instance);
	not_reached();
    }
}


/* Define Method find-parameter{<function-type-declaration>, <symbol>} */

extern descriptor_t cdeclZstr_264;	/* "Cannot currently identify parameters by symbols." */

/* find-parameter{<function-type-declaration>, <symbol>} */
heapptr_t cdeclZc_declarationsZfind_parameter_METH(descriptor_t *orig_sp, heapptr_t A0, heapptr_t A1)
{
    heapptr_t L_instance; /* instance */

    /* maker for <simple-object-vector> */
    L_instance = dylanZdylan_visceraZCLS_simple_object_vector_MAKER_FUN(orig_sp, 0, dylanZfalse);
    /* error{<string>} */
    dylanZdylan_visceraZerror_METH(orig_sp, cdeclZstr_264, L_instance);
    not_reached();
}


/* Define Method find-result{<function-declaration>} */

/* find-result{<function-declaration>} */
heapptr_t cdeclZc_declarationsZfind_result_METH(descriptor_t *orig_sp, heapptr_t A0 /* decl */)
{
    heapptr_t L_type; /* type */
    heapptr_t L_result; /* result */
    descriptor_t L_temp;

    L_type = SLOT(A0, heapptr_t, 40);
    if ((cdeclZc_declarationsZCLS_function_type_declaration.heapptr == SLOT(L_type, heapptr_t, 0))) {
	/* find-result{<function-type-declaration>} */
	L_result = cdeclZc_declarationsZfind_result_METH_2(orig_sp, L_type);
	return L_result;
    }
    else {
	L_temp.heapptr = L_type;
	L_temp.dataword.l = 0;
	/* type-error{<object>, <type>} */
	dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp, cdeclZc_declarationsZCLS_function_type_declaration.heapptr);
	not_reached();
    }
}


/* Define Method find-result{<function-type-declaration>} */

/* find-result{<function-type-declaration>} */
heapptr_t cdeclZc_declarationsZfind_result_METH_2(descriptor_t *orig_sp, heapptr_t A0 /* decl */)
{
    heapptr_t L_result; /* result */

    L_result = SLOT(A0, heapptr_t, 40);
    return L_result;
}


/* Define Method ignored?-setter{singleton(#t), <result-declaration>} */

/* ignored?-setter{singleton(#t), <result-declaration>} */
boolean cdeclZc_declarationsZignoredQUERY_setter_METH(descriptor_t *orig_sp, boolean A0 /* value */, heapptr_t A1 /* decl */)
{
    descriptor_t L_temp;
    descriptor_t L_temp_2; /* temp */
    heapptr_t L_PCTobject_class; /* %object-class */
    heapptr_t L_decl; /* decl */
    boolean L_temp_3; /* temp */

    if ((L_temp = cdeclZc_declarationsZvoid_type).heapptr == NULL) abort();
    L_temp_2 = L_temp;
    L_PCTobject_class = SLOT(L_temp_2.heapptr, heapptr_t, 0);
    L_decl = A1;
    if ((cdeclZc_declarationsZCLS_bitfield_declaration.heapptr == L_PCTobject_class)) {
	L_temp_3 = TRUE;
    }
    else if ((cdeclZc_declarationsZCLS_incomplete_type_declaration.heapptr == L_PCTobject_class)) {
	L_temp_3 = TRUE;
    }
    else if ((cdeclZc_declarationsZCLS_float_type_declaration.heapptr == L_PCTobject_class)) {
	L_temp_3 = TRUE;
    }
    else if ((cdeclZc_declarationsZCLS_integer_type_declaration.heapptr == L_PCTobject_class)) {
	L_temp_3 = TRUE;
    }
    else if ((cdeclZc_declarationsZCLS_predefined_type_declaration.heapptr == L_PCTobject_class)) {
	L_temp_3 = TRUE;
    }
    else if ((cdeclZc_declarationsZCLS_typedef_declaration.heapptr == L_PCTobject_class)) {
	L_temp_3 = TRUE;
    }
    else if ((cdeclZc_declarationsZCLS_function_type_declaration.heapptr == L_PCTobject_class)) {
	L_temp_3 = TRUE;
    }
    else if ((cdeclZc_declarationsZCLS_vector_declaration.heapptr == L_PCTobject_class)) {
	L_temp_3 = TRUE;
    }
    else if ((cdeclZc_declarationsZCLS_pointer_declaration.heapptr == L_PCTobject_class)) {
	L_temp_3 = TRUE;
    }
    else if ((cdeclZc_declarationsZCLS_enum_declaration.heapptr == L_PCTobject_class)) {
	L_temp_3 = TRUE;
    }
    else if ((cdeclZc_declarationsZCLS_struct_declaration.heapptr == L_PCTobject_class)) {
	L_temp_3 = TRUE;
    }
    else {
	L_temp_3 = (cdeclZc_declarationsZCLS_union_declaration.heapptr == L_PCTobject_class);
    }
    if (L_temp_3) {
	SLOT(L_decl, heapptr_t, 40) = L_temp_2.heapptr;
	return TRUE;
    }
    else {
	/* type-error{<object>, <type>} */
	dylanZdylan_visceraZtype_error_METH(orig_sp, L_temp_2, cdeclZc_declarationsZCLS_type_declaration.heapptr);
	not_reached();
    }
}


/* Define Method argument-direction-setter{<symbol>, <arg-declaration>} */

extern descriptor_t cdeclZSYM_in;	/* #"in" */

extern descriptor_t cdeclZstr_265;	/* "'Out' parameter is not an instance of a pointer type." */

extern descriptor_t cdeclZstr_266;	/* "Parameter direction cannot be respecified." */

/* argument-direction-setter{<symbol>, <arg-declaration>} */
heapptr_t cdeclZc_declarationsZargument_direction_setter_METH(descriptor_t *orig_sp, heapptr_t A0 /* dir */, heapptr_t A1 /* decl */)
{
    descriptor_t *cluster_0_top;
    heapptr_t L_dir; /* dir */
    heapptr_t L_decl; /* decl */
    heapptr_t L_direction; /* direction */
    descriptor_
