#include Scheme_Object *scheme_str; Scheme_Object *scheme_initialize(Scheme_Env *glob_env) { Scheme_Env *env; Scheme_Object **names; Scheme_Object **values; Scheme_Object *struct_name, *field_names; int i, count, flags; const char *struct_fields[3] = { "fa", "fb", "fc" }; env = scheme_primitive_module(scheme_intern_symbol("mzexts"), glob_env); struct_name = scheme_intern_symbol("str"); scheme_str = scheme_make_struct_type(struct_name, NULL, NULL, 3, 0, NULL, NULL, NULL); field_names = scheme_null; for (i = 2; i >= 0 ; i--) field_names = scheme_make_pair(scheme_make_symbol(struct_fields[i]), field_names); flags = 0; names = scheme_make_struct_names(struct_name, field_names, flags, &count); values = scheme_make_struct_values(scheme_str, names, count, flags); for (i = 0; i < count; i++) scheme_add_global_symbol(names[i], values[i], env); scheme_finish_primitive_module(env); return scheme_void; } Scheme_Object *scheme_reload(Scheme_Env *env) { return scheme_void; /* Nothing special for reload */ } Scheme_Object *scheme_module_name() { return scheme_intern_symbol("mzexts"); }