/* ----------------------------------------------------------------------------
 * This file was automatically generated by SWIG (http://www.swig.org).
 * Version 1.3.24
 * 
 * This file is not intended to be easily readable and contains a number of 
 * coding conventions designed to improve portability and efficiency. Do not make
 * changes to this file unless you know what you are doing--modify the SWIG 
 * interface file instead. 
 * ----------------------------------------------------------------------------- */


#ifndef SWIG_TEMPLATE_DISAMBIGUATOR
#  if defined(__SUNPRO_CC) 
#    define SWIG_TEMPLATE_DISAMBIGUATOR template
#  else
#    define SWIG_TEMPLATE_DISAMBIGUATOR 
#  endif
#endif

/***********************************************************************
 * swigrun.swg
 *
 *     This file contains generic CAPI SWIG runtime support for pointer
 *     type checking.
 *
 ************************************************************************/

/* This should only be incremented when either the layout of swig_type_info changes,
   or for whatever reason, the runtime changes incompatibly */
#define SWIG_RUNTIME_VERSION "1"

/* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */
#ifdef SWIG_TYPE_TABLE
#define SWIG_QUOTE_STRING(x) #x
#define SWIG_EXPAND_AND_QUOTE_STRING(x) SWIG_QUOTE_STRING(x)
#define SWIG_TYPE_TABLE_NAME SWIG_EXPAND_AND_QUOTE_STRING(SWIG_TYPE_TABLE)
#else
#define SWIG_TYPE_TABLE_NAME
#endif

#include <string.h>

#ifndef SWIGINLINE
#if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
#  define SWIGINLINE inline
#else
#  define SWIGINLINE
#endif
#endif

/*
  You can use the SWIGRUNTIME and SWIGRUNTIMEINLINE macros for
  creating a static or dynamic library from the swig runtime code.
  In 99.9% of the cases, swig just needs to declare them as 'static'.
  
  But only do this if is strictly necessary, ie, if you have problems
  with your compiler or so.
*/
#ifndef SWIGRUNTIME
#define SWIGRUNTIME static
#endif
#ifndef SWIGRUNTIMEINLINE
#define SWIGRUNTIMEINLINE SWIGRUNTIME SWIGINLINE
#endif

#ifdef __cplusplus
extern "C" {
#endif

typedef void *(*swig_converter_func)(void *);
typedef struct swig_type_info *(*swig_dycast_func)(void **);

typedef struct swig_type_info {
  const char             *name;
  swig_converter_func     converter;
  const char             *str;
  void                   *clientdata;
  swig_dycast_func        dcast;
  struct swig_type_info  *next;
  struct swig_type_info  *prev;
} swig_type_info;

/* 
  Compare two type names skipping the space characters, therefore
  "char*" == "char *" and "Class<int>" == "Class<int >", etc.

  Return 0 when the two name types are equivalent, as in
  strncmp, but skipping ' '.
*/
SWIGRUNTIME int
SWIG_TypeNameComp(const char *f1, const char *l1,
		  const char *f2, const char *l2) {
  for (;(f1 != l1) && (f2 != l2); ++f1, ++f2) {
    while ((*f1 == ' ') && (f1 != l1)) ++f1;
    while ((*f2 == ' ') && (f2 != l2)) ++f2;
    if (*f1 != *f2) return *f1 - *f2;
  }
  return (l1 - f1) - (l2 - f2);
}

/*
  Check type equivalence in a name list like <name1>|<name2>|...
*/
SWIGRUNTIME int
SWIG_TypeEquiv(const char *nb, const char *tb) {
  int equiv = 0;
  const char* te = tb + strlen(tb);
  const char* ne = nb;
  while (!equiv && *ne) {
    for (nb = ne; *ne; ++ne) {
      if (*ne == '|') break;
    }
    equiv = SWIG_TypeNameComp(nb, ne, tb, te) == 0;
    if (*ne) ++ne;
  }
  return equiv;
}

/*
  Register a type mapping with the type-checking
*/
SWIGRUNTIME swig_type_info *
SWIG_TypeRegisterTL(swig_type_info **tl, swig_type_info *ti) {
  swig_type_info *tc, *head, *ret, *next;
  /* Check to see if this type has already been registered */
  tc = *tl;
  while (tc) {
    /* check simple type equivalence */
    int typeequiv = (strcmp(tc->name, ti->name) == 0);   
    /* check full type equivalence, resolving typedefs */
    if (!typeequiv) {
      /* only if tc is not a typedef (no '|' on it) */
      if (tc->str && ti->str && !strstr(tc->str,"|")) {
	typeequiv = SWIG_TypeEquiv(ti->str,tc->str);
      }
    }
    if (typeequiv) {
      /* Already exists in the table.  Just add additional types to the list */
      if (ti->clientdata) tc->clientdata = ti->clientdata;
      head = tc;
      next = tc->next;
      goto l1;
    }
    tc = tc->prev;
  }
  head = ti;
  next = 0;

  /* Place in list */
  ti->prev = *tl;
  *tl = ti;

  /* Build linked lists */
  l1:
  ret = head;
  tc = ti + 1;
  /* Patch up the rest of the links */
  while (tc->name) {
    head->next = tc;
    tc->prev = head;
    head = tc;
    tc++;
  }
  if (next) next->prev = head;
  head->next = next;

  return ret;
}

/*
  Check the typename
*/
SWIGRUNTIME swig_type_info *
SWIG_TypeCheck(const char *c, swig_type_info *ty) {
  swig_type_info *s;
  if (!ty) return 0;        /* Void pointer */
  s = ty->next;             /* First element always just a name */
  do {
    if (strcmp(s->name,c) == 0) {
      if (s == ty->next) return s;
      /* Move s to the top of the linked list */
      s->prev->next = s->next;
      if (s->next) {
        s->next->prev = s->prev;
      }
      /* Insert s as second element in the list */
      s->next = ty->next;
      if (ty->next) ty->next->prev = s;
      ty->next = s;
      s->prev = ty;
      return s;
    }
    s = s->next;
  } while (s && (s != ty->next));
  return 0;
}

/*
  Cast a pointer up an inheritance hierarchy
*/
SWIGRUNTIMEINLINE void *
SWIG_TypeCast(swig_type_info *ty, void *ptr) {
  return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr);
}

/* 
   Dynamic pointer casting. Down an inheritance hierarchy
*/
SWIGRUNTIME swig_type_info *
SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr) {
  swig_type_info *lastty = ty;
  if (!ty || !ty->dcast) return ty;
  while (ty && (ty->dcast)) {
    ty = (*ty->dcast)(ptr);
    if (ty) lastty = ty;
  }
  return lastty;
}

/*
  Return the name associated with this type
*/
SWIGRUNTIMEINLINE const char *
SWIG_TypeName(const swig_type_info *ty) {
  return ty->name;
}

/*
  Return the pretty name associated with this type,
  that is an unmangled type name in a form presentable to the user.
*/
SWIGRUNTIME const char *
SWIG_TypePrettyName(const swig_type_info *type) {
  /* The "str" field contains the equivalent pretty names of the
     type, separated by vertical-bar characters.  We choose
     to print the last name, as it is often (?) the most
     specific. */
  if (type->str != NULL) {
    const char *last_name = type->str;
    const char *s;
    for (s = type->str; *s; s++)
      if (*s == '|') last_name = s+1;
    return last_name;
  }
  else
    return type->name;
}

/*
  Search for a swig_type_info structure
*/
SWIGRUNTIME swig_type_info *
SWIG_TypeQueryTL(swig_type_info *tl, const char *name) {
  swig_type_info *ty = tl;
  while (ty) {
    if (ty->str && (SWIG_TypeEquiv(ty->str,name))) return ty;
    if (ty->name && (strcmp(name,ty->name) == 0)) return ty;
    ty = ty->prev;
  }
  return 0;
}

/* 
   Set the clientdata field for a type
*/
SWIGRUNTIME void
SWIG_TypeClientDataTL(swig_type_info *tl, swig_type_info *ti, void *clientdata) {
  swig_type_info *tc, *equiv;
  if (ti->clientdata) return;
  /* if (ti->clientdata == clientdata) return; */
  ti->clientdata = clientdata;
  equiv = ti->next;
  while (equiv) {
    if (!equiv->converter) {
      tc = tl;
      while (tc) {
        if ((strcmp(tc->name, equiv->name) == 0))
          SWIG_TypeClientDataTL(tl,tc,clientdata);
        tc = tc->prev;
      }
    }
    equiv = equiv->next;
  }
}

/* 
   Pack binary data into a string
*/
SWIGRUNTIME char *
SWIG_PackData(char *c, void *ptr, size_t sz) {
  static char hex[17] = "0123456789abcdef";
  unsigned char *u = (unsigned char *) ptr;
  const unsigned char *eu =  u + sz;
  register unsigned char uu;
  for (; u != eu; ++u) {
    uu = *u;
    *(c++) = hex[(uu & 0xf0) >> 4];
    *(c++) = hex[uu & 0xf];
  }
  return c;
}

/* 
   Unpack binary data from a string
*/
SWIGRUNTIME const char *
SWIG_UnpackData(const char *c, void *ptr, size_t sz) {
  register unsigned char *u = (unsigned char *) ptr;
  register const unsigned char *eu =  u + sz;
  for (; u != eu; ++u) {
    register int d = *(c++);
    register unsigned char uu = 0;
    if ((d >= '0') && (d <= '9'))
      uu = ((d - '0') << 4);
    else if ((d >= 'a') && (d <= 'f'))
      uu = ((d - ('a'-10)) << 4);
    else 
      return (char *) 0;
    d = *(c++);
    if ((d >= '0') && (d <= '9'))
      uu |= (d - '0');
    else if ((d >= 'a') && (d <= 'f'))
      uu |= (d - ('a'-10));
    else 
      return (char *) 0;
    *u = uu;
  }
  return c;
}

/*
  This function will propagate the clientdata field of type to any new
  swig_type_info structures that have been added into the list of
  equivalent types.  It is like calling SWIG_TypeClientData(type,
  clientdata) a second time.
*/
SWIGRUNTIME void
SWIG_PropagateClientDataTL(swig_type_info *tl, swig_type_info *type) {
  swig_type_info *equiv = type->next;
  swig_type_info *tc;
  if (!type->clientdata) return;
  while (equiv) {
    if (!equiv->converter) {
      tc = tl;
      while (tc) {
        if ((strcmp(tc->name, equiv->name) == 0) && !tc->clientdata)
          SWIG_TypeClientDataTL(tl,tc, type->clientdata);
        tc = tc->prev;
      }
    }
    equiv = equiv->next;
  }
}

/* 
   Pack 'void *' into a string buffer.
*/
SWIGRUNTIME char *
SWIG_PackVoidPtr(char *buff, void *ptr, const char *name, size_t bsz) {
  char *r = buff;
  if ((2*sizeof(void *) + 2) > bsz) return 0;
  *(r++) = '_';
  r = SWIG_PackData(r,&ptr,sizeof(void *));
  if (strlen(name) + 1 > (bsz - (r - buff))) return 0;
  strcpy(r,name);
  return buff;
}

SWIGRUNTIME const char *
SWIG_UnpackVoidPtr(const char *c, void **ptr, const char *name) {
  if (*c != '_') {
    if (strcmp(c,"NULL") == 0) {
      *ptr = (void *) 0;
      return name;
    } else {
      return 0;
    }
  }
  return SWIG_UnpackData(++c,ptr,sizeof(void *));
}

SWIGRUNTIME char *
SWIG_PackDataName(char *buff, void *ptr, size_t sz, const char *name, size_t bsz) {
  char *r = buff;
  size_t lname = (name ? strlen(name) : 0);
  if ((2*sz + 2 + lname) > bsz) return 0;
  *(r++) = '_';
  r = SWIG_PackData(r,ptr,sz);
  if (lname) {
    strncpy(r,name,lname+1);
  } else {
    *r = 0;
  }
  return buff;
}

SWIGRUNTIME const char *
SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) {
  if (*c != '_') {
    if (strcmp(c,"NULL") == 0) {
      memset(ptr,0,sz);
      return name;
    } else {
      return 0;
    }
  }
  return SWIG_UnpackData(++c,ptr,sz);
}

#ifdef __cplusplus
}
#endif

/***********************************************************************
 * common.swg
 *
 *     This file contains generic SWIG runtime support for pointer
 *     type checking as well as a few commonly used macros to control
 *     external linkage.
 *
 * Author : David Beazley (beazley@cs.uchicago.edu)
 *
 * Copyright (c) 1999-2000, The University of Chicago
 * 
 * This file may be freely redistributed without license or fee provided
 * this copyright message remains intact.
 ************************************************************************/


#if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
#  if !defined(STATIC_LINKED)
#    define SWIGEXPORT(a) __declspec(dllexport) a
#  else
#    define SWIGEXPORT(a) a
#  endif
#else
#  define SWIGEXPORT(a) a
#endif

#ifdef __cplusplus
extern "C" {
#endif


/*************************************************************************/


/* The static type info list */

static swig_type_info *swig_type_list = 0;
static swig_type_info **swig_type_list_handle = &swig_type_list;
  

/* Register a type mapping with the type-checking */
static swig_type_info *
SWIG_TypeRegister(swig_type_info *ti) {
  return SWIG_TypeRegisterTL(swig_type_list_handle, ti);
}

/* Search for a swig_type_info structure */
static swig_type_info *
SWIG_TypeQuery(const char *name) {
  return SWIG_TypeQueryTL(*swig_type_list_handle, name);
}

/* Set the clientdata field for a type */
static void
SWIG_TypeClientData(swig_type_info *ti, void *clientdata) {
  SWIG_TypeClientDataTL(*swig_type_list_handle, ti, clientdata);
}

/* This function will propagate the clientdata field of type to
* any new swig_type_info structures that have been added into the list
* of equivalent types.  It is like calling
* SWIG_TypeClientData(type, clientdata) a second time.
*/
static void
SWIG_PropagateClientData(swig_type_info *type) {
  SWIG_PropagateClientDataTL(*swig_type_list_handle, type);
}

#ifdef __cplusplus
}
#endif

/* ---------------------------------------------------------------------- -*- c -*-
 * perl5.swg
 *
 * Perl5 runtime library
 * $Header: /cvsroot/swig/SWIG/Lib/perl5/perlrun.swg,v 1.20 2004/11/29 23:13:57 wuzzeb Exp $
 * ----------------------------------------------------------------------------- */

#define SWIGPERL
#define SWIGPERL5
#ifdef __cplusplus
/* Needed on some windows machines---since MS plays funny games with the header files under C++ */
#include <math.h>
#include <stdlib.h>
extern "C" {
#endif
#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"

/* Get rid of free and malloc defined by perl */
#undef free
#undef malloc

#ifndef pTHX_
#define pTHX_
#endif

#include <string.h>
#ifdef __cplusplus
}
#endif

/* Macro to call an XS function */

#ifdef PERL_OBJECT 
#  define SWIG_CALLXS(_name) _name(cv,pPerl) 
#else 
#  ifndef MULTIPLICITY 
#    define SWIG_CALLXS(_name) _name(cv) 
#  else 
#    define SWIG_CALLXS(_name) _name(PERL_GET_THX, cv) 
#  endif 
#endif 

/* Contract support */

#define SWIG_contract_assert(expr,msg) if (!(expr)) { SWIG_croak(msg); } else

/* Note: SwigMagicFuncHack is a typedef used to get the C++ compiler to just shut up already */

#ifdef PERL_OBJECT
#define MAGIC_PPERL  CPerlObj *pPerl = (CPerlObj *) this;
typedef int (CPerlObj::*SwigMagicFunc)(SV *, MAGIC *);

#ifdef __cplusplus
extern "C" {
#endif
typedef int (CPerlObj::*SwigMagicFuncHack)(SV *, MAGIC *);
#ifdef __cplusplus
}
#endif

#define SWIG_MAGIC(a,b) (SV *a, MAGIC *b)
#define SWIGCLASS_STATIC
#else
#define MAGIC_PPERL
#define SWIGCLASS_STATIC static
#ifndef MULTIPLICITY
#define SWIG_MAGIC(a,b) (SV *a, MAGIC *b)
typedef int (*SwigMagicFunc)(SV *, MAGIC *);

#ifdef __cplusplus
extern "C" {
#endif
typedef int (*SwigMagicFuncHack)(SV *, MAGIC *);
#ifdef __cplusplus
}
#endif


#else
#define SWIG_MAGIC(a,b) (struct interpreter *interp, SV *a, MAGIC *b)
typedef int (*SwigMagicFunc)(struct interpreter *, SV *, MAGIC *);
#ifdef __cplusplus
extern "C" {
#endif
typedef int (*SwigMagicFuncHack)(struct interpreter *, SV *, MAGIC *);
#ifdef __cplusplus
}
#endif

#endif
#endif

#if defined(WIN32) && defined(PERL_OBJECT) && !defined(PerlIO_exportFILE)
#define PerlIO_exportFILE(fh,fl) (FILE*)(fh)
#endif

/* Modifications for newer Perl 5.005 releases */

#if !defined(PERL_REVISION) || ((PERL_REVISION >= 5) && ((PERL_VERSION < 5) || ((PERL_VERSION == 5) && (PERL_SUBVERSION < 50))))
#  ifndef PL_sv_yes
#    define PL_sv_yes sv_yes
#  endif
#  ifndef PL_sv_undef
#    define PL_sv_undef sv_undef
#  endif
#  ifndef PL_na
#    define PL_na na
#  endif
#endif

#include <stdlib.h>

#ifdef __cplusplus
extern "C" {
#endif

#define SWIG_OWNER 1
#define SWIG_SHADOW 2

/* Common SWIG API */

#ifdef PERL_OBJECT
#  define SWIG_ConvertPtr(obj, pp, type, flags) \
     SWIG_Perl_ConvertPtr(pPerl, obj, pp, type, flags)
#  define SWIG_NewPointerObj(p, type, flags) \
     SWIG_Perl_NewPointerObj(pPerl, p, type, flags)
#  define SWIG_MakePackedObj(sv, p, s, type)	\
     SWIG_Perl_MakePackedObj(pPerl, sv, p, s, type)
#  define SWIG_ConvertPacked(obj, p, s, type, flags) \
     SWIG_Perl_ConvertPacked(pPerl, obj, p, s, type, flags)

#else
#  define SWIG_ConvertPtr(obj, pp, type, flags) \
     SWIG_Perl_ConvertPtr(obj, pp, type, flags)
#  define SWIG_NewPointerObj(p, type, flags) \
     SWIG_Perl_NewPointerObj(p, type, flags)
#  define SWIG_MakePackedObj(sv, p, s, type)	\
     SWIG_Perl_MakePackedObj(sv, p, s, type )
#  define SWIG_ConvertPacked(obj, p, s, type, flags) \
     SWIG_Perl_ConvertPacked(obj, p, s, type, flags)
#endif

/* Perl-specific API */
#ifdef PERL_OBJECT
#  define SWIG_MakePtr(sv, ptr, type, flags) \
     SWIG_Perl_MakePtr(pPerl, sv, ptr, type, flags)
#  define SWIG_SetError(str) \
     SWIG_Perl_SetError(pPerl, str)
#else
#  define SWIG_MakePtr(sv, ptr, type, flags) \
     SWIG_Perl_MakePtr(sv, ptr, type, flags)
#  define SWIG_SetError(str) \
     SWIG_Perl_SetError(str)
#  define SWIG_SetErrorSV(str) \
     SWIG_Perl_SetErrorSV(str)
#endif

#define SWIG_SetErrorf SWIG_Perl_SetErrorf


#ifdef PERL_OBJECT
#  define SWIG_MAYBE_PERL_OBJECT CPerlObj *pPerl,
#else
#  define SWIG_MAYBE_PERL_OBJECT
#endif

static swig_type_info **
SWIG_Perl_GetTypeListHandle() {
  static void *type_pointer = (void *)0;
  SV *pointer;

  /* first check if pointer already created */
  if (!type_pointer) {
    pointer = get_sv("swig_runtime_data::type_pointer" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME, FALSE);
    if (pointer && SvOK(pointer)) {
      type_pointer = INT2PTR(swig_type_info **, SvIV(pointer));
    }
  }

  return (swig_type_info **) type_pointer;
}

/*
  Search for a swig_type_info structure
 */
SWIGRUNTIMEINLINE swig_type_info *
SWIG_Perl_GetTypeList() {
  swig_type_info **tlh = SWIG_Perl_GetTypeListHandle();
  return tlh ? *tlh : (swig_type_info*)0;
}

#define SWIG_Runtime_GetTypeList SWIG_Perl_GetTypeList 

static swig_type_info *
SWIG_Perl_TypeCheckRV(SWIG_MAYBE_PERL_OBJECT SV *rv, swig_type_info *ty) {
  swig_type_info *s;
  if (!ty) return 0;        /* Void pointer */
  s = ty->next;             /* First element always just a name */
  do {
    if (sv_derived_from(rv, (char *) s->name)) {
      if (s == ty->next) return s;
      /* Move s to the top of the linked list */
      s->prev->next = s->next;
      if (s->next) {
        s->next->prev = s->prev;
      }
      /* Insert s as second element in the list */
      s->next = ty->next;
      if (ty->next) ty->next->prev = s;
      ty->next = s;
      s->prev = ty;
      return s;
    }
    s = s->next;
  } while (s && (s != ty->next));
  return 0;
}

/* Function for getting a pointer value */

static int
SWIG_Perl_ConvertPtr(SWIG_MAYBE_PERL_OBJECT SV *sv, void **ptr, swig_type_info *_t, int flags) {
  swig_type_info *tc;
  void *voidptr = (void *)0;

  /* If magical, apply more magic */
  if (SvGMAGICAL(sv))
    mg_get(sv);

  /* Check to see if this is an object */
  if (sv_isobject(sv)) {
    SV *tsv = (SV*) SvRV(sv);
    IV tmp = 0;
    if ((SvTYPE(tsv) == SVt_PVHV)) {
      MAGIC *mg;
      if (SvMAGICAL(tsv)) {
        mg = mg_find(tsv,'P');
        if (mg) {
          sv = mg->mg_obj;
          if (sv_isobject(sv)) {
            tmp = SvIV((SV*)SvRV(sv));
          }
        }
      } else {
        return -1;
      }
    } else {
      tmp = SvIV((SV*)SvRV(sv));
    }
    voidptr = (void *)tmp;
    if (!_t) {
      *(ptr) = voidptr;
      return 0;
    }
  } else if (! SvOK(sv)) {            /* Check for undef */
    *(ptr) = (void *) 0;
    return 0;
  } else if (SvTYPE(sv) == SVt_RV) {  /* Check for NULL pointer */
    *(ptr) = (void *) 0;
    if (!SvROK(sv))
      return 0;
    else
      return -1;
  } else {                            /* Don't know what it is */
    *(ptr) = (void *) 0;
    return -1;
  }
  if (_t) {
    /* Now see if the types match */
    char *_c = HvNAME(SvSTASH(SvRV(sv)));
    tc = SWIG_TypeCheck(_c,_t);
    if (!tc) {
      *ptr = voidptr;
      return -1;
    }
    *ptr = SWIG_TypeCast(tc,voidptr);
    return 0;
  }
  *ptr = voidptr;
  return 0;
}

static void
SWIG_Perl_MakePtr(SWIG_MAYBE_PERL_OBJECT SV *sv, void *ptr, swig_type_info *t, int flags) {
  if (ptr && (flags & SWIG_SHADOW)) {
    SV *self;
    SV *obj=newSV(0);
    HV *hash=newHV();
    HV *stash;
    sv_setref_pv(obj, (char *) t->name, ptr);
    stash=SvSTASH(SvRV(obj));
    if (flags & SWIG_OWNER) {
      HV *hv;
      GV *gv=*(GV**)hv_fetch(stash, "OWNER", 5, TRUE);
      if (!isGV(gv))
        gv_init(gv, stash, "OWNER", 5, FALSE);
      hv=GvHVn(gv);
      hv_store_ent(hv, obj, newSViv(1), 0);
    }
    sv_magic((SV *)hash, (SV *)obj, 'P', Nullch, 0);
    SvREFCNT_dec(obj);
    self=newRV_noinc((SV *)hash);
    sv_setsv(sv, self);
    SvREFCNT_dec((SV *)self);
    sv_bless(sv, stash);
  }
  else {
    sv_setref_pv(sv, (char *) t->name, ptr);
  }
}

static SWIGINLINE SV *
SWIG_Perl_NewPointerObj(SWIG_MAYBE_PERL_OBJECT void *ptr, swig_type_info *t, int flags) {
  SV *result = sv_newmortal();
  SWIG_MakePtr(result, ptr, t, flags);
  return result;
}

static void
  SWIG_Perl_MakePackedObj(SWIG_MAYBE_PERL_OBJECT SV *sv, void *ptr, int sz, swig_type_info *type) {
  char result[1024];
  char *r = result;
  if ((2*sz + 1 + strlen(type->name)) > 1000) return;
  *(r++) = '_';
  r = SWIG_PackData(r,ptr,sz);
  strcpy(r,type->name);
  sv_setpv(sv, result);
}

/* Convert a packed value value */
static int
SWIG_Perl_ConvertPacked(SWIG_MAYBE_PERL_OBJECT SV *obj, void *ptr, int sz, swig_type_info *ty, int flags) {
  swig_type_info *tc;
  const char  *c = 0;

  if ((!obj) || (!SvOK(obj))) return -1;
  c = SvPV(obj, PL_na);
  /* Pointer values must start with leading underscore */
  if (*c != '_') return -1;
  c++;
  c = SWIG_UnpackData(c,ptr,sz);
  if (ty) {
    tc = SWIG_TypeCheck(c,ty);
    if (!tc) return -1;
  }
  return 0;
}

static SWIGINLINE void
SWIG_Perl_SetError(SWIG_MAYBE_PERL_OBJECT const char *error) {
  if (error) sv_setpv(perl_get_sv("@", TRUE), error);
}

static SWIGINLINE void
SWIG_Perl_SetErrorSV(SWIG_MAYBE_PERL_OBJECT SV *error) {
  if (error) sv_setsv(perl_get_sv("@", TRUE), error);
}

static void
SWIG_Perl_SetErrorf(const char *fmt, ...) {
  va_list args;
  va_start(args, fmt);
  sv_vsetpvfn(perl_get_sv("@", TRUE), fmt, strlen(fmt), &args, Null(SV**), 0, Null(bool*));
  va_end(args);
}

/* Macros for low-level exception handling */
#define SWIG_fail       goto fail
#define SWIG_croak(x)   { SWIG_SetError(x); goto fail; }
#define SWIG_croakSV(x) { SWIG_SetErrorSV(x); goto fail; }
/* most preprocessors do not support vararg macros :-( */
/* #define SWIG_croakf(x...) { SWIG_SetErrorf(x); goto fail; } */


typedef XS(SwigPerlWrapper);
typedef SwigPerlWrapper *SwigPerlWrapperPtr;

/* Structure for command table */
typedef struct {
  const char         *name;
  SwigPerlWrapperPtr  wrapper;
} swig_command_info;

/* Information for constant table */

#define SWIG_INT     1
#define SWIG_FLOAT   2
#define SWIG_STRING  3
#define SWIG_POINTER 4
#define SWIG_BINARY  5

/* Constant information structure */
typedef struct swig_constant_info {
    int              type;
    const char      *name;
    long             lvalue;
    double           dvalue;
    void            *pvalue;
    swig_type_info **ptype;
} swig_constant_info;

#ifdef __cplusplus
}
#endif

/* Structure for variable table */
typedef struct {
  const char   *name;
  SwigMagicFunc   set;
  SwigMagicFunc   get;
  swig_type_info  **type;
} swig_variable_info;

/* Magic variable code */
#ifndef PERL_OBJECT
#define swig_create_magic(s,a,b,c) _swig_create_magic(s,a,b,c)
  #ifndef MULTIPLICITY
     static void _swig_create_magic(SV *sv, char *name, int (*set)(SV *, MAGIC *), int (*get)(SV *,MAGIC *)) {
  #else
     static void _swig_create_magic(SV *sv, char *name, int (*set)(struct interpreter*, SV *, MAGIC *), int (*get)(struct interpreter*, SV *,MAGIC *)) {
  #endif
#else
#  define swig_create_magic(s,a,b,c) _swig_create_magic(pPerl,s,a,b,c)
static void _swig_create_magic(CPerlObj *pPerl, SV *sv, const char *name, int (CPerlObj::*set)(SV *, MAGIC *), int (CPerlObj::*get)(SV *, MAGIC *)) {
#endif
  MAGIC *mg;
  sv_magic(sv,sv,'U',(char *) name,strlen(name));
  mg = mg_find(sv,'U');
  mg->mg_virtual = (MGVTBL *) malloc(sizeof(MGVTBL));
  mg->mg_virtual->svt_get = (SwigMagicFuncHack) get;
  mg->mg_virtual->svt_set = (SwigMagicFuncHack) set;
  mg->mg_virtual->svt_len = 0;
  mg->mg_virtual->svt_clear = 0;
  mg->mg_virtual->svt_free = 0;
}






#ifdef do_open
  #undef do_open
#endif
#ifdef do_close
  #undef do_close
#endif
#ifdef scalar
  #undef scalar
#endif
#ifdef list
  #undef list
#endif
#ifdef apply
  #undef apply
#endif
#ifdef convert
  #undef convert
#endif
#ifdef Error
  #undef Error
#endif
#ifdef form
  #undef form
#endif
#ifdef vform
  #undef vform
#endif
#ifdef LABEL
  #undef LABEL
#endif
#ifdef METHOD
  #undef METHOD
#endif
#ifdef Move
  #undef Move
#endif
#ifdef yylex
  #undef yylex
#endif
#ifdef yyparse
  #undef yyparse
#endif
#ifdef yyerror
  #undef yyerror
#endif
#ifdef invert
  #undef invert
#endif
#ifdef ref
  #undef ref
#endif
#ifdef ENTER
  #undef ENTER
#endif


/* -------- TYPES TABLE (BEGIN) -------- */

#define  SWIGTYPE_p_f_p_void_p_void__int swig_types[0] 
#define  SWIGTYPE_p_Scheme_Double swig_types[1] 
#define  SWIGTYPE_p_Scheme_Hash_Table swig_types[2] 
#define  SWIGTYPE_p_Scheme_Bucket_Table swig_types[3] 
#define  SWIGTYPE_p_f_p_struct_Scheme_Env__void swig_types[4] 
#define  SWIGTYPE_p_p_f_p_void_p_void__void swig_types[5] 
#define  SWIGTYPE_p_f_p_void_p_void__void swig_types[6] 
#define  SWIGTYPE_p_f_p_void__void swig_types[7] 
#define  SWIGTYPE_p_f_p_struct_Scheme_Output_Port_p_void__void swig_types[8] 
#define  SWIGTYPE_p_f_p_struct_Scheme_Output_Port__void swig_types[9] 
#define  SWIGTYPE_p_f_p_struct_Scheme_Input_Port_p_void__void swig_types[10] 
#define  SWIGTYPE_p_f_p_struct_Scheme_Input_Port__void swig_types[11] 
#define  SWIGTYPE_p_f_p_struct_Scheme_Object_p_void__void swig_types[12] 
#define  SWIGTYPE_p_Scheme_Object_u_svector_val swig_types[13] 
#define  SWIGTYPE_p_Scheme_Vector swig_types[14] 
#define  SWIGTYPE_p_Scheme_Continuation_Jump_State swig_types[15] 
#define  SWIGTYPE_p_size_t swig_types[16] 
#define  SWIGTYPE_p_Scheme_Continuation_Jump_State_u swig_types[17] 
#define  SWIGTYPE_p_short swig_types[18] 
#define  SWIGTYPE_p_f_p_struct_Scheme_Object_p_f_p_struct_Scheme_Object_p_void__void_p_void__void swig_types[19] 
#define  SWIGTYPE_p_Scheme_Object_u_two_ptr_val swig_types[20] 
#define  SWIGTYPE_p_p_Scheme_Bucket swig_types[21] 
#define  SWIGTYPE_p_Scheme_Bucket swig_types[22] 
#define  SWIGTYPE_p_f_p_struct_Scheme_Object__int swig_types[23] 
#define  SWIGTYPE_p_p_void swig_types[24] 
#define  SWIGTYPE_p_f_size_t__p_void swig_types[25] 
#define  SWIGTYPE_p_void swig_types[26] 
#define  SWIGTYPE_p_int swig_types[27] 
#define  SWIGTYPE_p_f_p_void_p_long_p_long__void swig_types[28] 
#define  SWIGTYPE_p_Scheme_Primitive_Proc swig_types[29] 
#define  SWIGTYPE_p_Scheme_Closed_Primitive_Proc swig_types[30] 
#define  SWIGTYPE_p_Scheme_Closed_Case_Primitive_Proc swig_types[31] 
#define  SWIGTYPE_p_Scheme_Escaping_Cont swig_types[32] 
#define  SWIGTYPE_p_Scheme_Prim_W_Result_Arity swig_types[33] 
#define  SWIGTYPE_p_Scheme_Closed_Prim_W_Result_Arity swig_types[34] 
#define  SWIGTYPE_p_f_p_struct_Scheme_Output_Port_p_q_const__char_long_long_int__long swig_types[35] 
#define  SWIGTYPE_p_f_p_void__p_Scheme_Object swig_types[36] 
#define  SWIGTYPE_p_f_p_struct_Scheme_Object__p_Scheme_Object swig_types[37] 
#define  SWIGTYPE_p_f_p_Scheme_Object_p_int__p_Scheme_Object swig_types[38] 
#define  SWIGTYPE_p_f_p_Scheme_Object__p_Scheme_Object swig_types[39] 
#define  SWIGTYPE_p_p_Scheme_Object swig_types[40] 
#define  SWIGTYPE_p_Scheme_Object swig_types[41] 
#define  SWIGTYPE_p_Scheme_Small_Object swig_types[42] 
#define  SWIGTYPE_p_Scheme_Object_u_ptr_long_val swig_types[43] 
#define  SWIGTYPE_p_Scheme_Config swig_types[44] 
#define  SWIGTYPE_p_Scheme_Object_u_pair_val swig_types[45] 
#define  SWIGTYPE_p_f_p_struct_Scheme_Env_long_p_struct_Scheme_Object_p_void__void swig_types[46] 
#define  SWIGTYPE_p_f_int_a___p_struct_Scheme_Object__p_Scheme_Object swig_types[47] 
#define  SWIGTYPE_p_long swig_types[48] 
#define  SWIGTYPE_p_Scheme_Thread swig_types[49] 
#define  SWIGTYPE_p_f_p_struct_Scheme_Input_Port_p_char_long_long_int__long swig_types[50] 
#define  SWIGTYPE_p_char swig_types[51] 
#define  SWIGTYPE_p_Scheme_Object_u_str_val swig_types[52] 
#define  SWIGTYPE_p_f_p_struct_Scheme_Input_Port_p_char_long_long_p_struct_Scheme_Object_int__long swig_types[53] 
#define  SWIGTYPE_p_Scheme_Jumpup_Buf swig_types[54] 
#define  SWIGTYPE_p_p_Scheme_Custodian swig_types[55] 
#define  SWIGTYPE_p_Scheme_Custodian swig_types[56] 
#define  SWIGTYPE_p_Scheme_Jumpup_Buf_Holder swig_types[57] 
#define  SWIGTYPE_p_unsigned_long swig_types[58] 
#define  SWIGTYPE_p_Scheme_Symbol swig_types[59] 
#define  SWIGTYPE_p_Scheme_Object_u swig_types[60] 
#define  SWIGTYPE_p_Scheme_Small_Object_u swig_types[61] 
#define  SWIGTYPE_p_unsigned_int swig_types[62] 
#define  SWIGTYPE_p_unsigned_char swig_types[63] 
#define  SWIGTYPE_p_Scheme_Env swig_types[64] 
#define  SWIGTYPE_p_f_p_void_int_a___p_struct_Scheme_Object__p_Scheme_Object swig_types[65] 
#define  SWIGTYPE_p_Scheme_Cont_Frame_Data swig_types[66] 
#define  SWIGTYPE_p_Scheme_Output_Port swig_types[67] 
#define  SWIGTYPE_p_Scheme_Input_Port swig_types[68] 
#define  SWIGTYPE_p_Perl_Scalar swig_types[69] 
#define  SWIGTYPE_p_FILE swig_types[70] 
#define  SWIGTYPE_p_Scheme_Object_u_two_int_val swig_types[71] 
#define  SWIGTYPE_p_Scheme_Object_u_ptr_int_val swig_types[72] 
#define  SWIGTYPE_p_f_p_struct_Scheme_Output_Port__int swig_types[73] 
#define  SWIGTYPE_p_f_p_struct_Scheme_Input_Port__int swig_types[74] 
static swig_type_info *swig_types[76];

/* -------- TYPES TABLE (END) -------- */

#define SWIG_init    boot_Language__MzScheme

#define SWIG_name   "Language::MzScheme::boot_Language__MzScheme"
#define SWIG_prefix "Language::MzScheme::"

#ifdef __cplusplus
extern "C"
#endif
#ifndef PERL_OBJECT
#ifndef MULTIPLICITY
SWIGEXPORT(void) SWIG_init (CV* cv);
#else
SWIGEXPORT(void) SWIG_init (pTHXo_ CV* cv);
#endif
#else
SWIGEXPORT(void) SWIG_init (CV *cv, CPerlObj *);
#endif


#include "mzscheme.c"


typedef union {
      struct { char *string_val; int tag_val; } str_val;
      struct { void *ptr1, *ptr2; } two_ptr_val;
      struct { int int1; int int2; } two_int_val;
      struct { void *ptr; int pint; } ptr_int_val;
      struct { void *ptr; long pint; } ptr_long_val;
      struct { struct Scheme_Object *car, *cdr; } pair_val;
      struct { mzshort len; mzshort *vec; } svector_val;
    } Scheme_Object_u;



typedef struct { mzshort len; mzshort *vec; } Scheme_Object_u_svector_val;



typedef struct { struct Scheme_Object *car, *cdr; } Scheme_Object_u_pair_val;



typedef struct { void *ptr; long pint; } Scheme_Object_u_ptr_long_val;



typedef struct { void *ptr; int pint; } Scheme_Object_u_ptr_int_val;



typedef struct { int int1; int int2; } Scheme_Object_u_two_int_val;



typedef struct { void *ptr1, *ptr2; } Scheme_Object_u_two_ptr_val;



typedef struct { char *string_val; int tag_val; } Scheme_Object_u_str_val;



typedef union {
    char char_val;
    Scheme_Object *ptr_value;
    long int_val;
    Scheme_Object *ptr_val;
  } Scheme_Small_Object_u;



typedef union {
    Scheme_Object **vals;
    Scheme_Object *val;
  } Scheme_Continuation_Jump_State_u;


void scheme_init_jmpup_buf(Scheme_Jumpup_Buf *);
int scheme_setjmpup_relative(Scheme_Jumpup_Buf *,void *,void *volatile,Scheme_Jumpup_Buf *);
void scheme_longjmpup(Scheme_Jumpup_Buf *);
void scheme_reset_jmpup_buf(Scheme_Jumpup_Buf *);
void scheme_clear_escape(void);
Scheme_Jumpup_Buf_Holder *scheme_new_jmpupbuf_holder(void);
Scheme_Object *scheme_make_config(Scheme_Config *);
Scheme_Object *scheme_branch_config(void);
int scheme_new_param(void);
Scheme_Object *scheme_param_config(char *,Scheme_Object *,int,Scheme_Object **,int,Scheme_Prim *,char *,int);
Scheme_Object *scheme_register_parameter(Scheme_Prim *,char *,int);
Scheme_Env *scheme_get_env(Scheme_Config *);
extern Scheme_Thread *scheme_current_thread;
extern int volatile scheme_fuel_counter;
void scheme_out_of_fuel(void);
Scheme_Object *scheme_thread(Scheme_Object *,Scheme_Config *);
Scheme_Object *scheme_thread_w_custodian(Scheme_Object *,Scheme_Config *,Scheme_Custodian *);
Scheme_Object *scheme_thread_w_custodian_killkind(Scheme_Object *,Scheme_Config *,Scheme_Custodian *,int);
void scheme_kill_thread(Scheme_Thread *);
void scheme_break_thread(Scheme_Thread *);
void scheme_thread_block(float);
void scheme_swap_thread(Scheme_Thread *);
void scheme_making_progress();
void scheme_weak_suspend_thread(Scheme_Thread *);
void scheme_weak_resume_thread(Scheme_Thread *);
int scheme_block_until(Scheme_Ready_Fun,Scheme_Needs_Wakeup_Fun,Scheme_Object *,float);
int scheme_in_main_thread(void);
void scheme_cancel_sleep(void);
int scheme_tls_allocate();
void scheme_tls_set(int,void *);
void *scheme_tls_get(int);
Scheme_Custodian *scheme_make_custodian(Scheme_Custodian *);
Scheme_Custodian_Reference *scheme_add_managed(Scheme_Custodian *,Scheme_Object *,Scheme_Close_Custodian_Client *,void *,int);
void scheme_custodian_check_available(Scheme_Custodian *,char const *,char const *);
void scheme_remove_managed(Scheme_Custodian_Reference *,Scheme_Object *);
void scheme_close_managed(Scheme_Custodian *);
void scheme_schedule_custodian_close(Scheme_Custodian *);
void scheme_add_custodian_extractor(Scheme_Type,Scheme_Custodian_Extractor);
void scheme_add_atexit_closer(Scheme_Exit_Closer_Func);
void scheme_add_waitable(Scheme_Type,Scheme_Ready_Fun,Scheme_Needs_Wakeup_Fun,Scheme_Wait_Filter_Fun,int);
void scheme_add_waitable_through_sema(Scheme_Type,Scheme_Wait_Sema_Fun,Scheme_Wait_Filter_Fun);
int scheme_is_waitable(Scheme_Object *);
Scheme_Object *scheme_object_wait_multiple(int,Scheme_Object *[]);
Scheme_Object *scheme_object_wait_multiple_enable_break(int,Scheme_Object *[]);
Scheme_Object *scheme_make_waitable_set(int,Scheme_Object **);
void scheme_add_swap_callback(Scheme_Closure_Func,Scheme_Object *);
Scheme_Object *scheme_call_enable_break(Scheme_Prim *,int,Scheme_Object *[]);
int scheme_close_should_force_port_closed();
void scheme_push_kill_action(Scheme_Kill_Action_Func,void *);
void scheme_pop_kill_action();
void scheme_signal_error(char const *,...);
void scheme_raise_exn(int,...);
void scheme_warning(char *,...);
void scheme_raise(Scheme_Object *);
void scheme_wrong_count(char const *,int,int,int,Scheme_Object **);
void scheme_wrong_count_m(char const *,int,int,int,Scheme_Object **,int);
void scheme_case_lambda_wrong_count(char const *,int,Scheme_Object **,int,int,...);
void scheme_wrong_type(char const *,char const *,int,int,Scheme_Object **);
void scheme_arg_mismatch(char const *,char const *,Scheme_Object *);
void scheme_wrong_return_arity(char const *,int,int,Scheme_Object **,char const *,...);
void scheme_unbound_global(Scheme_Bucket *);
Scheme_Object *scheme_dynamic_wind(void (*)(void *),Scheme_Object *(*volatile )(void *),void (*volatile )(void *),Scheme_Object *(*)(void *),void *volatile);
Scheme_Type scheme_make_type(char const *);
char *scheme_get_type_name(Scheme_Type);
extern Scheme_Object scheme_eof[1];
Scheme_Object *scheme_make_eof(void);
extern Scheme_Object scheme_null[1];
Scheme_Object *scheme_make_null(void);
extern Scheme_Object scheme_true[1];
Scheme_Object *scheme_make_true(void);
extern Scheme_Object scheme_false[1];
Scheme_Object *scheme_make_false(void);
extern Scheme_Object scheme_void[1];
Scheme_Object *scheme_make_void(void);
extern Scheme_Object scheme_undefined[1];
extern Scheme_Object *scheme_tail_call_waiting;
extern Scheme_Object *scheme_multiple_values;
Scheme_Object *scheme_eval(Scheme_Object *,Scheme_Env *);
Scheme_Object *scheme_eval_multi(Scheme_Object *,Scheme_Env *);
Scheme_Object *scheme_eval_compiled(Scheme_Object *,Scheme_Env *);
Scheme_Object *scheme_eval_compiled_multi(Scheme_Object *,Scheme_Env *);
Scheme_Object *_scheme_eval_compiled(Scheme_Object *,Scheme_Env *);
Scheme_Object *_scheme_eval_compiled_multi(Scheme_Object *,Scheme_Env *);
Scheme_Object *scheme_apply(Scheme_Object *,int,Scheme_Object **);
Scheme_Object *scheme_apply_multi(Scheme_Object *,int,Scheme_Object **);
Scheme_Object *scheme_apply_eb(Scheme_Object *,int,Scheme_Object **);
Scheme_Object *scheme_apply_multi_eb(Scheme_Object *,int,Scheme_Object **);
Scheme_Object *scheme_apply_to_list(Scheme_Object *,Scheme_Object *);
Scheme_Object *scheme_eval_string(char const *,Scheme_Env *);
Scheme_Object *scheme_eval_string_multi(char const *,Scheme_Env *);
Scheme_Object *scheme_eval_string_all(char const *,Scheme_Env *,int);
Scheme_Object *_scheme_apply_known_closed_prim(Scheme_Object *,int,Scheme_Object **);
Scheme_Object *_scheme_apply_known_closed_prim_multi(Scheme_Object *,int,Scheme_Object **);
Scheme_Object *_scheme_apply_closed_prim(Scheme_Object *,int,Scheme_Object **);
Scheme_Object *_scheme_apply_closed_prim_multi(Scheme_Object *,int,Scheme_Object **);
Scheme_Object *scheme_values(int,Scheme_Object **);
Scheme_Object *scheme_check_one_value(Scheme_Object *);
Scheme_Object *scheme_tail_apply(Scheme_Object *,int,Scheme_Object **);
Scheme_Object *scheme_tail_apply_no_copy(Scheme_Object *,int,Scheme_Object **);
Scheme_Object *scheme_tail_apply_to_list(Scheme_Object *,Scheme_Object *);
Scheme_Object *scheme_tail_eval_expr(Scheme_Object *);
void scheme_set_tail_buffer_size(int);
Scheme_Object *scheme_force_value(Scheme_Object *);
void scheme_set_cont_mark(Scheme_Object *,Scheme_Object *);
void scheme_push_continuation_frame(Scheme_Cont_Frame_Data *);
void scheme_pop_continuation_frame(Scheme_Cont_Frame_Data *);
void scheme_temp_dec_mark_depth();
void scheme_temp_inc_mark_depth();
Scheme_Object *scheme_current_continuation_marks(void);
Scheme_Object *scheme_do_eval(Scheme_Object *,int,Scheme_Object **,int);
Scheme_Object *scheme_eval_compiled_stx_string(Scheme_Object *,Scheme_Env *,long,Scheme_Object *);
Scheme_Object *scheme_load_compiled_stx_string(char const *,long);
Scheme_Object *scheme_compiled_stx_symbol(Scheme_Object *);
Scheme_Object *scheme_eval_compiled_sized_string(char const *,int,Scheme_Env *);
void *GC_malloc(size_t);
void *GC_malloc_atomic(size_t);
void *GC_malloc_stubborn(size_t);
void *GC_malloc_uncollectable(size_t);
void *scheme_malloc_eternal(size_t);
void scheme_end_stubborn_change(void *);
void *scheme_calloc(size_t,size_t);
char *scheme_strdup(char const *);
char *scheme_strdup_eternal(char const *);
void *scheme_malloc_fail_ok(void *(*)(size_t),size_t);
void scheme_weak_reference(void **);
void scheme_weak_reference_indirect(void **,void *);
void scheme_unweak_reference(void **);
void scheme_add_finalizer(void *,void (*)(void *,void *),void *);
void scheme_add_finalizer_once(void *,void (*)(void *,void *),void *);
void scheme_add_scheme_finalizer(void *,void (*)(void *,void *),void *);
void scheme_add_scheme_finalizer_once(void *,void (*)(void *,void *),void *);
void scheme_register_finalizer(void *,void (*)(void *,void *),void *,void (**)(void *,void *),void **);
void scheme_remove_all_finalization(void *);
void scheme_dont_gc_ptr(void *);
void scheme_gc_ptr_ok(void *);
void scheme_collect_garbage(void);
Scheme_Bucket_Table *scheme_make_bucket_table(int,int);
void scheme_add_to_table(Scheme_Bucket_Table *,char const *,void *,int);
void scheme_change_in_table(Scheme_Bucket_Table *,char const *,void *);
void *scheme_lookup_in_table(Scheme_Bucket_Table *,char const *);
Scheme_Bucket *scheme_bucket_from_table(Scheme_Bucket_Table *,char const *);
int scheme_bucket_table_equal(Scheme_Bucket_Table *,Scheme_Bucket_Table *);
Scheme_Hash_Table *scheme_make_hash_table(int);
Scheme_Hash_Table *scheme_make_hash_table_equal();
void scheme_hash_set(Scheme_Hash_Table *,Scheme_Object *,Scheme_Object *);
Scheme_Object *scheme_hash_get(Scheme_Hash_Table *,Scheme_Object *);
int scheme_hash_table_equal(Scheme_Hash_Table *,Scheme_Hash_Table *);
int scheme_is_hash_table_equal(Scheme_Object *);
Scheme_Object *scheme_make_prim(Scheme_Prim *);
Scheme_Object *scheme_make_noneternal_prim(Scheme_Prim *);
Scheme_Object *scheme_make_closed_prim(Scheme_Closed_Prim *,void *);
Scheme_Object *scheme_make_prim_w_arity(Scheme_Prim *,char const *,mzshort,mzshort);
Scheme_Object *scheme_make_folding_prim(Scheme_Prim *,char const *,mzshort,mzshort,short);
Scheme_Object *scheme_make_noneternal_prim_w_arity(Scheme_Prim *,char const *,mzshort,mzshort);
Scheme_Object *scheme_make_closed_prim_w_arity(Scheme_Closed_Prim *,void *,char const *,mzshort,mzshort);
Scheme_Object *scheme_make_folding_closed_prim(Scheme_Closed_Prim *,void *,char const *,mzshort,mzshort,short);
Scheme_Object *scheme_make_prim_w_everything(Scheme_Prim *,int,char const *,mzshort,mzshort,short,mzshort,mzshort);
Scheme_Object *scheme_make_closed_prim_w_everything(Scheme_Closed_Prim *,void *,char const *,mzshort,mzshort,short,mzshort,mzshort);
void scheme_prim_is_method(Scheme_Object *);
Scheme_Object *scheme_make_pair(Scheme_Object *,Scheme_Object *);
Scheme_Object *scheme_make_immutable_pair(Scheme_Object *,Scheme_Object *);
Scheme_Object *scheme_make_string(char const *);
Scheme_Object *scheme_make_sized_string(char *,long,int);
Scheme_Object *scheme_make_sized_offset_string(char *,long,long,int);
Scheme_Object *scheme_make_immutable_sized_string(char *,long,int);
Scheme_Object *scheme_make_string_without_copying(char *);
Scheme_Object *scheme_alloc_string(int,char);
Scheme_Object *scheme_append_string(Scheme_Object *,Scheme_Object *);
Scheme_Object *scheme_make_vector(int,Scheme_Object *);
Scheme_Object *scheme_make_integer_value(long);
Scheme_Object *scheme_make_integer_value_from_unsigned(unsigned long);
Scheme_Object *scheme_make_integer_value_from_long_long(unsigned long,unsigned long);
Scheme_Object *scheme_make_integer_value_from_unsigned_long_long(unsigned long,unsigned long);
Scheme_Object *scheme_make_double(double);
Scheme_Object *scheme_make_char(char);
Scheme_Object *scheme_make_sema(long);
void scheme_post_sema(Scheme_Object *);
void scheme_post_sema_all(Scheme_Object *);
int scheme_wait_sema(Scheme_Object *,int);
extern Scheme_Object **scheme_char_constants;
Scheme_Object *scheme_make_channel();
int scheme_get_int_val(Scheme_Object *,long *);
int scheme_get_unsigned_int_val(Scheme_Object *,unsigned long *);
double scheme_real_to_double(Scheme_Object *);
Scheme_Object *scheme_make_cptr(void *,char const *);
char const *scheme_get_proc_name(Scheme_Object *,int *,int);
Scheme_Object *scheme_make_bignum(long);
Scheme_Object *scheme_make_bignum_from_unsigned(unsigned long);
double scheme_bignum_to_double(Scheme_Object const *);
Scheme_Object *scheme_bignum_from_double(double);
char *scheme_bignum_to_string(Scheme_Object const *,int);
char *scheme_bignum_to_allocated_string(Scheme_Object const *,int,int);
Scheme_Object *scheme_read_bignum(char const *,int,int);
Scheme_Object *scheme_bignum_normalize(Scheme_Object const *);
Scheme_Object *scheme_make_rational(Scheme_Object const *,Scheme_Object const *);
double scheme_rational_to_double(Scheme_Object const *);
Scheme_Object *scheme_rational_from_double(double);
Scheme_Object *scheme_rational_normalize(Scheme_Object const *);
Scheme_Object *scheme_rational_numerator(Scheme_Object const *);
Scheme_Object *scheme_rational_denominator(Scheme_Object const *);
Scheme_Object *scheme_make_complex(Scheme_Object const *,Scheme_Object const *);
Scheme_Object *scheme_complex_normalize(Scheme_Object const *);
Scheme_Object *scheme_complex_real_part(Scheme_Object const *);
Scheme_Object *scheme_complex_imaginary_part(Scheme_Object const *);
int scheme_is_exact(Scheme_Object *);
int scheme_is_inexact(Scheme_Object *);
Scheme_Object *scheme_expand(Scheme_Object *,Scheme_Env *);
Scheme_Object *scheme_compile(Scheme_Object *,Scheme_Env *,int);
Scheme_Object *scheme_read(Scheme_Object *);
Scheme_Object *scheme_read_syntax(Scheme_Object *,Scheme_Object *);
void scheme_write(Scheme_Object *,Scheme_Object *);
void scheme_display(Scheme_Object *,Scheme_Object *);
void scheme_write_w_max(Scheme_Object *,Scheme_Object *,long);
void scheme_display_w_max(Scheme_Object *,Scheme_Object *,long);
void scheme_write_string(char const *,long,Scheme_Object *);
long scheme_put_string(char const *,Scheme_Object *,char const *,long,long,int);
char *scheme_write_to_string(Scheme_Object *,long *);
char *scheme_display_to_string(Scheme_Object *,long *);
char *scheme_write_to_string_w_max(Scheme_Object *,long *,long);
char *scheme_display_to_string_w_max(Scheme_Object *,long *,long);
void scheme_debug_print(Scheme_Object *);
void scheme_flush_output(Scheme_Object *);
char *scheme_format(char *,int,int,Scheme_Object **,long *);
void scheme_printf(char *,int,int,Scheme_Object **);
int scheme_getc(Scheme_Object *);
int scheme_peekc(Scheme_Object *);
int scheme_peekc_skip(Scheme_Object *,Scheme_Object *);
int scheme_getc_special_ok(Scheme_Object *);
int scheme_peekc_special_ok(Scheme_Object *);
int scheme_peekc_special_ok_skip(Scheme_Object *,Scheme_Object *);
void scheme_ungetc(int,Scheme_Object *);
int scheme_char_ready(Scheme_Object *);
int scheme_peekc_is_ungetc(Scheme_Object *);
void scheme_need_wakeup(Scheme_Object *,void *);
long scheme_get_string(char const *,Scheme_Object *,char *,long,long,int,int,Scheme_Object *);
long scheme_get_chars(Scheme_Object *,long,char *,int);
long scheme_tell(Scheme_Object *);
long scheme_output_tell(Scheme_Object *);
long scheme_tell_line(Scheme_Object *);
long scheme_tell_column(Scheme_Object *);
void scheme_count_lines(Scheme_Object *);
void scheme_close_input_port(Scheme_Object *);
void scheme_close_output_port(Scheme_Object *);
Scheme_Object *scheme_make_port_type(char const *);
Scheme_Input_Port *scheme_make_input_port(Scheme_Object *,void *,Scheme_Get_String_Fun,Scheme_Peek_String_Fun,Scheme_In_Ready_Fun,Scheme_Close_Input_Fun,Scheme_Need_Wakeup_Input_Fun,int);
Scheme_Output_Port *scheme_make_output_port(Scheme_Object *,void *,Scheme_Write_String_Fun,Scheme_Out_Ready_Fun,Scheme_Close_Output_Fun,Scheme_Need_Wakeup_Output_Fun,int);
Scheme_Object *scheme_open_input_file(char const *,char const *);
Scheme_Object *scheme_open_output_file(char const *,char const *);
Scheme_Object *scheme_make_file_input_port(FILE *);
Scheme_Object *scheme_make_named_file_input_port(FILE *,char const *);
Scheme_Object *scheme_make_file_output_port(FILE *);
Scheme_Object *scheme_make_string_input_port(char const *);
Scheme_Object *scheme_make_sized_string_input_port(char const *,long);
Scheme_Object *scheme_make_string_output_port();
char *scheme_get_string_output(Scheme_Object *);
char *scheme_get_sized_string_output(Scheme_Object *,long *);
void scheme_pipe(Scheme_Object **,Scheme_Object **);
void scheme_pipe_with_limit(Scheme_Object **,Scheme_Object **,int);
long scheme_set_file_position(Scheme_Object *,long);
int scheme_file_exists(char *);
int scheme_directory_exists(char *);
char *scheme_expand_filename(char *,int,char const *,int *,int);
char *scheme_os_getcwd(char *,int,int *,int);
int scheme_os_setcwd(char *,int);
char *scheme_getdrive(void);
Scheme_Object *scheme_split_pathname(char const *,int,Scheme_Object **,int *);
Scheme_Object *scheme_build_pathname(int,Scheme_Object **);
void *scheme_alloc_fdset_array(int,int);
void *scheme_init_fdset_array(void *,int);
void *scheme_get_fdset(void *,int);
void scheme_fdzero(void *);
void scheme_fdset(void *,int);
void scheme_fdclr(void *,int);
int scheme_fdisset(void *,int);
void scheme_add_fd_handle(void *,void *,int);
void scheme_add_fd_eventmask(void *,int);
void scheme_security_check_file(char const *,char const *,int);
void scheme_security_check_network(char const *,char const *,int,int);
int scheme_get_host_address(char const *,int,void *);
Scheme_Object *scheme_make_namespace(int,Scheme_Object *[]);
void scheme_add_namespace_option(Scheme_Object *,void (*)(Scheme_Env *));
void scheme_require_from_original_env(Scheme_Env *,int);
void scheme_add_global(char const *,Scheme_Object *,Scheme_Env *);
void scheme_add_global_symbol(Scheme_Object *,Scheme_Object *,Scheme_Env *);
Scheme_Object *scheme_make_envunbox(Scheme_Object *);
Scheme_Object *scheme_lookup_global(Scheme_Object *,Scheme_Env *);
Scheme_Bucket *scheme_global_bucket(Scheme_Object *,Scheme_Env *);
Scheme_Bucket *scheme_global_keyword_bucket(Scheme_Object *,Scheme_Env *);
Scheme_Bucket *scheme_module_bucket(Scheme_Object *,Scheme_Object *,int,Scheme_Env *);
Scheme_Bucket *scheme_exptime_global_bucket(Scheme_Object *,Scheme_Env *);
Scheme_Bucket *scheme_exptime_module_bucket(Scheme_Object *,Scheme_Object *,int,Scheme_Env *);
Scheme_Object *scheme_builtin_value(char const *);
void scheme_set_global_bucket(char *,Scheme_Bucket *,Scheme_Object *,int);
void scheme_install_macro(Scheme_Bucket *,Scheme_Object *);
void scheme_save_initial_module_set(Scheme_Env *);
Scheme_Env *scheme_primitive_module(Scheme_Object *,Scheme_Env *);
void scheme_finish_primitive_module(Scheme_Env *);
Scheme_Object *scheme_make_modidx(Scheme_Object *,Scheme_Object *,Scheme_Object *);
Scheme_Object *scheme_declare_module(Scheme_Object *,Scheme_Invoke_Proc,Scheme_Invoke_Proc,void *,Scheme_Env *);
Scheme_Object *scheme_intern_symbol(char const *);
Scheme_Object *scheme_intern_exact_symbol(char const *,unsigned int);
Scheme_Object *scheme_make_symbol(char const *);
Scheme_Object *scheme_make_exact_symbol(char const *,unsigned int);
char const *scheme_symbol_name(Scheme_Object *);
char const *scheme_symbol_name_and_size(Scheme_Object *,unsigned int *,int);
char *scheme_symbol_val(Scheme_Object *);
Scheme_Object **scheme_make_struct_values(Scheme_Object *,Scheme_Object **,int,int);
Scheme_Object **scheme_make_struct_names(Scheme_Object *,Scheme_Object *,int,int *);
Scheme_Object *scheme_make_struct_type(Scheme_Object *,Scheme_Object *,Scheme_Object *,int,int,Scheme_Object *,Scheme_Object *);
Scheme_Object *scheme_make_struct_instance(Scheme_Object *,int,Scheme_Object **);
Scheme_Object *scheme_make_struct_exptime(Scheme_Object **,int,Scheme_Object *,Scheme_Object *,int);
int scheme_is_struct_instance(Scheme_Object *,Scheme_Object *);
Scheme_Object *scheme_struct_ref(Scheme_Object *,int);
void scheme_struct_set(Scheme_Object *,int,Scheme_Object *);
Scheme_Object *scheme_make_struct_type_property(Scheme_Object *);
Scheme_Object *scheme_make_struct_type_property_w_guard(Scheme_Object *,Scheme_Object *);
Scheme_Object *scheme_struct_type_property_ref(Scheme_Object *,Scheme_Object *);
int scheme_eq(Scheme_Object *,Scheme_Object *);
int scheme_eqv(Scheme_Object *,Scheme_Object *);
int scheme_equal(Scheme_Object *,Scheme_Object *);
long scheme_equal_hash_key(Scheme_Object *);
long scheme_equal_hash_key2(Scheme_Object *);
Scheme_Object *scheme_build_list(int,Scheme_Object **);
void scheme_make_list_immutable(Scheme_Object *);
int scheme_list_length(Scheme_Object *);
int scheme_proper_list_length(Scheme_Object *);
Scheme_Object *scheme_alloc_list(int);
Scheme_Object *scheme_map_1(Scheme_Object *(*)(Scheme_Object *),Scheme_Object *);
Scheme_Object *scheme_car(Scheme_Object *);
Scheme_Object *scheme_cdr(Scheme_Object *);
Scheme_Object *scheme_cadr(Scheme_Object *);
Scheme_Object *scheme_caddr(Scheme_Object *);
Scheme_Object *scheme_vector_to_list(Scheme_Object *);
Scheme_Object *scheme_list_to_vector(Scheme_Object *);
Scheme_Object *scheme_append(Scheme_Object *,Scheme_Object *);
Scheme_Object *scheme_box(Scheme_Object *);
Scheme_Object *scheme_unbox(Scheme_Object *);
void scheme_set_box(Scheme_Object *,Scheme_Object *);
Scheme_Object *scheme_make_weak_box(Scheme_Object *);
Scheme_Object *scheme_load(char const *);
Scheme_Object *scheme_load_extension(char const *,Scheme_Env *);
void scheme_register_extension_global(void *,long);
long scheme_get_seconds(void);
long scheme_get_milliseconds(void);
double scheme_get_inexact_milliseconds(void);
long scheme_get_process_milliseconds(void);
char *scheme_banner(void);
char *scheme_version(void);
int scheme_check_proc_arity(char const *,int,int,int,Scheme_Object **);
char *scheme_make_provided_string(Scheme_Object *,int,int *);
char *scheme_make_args_string(char *,int,int,Scheme_Object **,long *);
void scheme_no_dumps(char *);
char const *scheme_system_library_subpath();
void scheme_signal_received(void);
#ifdef PERL_OBJECT
#define MAGIC_CLASS _wrap_Language::MzScheme_var::
class _wrap_Language::MzScheme_var : public CPerlObj {
public:
#else
#define MAGIC_CLASS
#endif
SWIGCLASS_STATIC int swig_magic_readonly(pTHX_ SV *sv, MAGIC *mg) {
    MAGIC_PPERL
    sv = sv; mg = mg;
    croak("Value is read-only.");
    return 0;
}
SWIGCLASS_STATIC int _wrap_set_scheme_case_sensitive(pTHX_ SV* sv, MAGIC *mg) {
    MAGIC_PPERL
    mg = mg;
    scheme_case_sensitive = (int) SvIV(sv);
    return 1;
}


SWIGCLASS_STATIC int _wrap_val_scheme_case_sensitive(pTHX_ SV *sv, MAGIC *mg) {
    MAGIC_PPERL
    mg = mg;
    sv_setiv(sv, (IV) scheme_case_sensitive);
    return 1;
}


SWIGCLASS_STATIC int _wrap_set_scheme_config(pTHX_ SV* sv, MAGIC *mg) {
    MAGIC_PPERL
    mg = mg;
    {
        void *temp;
        if (SWIG_ConvertPtr(sv, (void **) &scheme_config, SWIGTYPE_p_Scheme_Config,0) < 0) {
            croak("Type error in argument $argnum of scheme_config. Expected _p_Scheme_Config");
        }
        scheme_config = (Scheme_Config *) temp;
    }
    return 1;
}


SWIGCLASS_STATIC int _wrap_val_scheme_config(pTHX_ SV *sv, MAGIC *mg) {
    MAGIC_PPERL
    mg = mg;
    sv_setiv(SvRV(sv),(IV) scheme_config);
    return 1;
}


SWIGCLASS_STATIC int _wrap_set_scheme_current_thread(pTHX_ SV* sv, MAGIC *mg) {
    MAGIC_PPERL
    mg = mg;
    {
        void *temp;
        if (SWIG_ConvertPtr(sv, (void **) &scheme_current_thread, SWIGTYPE_p_Scheme_Thread,0) < 0) {
            croak("Type error in argument $argnum of scheme_current_thread. Expected _p_Scheme_Thread");
        }
        scheme_current_thread = (Scheme_Thread *) temp;
    }
    return 1;
}


SWIGCLASS_STATIC int _wrap_val_scheme_current_thread(pTHX_ SV *sv, MAGIC *mg) {
    MAGIC_PPERL
    mg = mg;
    sv_setiv(SvRV(sv),(IV) scheme_current_thread);
    return 1;
}


SWIGCLASS_STATIC int _wrap_set_scheme_fuel_counter(pTHX_ SV* sv, MAGIC *mg) {
    MAGIC_PPERL
    mg = mg;
    scheme_fuel_counter = (int) SvIV(sv);
    return 1;
}


SWIGCLASS_STATIC int _wrap_val_scheme_fuel_counter(pTHX_ SV *sv, MAGIC *mg) {
    MAGIC_PPERL
    mg = mg;
    sv_setiv(sv, (IV) scheme_fuel_counter);
    return 1;
}


SWIGCLASS_STATIC int _wrap_set_scheme_eof(pTHX_ SV* sv, MAGIC *mg) {
    MAGIC_PPERL
    mg = mg;
    {
        int  i;
        Scheme_Object *temp;
        Scheme_Object *b = (Scheme_Object *) scheme_eof;
        if (SWIG_ConvertPtr(sv, (void **) &temp, SWIGTYPE_p_Scheme_Object,0) < 0) {
            croak("Type error in argument $argnum of scheme_eof. Expected _p_Scheme_Object");
        }
        for (i = 0; i < 1; i++) b[i] = temp[i];
    }
    return 1;
}


SWIGCLASS_STATIC int _wrap_val_scheme_eof(pTHX_ SV *sv, MAGIC *mg) {
    MAGIC_PPERL
    mg = mg;
    sv_setiv(SvRV(sv),(IV) scheme_eof);
    return 1;
}


SWIGCLASS_STATIC int _wrap_set_scheme_null(pTHX_ SV* sv, MAGIC *mg) {
    MAGIC_PPERL
    mg = mg;
    {
        int  i;
        Scheme_Object *temp;
        Scheme_Object *b = (Scheme_Object *) scheme_null;
        if (SWIG_ConvertPtr(sv, (void **) &temp, SWIGTYPE_p_Scheme_Object,0) < 0) {
            croak("Type error in argument $argnum of scheme_null. Expected _p_Scheme_Object");
        }
        for (i = 0; i < 1; i++) b[i] = temp[i];
    }
    return 1;
}


SWIGCLASS_STATIC int _wrap_val_scheme_null(pTHX_ SV *sv, MAGIC *mg) {
    MAGIC_PPERL
    mg = mg;
    sv_setiv(SvRV(sv),(IV) scheme_null);
    return 1;
}


SWIGCLASS_STATIC int _wrap_set_scheme_true(pTHX_ SV* sv, MAGIC *mg) {
    MAGIC_PPERL
    mg = mg;
    {
        int  i;
        Scheme_Object *temp;
        Scheme_Object *b = (Scheme_Object *) scheme_true;
        if (SWIG_ConvertPtr(sv, (void **) &temp, SWIGTYPE_p_Scheme_Object,0) < 0) {
            croak("Type error in argument $argnum of scheme_true. Expected _p_Scheme_Object");
        }
        for (i = 0; i < 1; i++) b[i] = temp[i];
    }
    return 1;
}


SWIGCLASS_STATIC int _wrap_val_scheme_true(pTHX_ SV *sv, MAGIC *mg) {
    MAGIC_PPERL
    mg = mg;
    sv_setiv(SvRV(sv),(IV) scheme_true);
    return 1;
}


SWIGCLASS_STATIC int _wrap_set_scheme_false(pTHX_ SV* sv, MAGIC *mg) {
    MAGIC_PPERL
    mg = mg;
    {
        int  i;
        Scheme_Object *temp;
        Scheme_Object *b = (Scheme_Object *) scheme_false;
        if (SWIG_ConvertPtr(sv, (void **) &temp, SWIGTYPE_p_Scheme_Object,0) < 0) {
            croak("Type error in argument $argnum of scheme_false. Expected _p_Scheme_Object");
        }
        for (i = 0; i < 1; i++) b[i] = temp[i];
    }
    return 1;
}


SWIGCLASS_STATIC int _wrap_val_scheme_false(pTHX_ SV *sv, MAGIC *mg) {
    MAGIC_PPERL
    mg = mg;
    sv_setiv(SvRV(sv),(IV) scheme_false);
    return 1;
}


SWIGCLASS_STATIC int _wrap_set_scheme_void(pTHX_ SV* sv, MAGIC *mg) {
    MAGIC_PPERL
    mg = mg;
    {
        int  i;
        Scheme_Object *temp;
        Scheme_Object *b = (Scheme_Object *) scheme_void;
        if (SWIG_ConvertPtr(sv, (void **) &temp, SWIGTYPE_p_Scheme_Object,0) < 0) {
            croak("Type error in argument $argnum of scheme_void. Expected _p_Scheme_Object");
        }
        for (i = 0; i < 1; i++) b[i] = temp[i];
    }
    return 1;
}


SWIGCLASS_STATIC int _wrap_val_scheme_void(pTHX_ SV *sv, MAGIC *mg) {
    MAGIC_PPERL
    mg = mg;
    sv_setiv(SvRV(sv),(IV) scheme_void);
    return 1;
}


SWIGCLASS_STATIC int _wrap_set_scheme_undefined(pTHX_ SV* sv, MAGIC *mg) {
    MAGIC_PPERL
    mg = mg;
    {
        int  i;
        Scheme_Object *temp;
        Scheme_Object *b = (Scheme_Object *) scheme_undefined;
        if (SWIG_ConvertPtr(sv, (void **) &temp, SWIGTYPE_p_Scheme_Object,0) < 0) {
            croak("Type error in argument $argnum of scheme_undefined. Expected _p_Scheme_Object");
        }
        for (i = 0; i < 1; i++) b[i] = temp[i];
    }
    return 1;
}


SWIGCLASS_STATIC int _wrap_val_scheme_undefined(pTHX_ SV *sv, MAGIC *mg) {
    MAGIC_PPERL
    mg = mg;
    sv_setiv(SvRV(sv),(IV) scheme_undefined);
    return 1;
}


SWIGCLASS_STATIC int _wrap_set_scheme_tail_call_waiting(pTHX_ SV* sv, MAGIC *mg) {
    MAGIC_PPERL
    mg = mg;
    {
        void *temp;
        if (SWIG_ConvertPtr(sv, (void **) &scheme_tail_call_waiting, SWIGTYPE_p_Scheme_Object,0) < 0) {
            croak("Type error in argument $argnum of scheme_tail_call_waiting. Expected _p_Scheme_Object");
        }
        scheme_tail_call_waiting = (Scheme_Object *) temp;
    }
    return 1;
}


SWIGCLASS_STATIC int _wrap_val_scheme_tail_call_waiting(pTHX_ SV *sv, MAGIC *mg) {
    MAGIC_PPERL
    mg = mg;
    sv_setiv(SvRV(sv),(IV) scheme_tail_call_waiting);
    return 1;
}


SWIGCLASS_STATIC int _wrap_set_scheme_multiple_values(pTHX_ SV* sv, MAGIC *mg) {
    MAGIC_PPERL
    mg = mg;
    {
        void *temp;
        if (SWIG_ConvertPtr(sv, (void **) &scheme_multiple_values, SWIGTYPE_p_Scheme_Object,0) < 0) {
            croak("Type error in argument $argnum of scheme_multiple_values. Expected _p_Scheme_Object");
        }
        scheme_multiple_values = (Scheme_Object *) temp;
    }
    return 1;
}


SWIGCLASS_STATIC int _wrap_val_scheme_multiple_values(pTHX_ SV *sv, MAGIC *mg) {
    MAGIC_PPERL
    mg = mg;
    sv_setiv(SvRV(sv),(IV) scheme_multiple_values);
    return 1;
}


SWIGCLASS_STATIC int _wrap_set_scheme_char_constants(pTHX_ SV* sv, MAGIC *mg) {
    MAGIC_PPERL
    mg = mg;
    {
        void *temp;
        if (SWIG_ConvertPtr(sv, (void **) &scheme_char_constants, SWIGTYPE_p_p_Scheme_Object,0) < 0) {
            croak("Type error in argument $argnum of scheme_char_constants. Expected _p_p_Scheme_Object");
        }
        scheme_char_constants = (Scheme_Object **) temp;
    }
    return 1;
}


SWIGCLASS_STATIC int _wrap_val_scheme_char_constants(pTHX_ SV *sv, MAGIC *mg) {
    MAGIC_PPERL
    mg = mg;
    sv_setiv(SvRV(sv),(IV) scheme_char_constants);
    return 1;
}




#ifdef PERL_OBJECT
};
#endif

#ifdef __cplusplus
extern "C" {
#endif
XS(_wrap_mzscheme_init) {
    {
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: mzscheme_init();");
        }
        mzscheme_init();
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_mzscheme_make_perl_prim_w_arity) {
    {
        Perl_Scalar arg1 ;
        char *arg2 = (char *) 0 ;
        int arg3 ;
        int arg4 ;
        char *arg5 = (char *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: mzscheme_make_perl_prim_w_arity(cv_ref,name,mina,maxa,sigil);");
        }
        {
            arg1 = (void *)ST(0);
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        arg3 = (int) SvIV(ST(2));
        arg4 = (int) SvIV(ST(3));
        if (!SvOK((SV*) ST(4))) arg5 = 0;
        else arg5 = (char *) SvPV(ST(4), PL_na);
        result = (Scheme_Object *)mzscheme_make_perl_prim_w_arity(arg1,(char const *)arg2,arg3,arg4,(char const *)arg5);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_mzscheme_make_perl_object_w_arity) {
    {
        Perl_Scalar arg1 ;
        char *arg2 = (char *) 0 ;
        int arg3 ;
        int arg4 ;
        char *arg5 = (char *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: mzscheme_make_perl_object_w_arity(object,name,mina,maxa,sigil);");
        }
        {
            arg1 = (void *)ST(0);
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        arg3 = (int) SvIV(ST(2));
        arg4 = (int) SvIV(ST(3));
        if (!SvOK((SV*) ST(4))) arg5 = 0;
        else arg5 = (char *) SvPV(ST(4), PL_na);
        result = (Scheme_Object *)mzscheme_make_perl_object_w_arity(arg1,(char const *)arg2,arg3,arg4,(char const *)arg5);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_mzscheme_from_perl_scalar) {
    {
        Perl_Scalar arg1 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: mzscheme_from_perl_scalar(sv);");
        }
        {
            arg1 = (void *)ST(0);
        }
        result = (Scheme_Object *)mzscheme_from_perl_scalar(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_mzscheme_from_perl_symbol) {
    {
        Perl_Scalar arg1 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: mzscheme_from_perl_symbol(sv);");
        }
        {
            arg1 = (void *)ST(0);
        }
        result = (Scheme_Object *)mzscheme_from_perl_symbol(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_mzscheme_from_perl_arrayref) {
    {
        Perl_Scalar arg1 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: mzscheme_from_perl_arrayref(sv);");
        }
        {
            arg1 = (void *)ST(0);
        }
        result = (Scheme_Object *)mzscheme_from_perl_arrayref(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_mzscheme_from_perl_hashref) {
    {
        Perl_Scalar arg1 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: mzscheme_from_perl_hashref(sv);");
        }
        {
            arg1 = (void *)ST(0);
        }
        result = (Scheme_Object *)mzscheme_from_perl_hashref(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_mzscheme_to_perl_scalar) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Perl_Scalar result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: mzscheme_to_perl_scalar(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of mzscheme_to_perl_scalar. Expected _p_Scheme_Object");
            }
        }
        result = mzscheme_to_perl_scalar(arg1);
        
        {
            ST(argvi) = newSVsv((SV *)result);
            sv_2mortal(ST(argvi));
            argvi++;
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_mzscheme_do_apply) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int arg2 ;
        Scheme_Object **arg3 = (Scheme_Object **) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: mzscheme_do_apply(f,c,args);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of mzscheme_do_apply. Expected _p_Scheme_Object");
            }
        }
        arg2 = (int) SvIV(ST(1));
        {
            arg3 = _mzscheme_from_perl_arrayref_to_objects(ST(2));
        }
        result = (Scheme_Object *)mzscheme_do_apply(arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        {
            free(arg3);
        }
        XSRETURN(argvi);
        fail:
        {
            free(arg3);
        }
        ;
    }
    croak(Nullch);
}


XS(_wrap_mzscheme_do_eval) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Env *arg2 = (Scheme_Env *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: mzscheme_do_eval(expr,env);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of mzscheme_do_eval. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Env,0) < 0) {
                SWIG_croak("Type error in argument 2 of mzscheme_do_eval. Expected _p_Scheme_Env");
            }
        }
        result = (Scheme_Object *)mzscheme_do_eval(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_mzscheme_do_eval_string_all) {
    {
        char *arg1 = (char *) 0 ;
        Scheme_Env *arg2 = (Scheme_Env *) 0 ;
        int arg3 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: mzscheme_do_eval_string_all(str,env,all);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Env,0) < 0) {
                SWIG_croak("Type error in argument 2 of mzscheme_do_eval_string_all. Expected _p_Scheme_Env");
            }
        }
        arg3 = (int) SvIV(ST(2));
        result = (Scheme_Object *)mzscheme_do_eval_string_all(arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_MZSCHEME_REFADDR) {
    {
        Perl_Scalar arg1 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: MZSCHEME_REFADDR(sv);");
        }
        {
            arg1 = (void *)ST(0);
        }
        result = (int)MZSCHEME_REFADDR(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_MZSCHEME_UNDEFP) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: MZSCHEME_UNDEFP(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of MZSCHEME_UNDEFP. Expected _p_Scheme_Object");
            }
        }
        result = (int)MZSCHEME_UNDEFP(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_MZSCHEME_ALISTP) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: MZSCHEME_ALISTP(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of MZSCHEME_ALISTP. Expected _p_Scheme_Object");
            }
        }
        result = (int)MZSCHEME_ALISTP(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_MZSCHEME_CODE_REFP) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: MZSCHEME_CODE_REFP(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of MZSCHEME_CODE_REFP. Expected _p_Scheme_Object");
            }
        }
        result = (int)MZSCHEME_CODE_REFP(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_MZSCHEME_HASH_REFP) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: MZSCHEME_HASH_REFP(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of MZSCHEME_HASH_REFP. Expected _p_Scheme_Object");
            }
        }
        result = (int)MZSCHEME_HASH_REFP(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_MZSCHEME_ARRAY_REFP) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: MZSCHEME_ARRAY_REFP(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of MZSCHEME_ARRAY_REFP. Expected _p_Scheme_Object");
            }
        }
        result = (int)MZSCHEME_ARRAY_REFP(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_MZSCHEME_GLOB_REFP) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: MZSCHEME_GLOB_REFP(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of MZSCHEME_GLOB_REFP. Expected _p_Scheme_Object");
            }
        }
        result = (int)MZSCHEME_GLOB_REFP(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_MZSCHEME_SCALAR_REFP) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: MZSCHEME_SCALAR_REFP(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of MZSCHEME_SCALAR_REFP. Expected _p_Scheme_Object");
            }
        }
        result = (int)MZSCHEME_SCALAR_REFP(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_MZSCHEME_PERLP) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: MZSCHEME_PERLP(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of MZSCHEME_PERLP. Expected _p_Scheme_Object");
            }
        }
        result = (int)MZSCHEME_PERLP(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_TYPE) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Type result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_TYPE(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_TYPE. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Type)SCHEME_TYPE(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_PROCP) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_PROCP(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_PROCP. Expected _p_Scheme_Object");
            }
        }
        result = (int)SCHEME_PROCP(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_SYNTAXP) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_SYNTAXP(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_SYNTAXP. Expected _p_Scheme_Object");
            }
        }
        result = (int)SCHEME_SYNTAXP(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_PRIMP) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_PRIMP(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_PRIMP. Expected _p_Scheme_Object");
            }
        }
        result = (int)SCHEME_PRIMP(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_CLSD_PRIMP) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_CLSD_PRIMP(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_CLSD_PRIMP. Expected _p_Scheme_Object");
            }
        }
        result = (int)SCHEME_CLSD_PRIMP(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_CONTP) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_CONTP(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_CONTP. Expected _p_Scheme_Object");
            }
        }
        result = (int)SCHEME_CONTP(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_ECONTP) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_ECONTP(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_ECONTP. Expected _p_Scheme_Object");
            }
        }
        result = (int)SCHEME_ECONTP(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_PROC_STRUCTP) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_PROC_STRUCTP(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_PROC_STRUCTP. Expected _p_Scheme_Object");
            }
        }
        result = (int)SCHEME_PROC_STRUCTP(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_STRUCT_PROCP) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_STRUCT_PROCP(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_STRUCT_PROCP. Expected _p_Scheme_Object");
            }
        }
        result = (int)SCHEME_STRUCT_PROCP(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_GENERICP) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_GENERICP(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_GENERICP. Expected _p_Scheme_Object");
            }
        }
        result = (int)SCHEME_GENERICP(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_CLOSUREP) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_CLOSUREP(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_CLOSUREP. Expected _p_Scheme_Object");
            }
        }
        result = (int)SCHEME_CLOSUREP(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_CHARP) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_CHARP(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_CHARP. Expected _p_Scheme_Object");
            }
        }
        result = (int)SCHEME_CHARP(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_STRINGP) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_STRINGP(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_STRINGP. Expected _p_Scheme_Object");
            }
        }
        result = (int)SCHEME_STRINGP(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_SYMBOLP) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_SYMBOLP(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_SYMBOLP. Expected _p_Scheme_Object");
            }
        }
        result = (int)SCHEME_SYMBOLP(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_STRSYMP) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_STRSYMP(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_STRSYMP. Expected _p_Scheme_Object");
            }
        }
        result = (int)SCHEME_STRSYMP(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_BOOLP) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_BOOLP(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_BOOLP. Expected _p_Scheme_Object");
            }
        }
        result = (int)SCHEME_BOOLP(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_FALSEP) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_FALSEP(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_FALSEP. Expected _p_Scheme_Object");
            }
        }
        result = (int)SCHEME_FALSEP(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_TRUEP) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_TRUEP(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_TRUEP. Expected _p_Scheme_Object");
            }
        }
        result = (int)SCHEME_TRUEP(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_EOFP) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_EOFP(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_EOFP. Expected _p_Scheme_Object");
            }
        }
        result = (int)SCHEME_EOFP(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_VOIDP) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_VOIDP(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_VOIDP. Expected _p_Scheme_Object");
            }
        }
        result = (int)SCHEME_VOIDP(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_NULLP) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_NULLP(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_NULLP. Expected _p_Scheme_Object");
            }
        }
        result = (int)SCHEME_NULLP(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_PAIRP) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_PAIRP(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_PAIRP. Expected _p_Scheme_Object");
            }
        }
        result = (int)SCHEME_PAIRP(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_LISTP) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_LISTP(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_LISTP. Expected _p_Scheme_Object");
            }
        }
        result = (int)SCHEME_LISTP(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_VECTORP) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_VECTORP(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_VECTORP. Expected _p_Scheme_Object");
            }
        }
        result = (int)SCHEME_VECTORP(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_BOXP) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_BOXP(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_BOXP. Expected _p_Scheme_Object");
            }
        }
        result = (int)SCHEME_BOXP(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_BUCKTP) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_BUCKTP(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_BUCKTP. Expected _p_Scheme_Object");
            }
        }
        result = (int)SCHEME_BUCKTP(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_HASHTP) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_HASHTP(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_HASHTP. Expected _p_Scheme_Object");
            }
        }
        result = (int)SCHEME_HASHTP(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_INPORTP) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_INPORTP(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_INPORTP. Expected _p_Scheme_Object");
            }
        }
        result = (int)SCHEME_INPORTP(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_OUTPORTP) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_OUTPORTP(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_OUTPORTP. Expected _p_Scheme_Object");
            }
        }
        result = (int)SCHEME_OUTPORTP(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_CHAR_VAL) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        char result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_CHAR_VAL(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_CHAR_VAL. Expected _p_Scheme_Object");
            }
        }
        result = (char)SCHEME_CHAR_VAL(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setpvn((SV*)ST(argvi++), &result, 1);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_INT_VAL) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_INT_VAL(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_INT_VAL. Expected _p_Scheme_Object");
            }
        }
        result = (int)SCHEME_INT_VAL(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_DBL_VAL) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_DBL_VAL(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_DBL_VAL. Expected _p_Scheme_Object");
            }
        }
        result = (double)SCHEME_DBL_VAL(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_FLT_VAL) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        float result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_FLT_VAL(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_FLT_VAL. Expected _p_Scheme_Object");
            }
        }
        result = (float)SCHEME_FLT_VAL(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_FLOAT_VAL) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_FLOAT_VAL(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_FLOAT_VAL. Expected _p_Scheme_Object");
            }
        }
        result = (double)SCHEME_FLOAT_VAL(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_STR_VAL) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_STR_VAL(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_STR_VAL. Expected _p_Scheme_Object");
            }
        }
        result = (char *)SCHEME_STR_VAL(arg1);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_STRTAG_VAL) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_STRTAG_VAL(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_STRTAG_VAL. Expected _p_Scheme_Object");
            }
        }
        result = (char *)SCHEME_STRTAG_VAL(arg1);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_STRLEN_VAL) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_STRLEN_VAL(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_STRLEN_VAL. Expected _p_Scheme_Object");
            }
        }
        result = (char *)SCHEME_STRLEN_VAL(arg1);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_SYM_VAL) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_SYM_VAL(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_SYM_VAL. Expected _p_Scheme_Object");
            }
        }
        result = (char *)SCHEME_SYM_VAL(arg1);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_SYM_LEN) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_SYM_LEN(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_SYM_LEN. Expected _p_Scheme_Object");
            }
        }
        result = (int)SCHEME_SYM_LEN(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_SYMSTR_OFFSET) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        unsigned long result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_SYMSTR_OFFSET(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_SYMSTR_OFFSET. Expected _p_Scheme_Object");
            }
        }
        result = (unsigned long)SCHEME_SYMSTR_OFFSET(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setuv(ST(argvi++), (UV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_STRSYM_VAL) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_STRSYM_VAL(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_STRSYM_VAL. Expected _p_Scheme_Object");
            }
        }
        result = (char *)SCHEME_STRSYM_VAL(arg1);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_BOX_VAL) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_BOX_VAL(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_BOX_VAL. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)SCHEME_BOX_VAL(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_VEC_SIZE) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_VEC_SIZE(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_VEC_SIZE. Expected _p_Scheme_Object");
            }
        }
        result = (int)SCHEME_VEC_SIZE(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_VEC_ELS) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object **result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_VEC_ELS(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_VEC_ELS. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object **)SCHEME_VEC_ELS(arg1);
        
        {
            ST(argvi) = newRV((SV *)_mzscheme_objects_AV((void **)result, (char *)&SWIGTYPE_p_Scheme_Object));
            sv_2mortal(ST(argvi));
            argvi++;
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_VEC_BASE) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object **result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_VEC_BASE(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_VEC_BASE. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object **)SCHEME_VEC_BASE(arg1);
        
        {
            ST(argvi) = newRV((SV *)_mzscheme_objects_AV((void **)result, (char *)&SWIGTYPE_p_Scheme_Object));
            sv_2mortal(ST(argvi));
            argvi++;
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_CAR) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_CAR(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_CAR. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)SCHEME_CAR(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_CDR) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_CDR(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_CDR. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)SCHEME_CDR(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_CADR) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_CADR(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_CADR. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)SCHEME_CADR(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_CAAR) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_CAAR(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_CAAR. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)SCHEME_CAAR(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_SCHEME_CDDR) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: SCHEME_CDDR(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of SCHEME_CDDR. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)SCHEME_CDDR(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_basic_env) {
    {
        Scheme_Env *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: scheme_basic_env();");
        }
        result = (Scheme_Env *)scheme_basic_env();
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Env, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_integer) {
    {
        int arg1 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_make_integer(i);");
        }
        arg1 = (int) SvIV(ST(0));
        result = (Scheme_Object *)scheme_make_integer(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_character) {
    {
        char arg1 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_make_character(ch);");
        }
        arg1 = (char) *SvPV(ST(0),PL_na);
        result = (Scheme_Object *)scheme_make_character(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_set_param) {
    {
        Scheme_Config *arg1 = (Scheme_Config *) 0 ;
        int arg2 ;
        Scheme_Object *arg3 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: scheme_set_param(c,pos,o);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Config,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_set_param. Expected _p_Scheme_Config");
            }
        }
        arg2 = (int) SvIV(ST(1));
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 3 of scheme_set_param. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_set_param(arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_get_param) {
    {
        Scheme_Config *arg1 = (Scheme_Config *) 0 ;
        int arg2 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_get_param(c,pos);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Config,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_get_param. Expected _p_Scheme_Config");
            }
        }
        arg2 = (int) SvIV(ST(1));
        result = (Scheme_Object *)scheme_get_param(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_alloc_object) {
    {
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: scheme_alloc_object();");
        }
        result = (Scheme_Object *)scheme_alloc_object();
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_alloc_small_object) {
    {
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: scheme_alloc_small_object();");
        }
        result = (Scheme_Object *)scheme_alloc_small_object();
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_alloc_stubborn_object) {
    {
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: scheme_alloc_stubborn_object();");
        }
        result = (Scheme_Object *)scheme_alloc_stubborn_object();
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_alloc_stubborn_small_object) {
    {
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: scheme_alloc_stubborn_small_object();");
        }
        result = (Scheme_Object *)scheme_alloc_stubborn_small_object();
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_alloc_eternal_object) {
    {
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: scheme_alloc_eternal_object();");
        }
        result = (Scheme_Object *)scheme_alloc_eternal_object();
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_alloc_eternal_small_object) {
    {
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: scheme_alloc_eternal_small_object();");
        }
        result = (Scheme_Object *)scheme_alloc_eternal_small_object();
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Object_type_set) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Type arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Object_type_set(self,type);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Object_type_set. Expected _p_Scheme_Object");
            }
        }
        arg2 = (Scheme_Type) SvIV(ST(1));
        if (arg1) (arg1)->type = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Object_type_get) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Type result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Object_type_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Object_type_get. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Type) ((arg1)->type);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Object_keyex_set) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        short arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Object_keyex_set(self,keyex);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Object_keyex_set. Expected _p_Scheme_Object");
            }
        }
        arg2 = (short) SvIV(ST(1));
        if (arg1) (arg1)->keyex = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Object_keyex_get) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        short result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Object_keyex_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Object_keyex_get. Expected _p_Scheme_Object");
            }
        }
        result = (short) ((arg1)->keyex);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Object_u_get) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object_u *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Object_u_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Object_u_get. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object_u *)& ((arg1)->u);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object_u, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_Scheme_Object) {
    {
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_Scheme_Object();");
        }
        result = (Scheme_Object *)(Scheme_Object *) calloc(1, sizeof(Scheme_Object));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_Scheme_Object) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_Scheme_Object(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_Scheme_Object. Expected _p_Scheme_Object");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Object_u_svector_val_get) {
    {
        Scheme_Object_u *arg1 = (Scheme_Object_u *) 0 ;
        Scheme_Object_u_svector_val *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Object_u_svector_val_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object_u,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Object_u_svector_val_get. Expected _p_Scheme_Object_u");
            }
        }
        result = (Scheme_Object_u_svector_val *)& ((arg1)->svector_val);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object_u_svector_val, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Object_u_pair_val_get) {
    {
        Scheme_Object_u *arg1 = (Scheme_Object_u *) 0 ;
        Scheme_Object_u_pair_val *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Object_u_pair_val_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object_u,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Object_u_pair_val_get. Expected _p_Scheme_Object_u");
            }
        }
        result = (Scheme_Object_u_pair_val *)& ((arg1)->pair_val);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object_u_pair_val, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Object_u_ptr_long_val_get) {
    {
        Scheme_Object_u *arg1 = (Scheme_Object_u *) 0 ;
        Scheme_Object_u_ptr_long_val *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Object_u_ptr_long_val_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object_u,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Object_u_ptr_long_val_get. Expected _p_Scheme_Object_u");
            }
        }
        result = (Scheme_Object_u_ptr_long_val *)& ((arg1)->ptr_long_val);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object_u_ptr_long_val, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Object_u_ptr_int_val_get) {
    {
        Scheme_Object_u *arg1 = (Scheme_Object_u *) 0 ;
        Scheme_Object_u_ptr_int_val *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Object_u_ptr_int_val_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object_u,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Object_u_ptr_int_val_get. Expected _p_Scheme_Object_u");
            }
        }
        result = (Scheme_Object_u_ptr_int_val *)& ((arg1)->ptr_int_val);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object_u_ptr_int_val, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Object_u_two_int_val_get) {
    {
        Scheme_Object_u *arg1 = (Scheme_Object_u *) 0 ;
        Scheme_Object_u_two_int_val *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Object_u_two_int_val_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object_u,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Object_u_two_int_val_get. Expected _p_Scheme_Object_u");
            }
        }
        result = (Scheme_Object_u_two_int_val *)& ((arg1)->two_int_val);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object_u_two_int_val, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Object_u_two_ptr_val_get) {
    {
        Scheme_Object_u *arg1 = (Scheme_Object_u *) 0 ;
        Scheme_Object_u_two_ptr_val *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Object_u_two_ptr_val_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object_u,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Object_u_two_ptr_val_get. Expected _p_Scheme_Object_u");
            }
        }
        result = (Scheme_Object_u_two_ptr_val *)& ((arg1)->two_ptr_val);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object_u_two_ptr_val, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Object_u_str_val_get) {
    {
        Scheme_Object_u *arg1 = (Scheme_Object_u *) 0 ;
        Scheme_Object_u_str_val *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Object_u_str_val_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object_u,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Object_u_str_val_get. Expected _p_Scheme_Object_u");
            }
        }
        result = (Scheme_Object_u_str_val *)& ((arg1)->str_val);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object_u_str_val, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_Scheme_Object_u) {
    {
        Scheme_Object_u *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_Scheme_Object_u();");
        }
        result = (Scheme_Object_u *)(Scheme_Object_u *) calloc(1, sizeof(Scheme_Object_u));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object_u, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_Scheme_Object_u) {
    {
        Scheme_Object_u *arg1 = (Scheme_Object_u *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_Scheme_Object_u(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object_u,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_Scheme_Object_u. Expected _p_Scheme_Object_u");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Object_u_svector_val_len_set) {
    {
        Scheme_Object_u_svector_val *arg1 = (Scheme_Object_u_svector_val *) 0 ;
        mzshort arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Object_u_svector_val_len_set(self,len);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object_u_svector_val,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Object_u_svector_val_len_set. Expected _p_Scheme_Object_u_svector_val");
            }
        }
        arg2 = (mzshort) SvIV(ST(1));
        if (arg1) (arg1)->len = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Object_u_svector_val_len_get) {
    {
        Scheme_Object_u_svector_val *arg1 = (Scheme_Object_u_svector_val *) 0 ;
        mzshort result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Object_u_svector_val_len_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object_u_svector_val,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Object_u_svector_val_len_get. Expected _p_Scheme_Object_u_svector_val");
            }
        }
        result = (mzshort) ((arg1)->len);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Object_u_svector_val_vec_set) {
    {
        Scheme_Object_u_svector_val *arg1 = (Scheme_Object_u_svector_val *) 0 ;
        mzshort *arg2 = (mzshort *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Object_u_svector_val_vec_set(self,vec);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object_u_svector_val,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Object_u_svector_val_vec_set. Expected _p_Scheme_Object_u_svector_val");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_int,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Object_u_svector_val_vec_set. Expected _p_int");
            }
        }
        if (arg1) (arg1)->vec = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Object_u_svector_val_vec_get) {
    {
        Scheme_Object_u_svector_val *arg1 = (Scheme_Object_u_svector_val *) 0 ;
        mzshort *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Object_u_svector_val_vec_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object_u_svector_val,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Object_u_svector_val_vec_get. Expected _p_Scheme_Object_u_svector_val");
            }
        }
        result = (mzshort *) ((arg1)->vec);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_int, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_Scheme_Object_u_svector_val) {
    {
        Scheme_Object_u_svector_val *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_Scheme_Object_u_svector_val();");
        }
        result = (Scheme_Object_u_svector_val *)(Scheme_Object_u_svector_val *) calloc(1, sizeof(Scheme_Object_u_svector_val));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object_u_svector_val, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_Scheme_Object_u_svector_val) {
    {
        Scheme_Object_u_svector_val *arg1 = (Scheme_Object_u_svector_val *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_Scheme_Object_u_svector_val(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object_u_svector_val,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_Scheme_Object_u_svector_val. Expected _p_Scheme_Object_u_svector_val");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Object_u_pair_val_car_set) {
    {
        Scheme_Object_u_pair_val *arg1 = (Scheme_Object_u_pair_val *) 0 ;
        struct Scheme_Object *arg2 = (struct Scheme_Object *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Object_u_pair_val_car_set(self,car);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object_u_pair_val,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Object_u_pair_val_car_set. Expected _p_Scheme_Object_u_pair_val");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Object_u_pair_val_car_set. Expected _p_Scheme_Object");
            }
        }
        if (arg1) (arg1)->car = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Object_u_pair_val_car_get) {
    {
        Scheme_Object_u_pair_val *arg1 = (Scheme_Object_u_pair_val *) 0 ;
        struct Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Object_u_pair_val_car_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object_u_pair_val,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Object_u_pair_val_car_get. Expected _p_Scheme_Object_u_pair_val");
            }
        }
        result = (struct Scheme_Object *) ((arg1)->car);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Object_u_pair_val_cdr_set) {
    {
        Scheme_Object_u_pair_val *arg1 = (Scheme_Object_u_pair_val *) 0 ;
        struct Scheme_Object *arg2 = (struct Scheme_Object *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Object_u_pair_val_cdr_set(self,cdr);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object_u_pair_val,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Object_u_pair_val_cdr_set. Expected _p_Scheme_Object_u_pair_val");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Object_u_pair_val_cdr_set. Expected _p_Scheme_Object");
            }
        }
        if (arg1) (arg1)->cdr = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Object_u_pair_val_cdr_get) {
    {
        Scheme_Object_u_pair_val *arg1 = (Scheme_Object_u_pair_val *) 0 ;
        struct Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Object_u_pair_val_cdr_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object_u_pair_val,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Object_u_pair_val_cdr_get. Expected _p_Scheme_Object_u_pair_val");
            }
        }
        result = (struct Scheme_Object *) ((arg1)->cdr);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_Scheme_Object_u_pair_val) {
    {
        Scheme_Object_u_pair_val *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_Scheme_Object_u_pair_val();");
        }
        result = (Scheme_Object_u_pair_val *)(Scheme_Object_u_pair_val *) calloc(1, sizeof(Scheme_Object_u_pair_val));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object_u_pair_val, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_Scheme_Object_u_pair_val) {
    {
        Scheme_Object_u_pair_val *arg1 = (Scheme_Object_u_pair_val *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_Scheme_Object_u_pair_val(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object_u_pair_val,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_Scheme_Object_u_pair_val. Expected _p_Scheme_Object_u_pair_val");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Object_u_ptr_long_val_ptr_set) {
    {
        Scheme_Object_u_ptr_long_val *arg1 = (Scheme_Object_u_ptr_long_val *) 0 ;
        void *arg2 = (void *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Object_u_ptr_long_val_ptr_set(self,ptr);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object_u_ptr_long_val,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Object_u_ptr_long_val_ptr_set. Expected _p_Scheme_Object_u_ptr_long_val");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Object_u_ptr_long_val_ptr_set. Expected _p_void");
            }
        }
        if (arg1) (arg1)->ptr = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Object_u_ptr_long_val_ptr_get) {
    {
        Scheme_Object_u_ptr_long_val *arg1 = (Scheme_Object_u_ptr_long_val *) 0 ;
        void *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Object_u_ptr_long_val_ptr_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object_u_ptr_long_val,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Object_u_ptr_long_val_ptr_get. Expected _p_Scheme_Object_u_ptr_long_val");
            }
        }
        result = (void *) ((arg1)->ptr);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_void, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Object_u_ptr_long_val_pint_set) {
    {
        Scheme_Object_u_ptr_long_val *arg1 = (Scheme_Object_u_ptr_long_val *) 0 ;
        long arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Object_u_ptr_long_val_pint_set(self,pint);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object_u_ptr_long_val,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Object_u_ptr_long_val_pint_set. Expected _p_Scheme_Object_u_ptr_long_val");
            }
        }
        arg2 = (long) SvIV(ST(1));
        if (arg1) (arg1)->pint = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Object_u_ptr_long_val_pint_get) {
    {
        Scheme_Object_u_ptr_long_val *arg1 = (Scheme_Object_u_ptr_long_val *) 0 ;
        long result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Object_u_ptr_long_val_pint_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object_u_ptr_long_val,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Object_u_ptr_long_val_pint_get. Expected _p_Scheme_Object_u_ptr_long_val");
            }
        }
        result = (long) ((arg1)->pint);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_Scheme_Object_u_ptr_long_val) {
    {
        Scheme_Object_u_ptr_long_val *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_Scheme_Object_u_ptr_long_val();");
        }
        result = (Scheme_Object_u_ptr_long_val *)(Scheme_Object_u_ptr_long_val *) calloc(1, sizeof(Scheme_Object_u_ptr_long_val));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object_u_ptr_long_val, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_Scheme_Object_u_ptr_long_val) {
    {
        Scheme_Object_u_ptr_long_val *arg1 = (Scheme_Object_u_ptr_long_val *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_Scheme_Object_u_ptr_long_val(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object_u_ptr_long_val,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_Scheme_Object_u_ptr_long_val. Expected _p_Scheme_Object_u_ptr_long_val");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Object_u_ptr_int_val_ptr_set) {
    {
        Scheme_Object_u_ptr_int_val *arg1 = (Scheme_Object_u_ptr_int_val *) 0 ;
        void *arg2 = (void *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Object_u_ptr_int_val_ptr_set(self,ptr);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object_u_ptr_int_val,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Object_u_ptr_int_val_ptr_set. Expected _p_Scheme_Object_u_ptr_int_val");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Object_u_ptr_int_val_ptr_set. Expected _p_void");
            }
        }
        if (arg1) (arg1)->ptr = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Object_u_ptr_int_val_ptr_get) {
    {
        Scheme_Object_u_ptr_int_val *arg1 = (Scheme_Object_u_ptr_int_val *) 0 ;
        void *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Object_u_ptr_int_val_ptr_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object_u_ptr_int_val,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Object_u_ptr_int_val_ptr_get. Expected _p_Scheme_Object_u_ptr_int_val");
            }
        }
        result = (void *) ((arg1)->ptr);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_void, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Object_u_ptr_int_val_pint_set) {
    {
        Scheme_Object_u_ptr_int_val *arg1 = (Scheme_Object_u_ptr_int_val *) 0 ;
        int arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Object_u_ptr_int_val_pint_set(self,pint);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object_u_ptr_int_val,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Object_u_ptr_int_val_pint_set. Expected _p_Scheme_Object_u_ptr_int_val");
            }
        }
        arg2 = (int) SvIV(ST(1));
        if (arg1) (arg1)->pint = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Object_u_ptr_int_val_pint_get) {
    {
        Scheme_Object_u_ptr_int_val *arg1 = (Scheme_Object_u_ptr_int_val *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Object_u_ptr_int_val_pint_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object_u_ptr_int_val,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Object_u_ptr_int_val_pint_get. Expected _p_Scheme_Object_u_ptr_int_val");
            }
        }
        result = (int) ((arg1)->pint);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_Scheme_Object_u_ptr_int_val) {
    {
        Scheme_Object_u_ptr_int_val *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_Scheme_Object_u_ptr_int_val();");
        }
        result = (Scheme_Object_u_ptr_int_val *)(Scheme_Object_u_ptr_int_val *) calloc(1, sizeof(Scheme_Object_u_ptr_int_val));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object_u_ptr_int_val, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_Scheme_Object_u_ptr_int_val) {
    {
        Scheme_Object_u_ptr_int_val *arg1 = (Scheme_Object_u_ptr_int_val *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_Scheme_Object_u_ptr_int_val(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object_u_ptr_int_val,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_Scheme_Object_u_ptr_int_val. Expected _p_Scheme_Object_u_ptr_int_val");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Object_u_two_int_val_int1_set) {
    {
        Scheme_Object_u_two_int_val *arg1 = (Scheme_Object_u_two_int_val *) 0 ;
        int arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Object_u_two_int_val_int1_set(self,int1);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object_u_two_int_val,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Object_u_two_int_val_int1_set. Expected _p_Scheme_Object_u_two_int_val");
            }
        }
        arg2 = (int) SvIV(ST(1));
        if (arg1) (arg1)->int1 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Object_u_two_int_val_int1_get) {
    {
        Scheme_Object_u_two_int_val *arg1 = (Scheme_Object_u_two_int_val *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Object_u_two_int_val_int1_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object_u_two_int_val,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Object_u_two_int_val_int1_get. Expected _p_Scheme_Object_u_two_int_val");
            }
        }
        result = (int) ((arg1)->int1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Object_u_two_int_val_int2_set) {
    {
        Scheme_Object_u_two_int_val *arg1 = (Scheme_Object_u_two_int_val *) 0 ;
        int arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Object_u_two_int_val_int2_set(self,int2);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object_u_two_int_val,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Object_u_two_int_val_int2_set. Expected _p_Scheme_Object_u_two_int_val");
            }
        }
        arg2 = (int) SvIV(ST(1));
        if (arg1) (arg1)->int2 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Object_u_two_int_val_int2_get) {
    {
        Scheme_Object_u_two_int_val *arg1 = (Scheme_Object_u_two_int_val *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Object_u_two_int_val_int2_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object_u_two_int_val,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Object_u_two_int_val_int2_get. Expected _p_Scheme_Object_u_two_int_val");
            }
        }
        result = (int) ((arg1)->int2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_Scheme_Object_u_two_int_val) {
    {
        Scheme_Object_u_two_int_val *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_Scheme_Object_u_two_int_val();");
        }
        result = (Scheme_Object_u_two_int_val *)(Scheme_Object_u_two_int_val *) calloc(1, sizeof(Scheme_Object_u_two_int_val));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object_u_two_int_val, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_Scheme_Object_u_two_int_val) {
    {
        Scheme_Object_u_two_int_val *arg1 = (Scheme_Object_u_two_int_val *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_Scheme_Object_u_two_int_val(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object_u_two_int_val,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_Scheme_Object_u_two_int_val. Expected _p_Scheme_Object_u_two_int_val");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Object_u_two_ptr_val_ptr1_set) {
    {
        Scheme_Object_u_two_ptr_val *arg1 = (Scheme_Object_u_two_ptr_val *) 0 ;
        void *arg2 = (void *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Object_u_two_ptr_val_ptr1_set(self,ptr1);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object_u_two_ptr_val,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Object_u_two_ptr_val_ptr1_set. Expected _p_Scheme_Object_u_two_ptr_val");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Object_u_two_ptr_val_ptr1_set. Expected _p_void");
            }
        }
        if (arg1) (arg1)->ptr1 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Object_u_two_ptr_val_ptr1_get) {
    {
        Scheme_Object_u_two_ptr_val *arg1 = (Scheme_Object_u_two_ptr_val *) 0 ;
        void *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Object_u_two_ptr_val_ptr1_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object_u_two_ptr_val,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Object_u_two_ptr_val_ptr1_get. Expected _p_Scheme_Object_u_two_ptr_val");
            }
        }
        result = (void *) ((arg1)->ptr1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_void, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Object_u_two_ptr_val_ptr2_set) {
    {
        Scheme_Object_u_two_ptr_val *arg1 = (Scheme_Object_u_two_ptr_val *) 0 ;
        void *arg2 = (void *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Object_u_two_ptr_val_ptr2_set(self,ptr2);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object_u_two_ptr_val,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Object_u_two_ptr_val_ptr2_set. Expected _p_Scheme_Object_u_two_ptr_val");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Object_u_two_ptr_val_ptr2_set. Expected _p_void");
            }
        }
        if (arg1) (arg1)->ptr2 = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Object_u_two_ptr_val_ptr2_get) {
    {
        Scheme_Object_u_two_ptr_val *arg1 = (Scheme_Object_u_two_ptr_val *) 0 ;
        void *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Object_u_two_ptr_val_ptr2_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object_u_two_ptr_val,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Object_u_two_ptr_val_ptr2_get. Expected _p_Scheme_Object_u_two_ptr_val");
            }
        }
        result = (void *) ((arg1)->ptr2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_void, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_Scheme_Object_u_two_ptr_val) {
    {
        Scheme_Object_u_two_ptr_val *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_Scheme_Object_u_two_ptr_val();");
        }
        result = (Scheme_Object_u_two_ptr_val *)(Scheme_Object_u_two_ptr_val *) calloc(1, sizeof(Scheme_Object_u_two_ptr_val));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object_u_two_ptr_val, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_Scheme_Object_u_two_ptr_val) {
    {
        Scheme_Object_u_two_ptr_val *arg1 = (Scheme_Object_u_two_ptr_val *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_Scheme_Object_u_two_ptr_val(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object_u_two_ptr_val,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_Scheme_Object_u_two_ptr_val. Expected _p_Scheme_Object_u_two_ptr_val");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Object_u_str_val_string_val_set) {
    {
        Scheme_Object_u_str_val *arg1 = (Scheme_Object_u_str_val *) 0 ;
        char *arg2 = (char *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Object_u_str_val_string_val_set(self,string_val);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object_u_str_val,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Object_u_str_val_string_val_set. Expected _p_Scheme_Object_u_str_val");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        {
            if (arg1->string_val) free((char*)arg1->string_val);
            if (arg2) {
                arg1->string_val = (char *) malloc(strlen(arg2)+1);
                strcpy((char*)arg1->string_val,arg2);
            } else {
                arg1->string_val = 0;
            }
        }
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Object_u_str_val_string_val_get) {
    {
        Scheme_Object_u_str_val *arg1 = (Scheme_Object_u_str_val *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Object_u_str_val_string_val_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object_u_str_val,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Object_u_str_val_string_val_get. Expected _p_Scheme_Object_u_str_val");
            }
        }
        result = (char *) ((arg1)->string_val);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Object_u_str_val_tag_val_set) {
    {
        Scheme_Object_u_str_val *arg1 = (Scheme_Object_u_str_val *) 0 ;
        int arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Object_u_str_val_tag_val_set(self,tag_val);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object_u_str_val,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Object_u_str_val_tag_val_set. Expected _p_Scheme_Object_u_str_val");
            }
        }
        arg2 = (int) SvIV(ST(1));
        if (arg1) (arg1)->tag_val = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Object_u_str_val_tag_val_get) {
    {
        Scheme_Object_u_str_val *arg1 = (Scheme_Object_u_str_val *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Object_u_str_val_tag_val_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object_u_str_val,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Object_u_str_val_tag_val_get. Expected _p_Scheme_Object_u_str_val");
            }
        }
        result = (int) ((arg1)->tag_val);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_Scheme_Object_u_str_val) {
    {
        Scheme_Object_u_str_val *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_Scheme_Object_u_str_val();");
        }
        result = (Scheme_Object_u_str_val *)(Scheme_Object_u_str_val *) calloc(1, sizeof(Scheme_Object_u_str_val));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object_u_str_val, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_Scheme_Object_u_str_val) {
    {
        Scheme_Object_u_str_val *arg1 = (Scheme_Object_u_str_val *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_Scheme_Object_u_str_val(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object_u_str_val,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_Scheme_Object_u_str_val. Expected _p_Scheme_Object_u_str_val");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Small_Object_type_set) {
    {
        Scheme_Small_Object *arg1 = (Scheme_Small_Object *) 0 ;
        Scheme_Type arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Small_Object_type_set(self,type);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Small_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Small_Object_type_set. Expected _p_Scheme_Small_Object");
            }
        }
        arg2 = (Scheme_Type) SvIV(ST(1));
        if (arg1) (arg1)->type = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Small_Object_type_get) {
    {
        Scheme_Small_Object *arg1 = (Scheme_Small_Object *) 0 ;
        Scheme_Type result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Small_Object_type_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Small_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Small_Object_type_get. Expected _p_Scheme_Small_Object");
            }
        }
        result = (Scheme_Type) ((arg1)->type);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Small_Object_u_get) {
    {
        Scheme_Small_Object *arg1 = (Scheme_Small_Object *) 0 ;
        Scheme_Small_Object_u *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Small_Object_u_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Small_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Small_Object_u_get. Expected _p_Scheme_Small_Object");
            }
        }
        result = (Scheme_Small_Object_u *)& ((arg1)->u);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Small_Object_u, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_Scheme_Small_Object) {
    {
        Scheme_Small_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_Scheme_Small_Object();");
        }
        result = (Scheme_Small_Object *)(Scheme_Small_Object *) calloc(1, sizeof(Scheme_Small_Object));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Small_Object, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_Scheme_Small_Object) {
    {
        Scheme_Small_Object *arg1 = (Scheme_Small_Object *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_Scheme_Small_Object(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Small_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_Scheme_Small_Object. Expected _p_Scheme_Small_Object");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Small_Object_u_char_val_set) {
    {
        Scheme_Small_Object_u *arg1 = (Scheme_Small_Object_u *) 0 ;
        char arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Small_Object_u_char_val_set(self,char_val);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Small_Object_u,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Small_Object_u_char_val_set. Expected _p_Scheme_Small_Object_u");
            }
        }
        arg2 = (char) *SvPV(ST(1),PL_na);
        if (arg1) (arg1)->char_val = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Small_Object_u_char_val_get) {
    {
        Scheme_Small_Object_u *arg1 = (Scheme_Small_Object_u *) 0 ;
        char result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Small_Object_u_char_val_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Small_Object_u,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Small_Object_u_char_val_get. Expected _p_Scheme_Small_Object_u");
            }
        }
        result = (char) ((arg1)->char_val);
        
        ST(argvi) = sv_newmortal();
        sv_setpvn((SV*)ST(argvi++), &result, 1);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Small_Object_u_ptr_value_set) {
    {
        Scheme_Small_Object_u *arg1 = (Scheme_Small_Object_u *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Small_Object_u_ptr_value_set(self,ptr_value);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Small_Object_u,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Small_Object_u_ptr_value_set. Expected _p_Scheme_Small_Object_u");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Small_Object_u_ptr_value_set. Expected _p_Scheme_Object");
            }
        }
        if (arg1) (arg1)->ptr_value = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Small_Object_u_ptr_value_get) {
    {
        Scheme_Small_Object_u *arg1 = (Scheme_Small_Object_u *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Small_Object_u_ptr_value_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Small_Object_u,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Small_Object_u_ptr_value_get. Expected _p_Scheme_Small_Object_u");
            }
        }
        result = (Scheme_Object *) ((arg1)->ptr_value);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Small_Object_u_int_val_set) {
    {
        Scheme_Small_Object_u *arg1 = (Scheme_Small_Object_u *) 0 ;
        long arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Small_Object_u_int_val_set(self,int_val);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Small_Object_u,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Small_Object_u_int_val_set. Expected _p_Scheme_Small_Object_u");
            }
        }
        arg2 = (long) SvIV(ST(1));
        if (arg1) (arg1)->int_val = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Small_Object_u_int_val_get) {
    {
        Scheme_Small_Object_u *arg1 = (Scheme_Small_Object_u *) 0 ;
        long result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Small_Object_u_int_val_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Small_Object_u,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Small_Object_u_int_val_get. Expected _p_Scheme_Small_Object_u");
            }
        }
        result = (long) ((arg1)->int_val);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Small_Object_u_ptr_val_set) {
    {
        Scheme_Small_Object_u *arg1 = (Scheme_Small_Object_u *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Small_Object_u_ptr_val_set(self,ptr_val);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Small_Object_u,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Small_Object_u_ptr_val_set. Expected _p_Scheme_Small_Object_u");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Small_Object_u_ptr_val_set. Expected _p_Scheme_Object");
            }
        }
        if (arg1) (arg1)->ptr_val = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Small_Object_u_ptr_val_get) {
    {
        Scheme_Small_Object_u *arg1 = (Scheme_Small_Object_u *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Small_Object_u_ptr_val_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Small_Object_u,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Small_Object_u_ptr_val_get. Expected _p_Scheme_Small_Object_u");
            }
        }
        result = (Scheme_Object *) ((arg1)->ptr_val);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_Scheme_Small_Object_u) {
    {
        Scheme_Small_Object_u *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_Scheme_Small_Object_u();");
        }
        result = (Scheme_Small_Object_u *)(Scheme_Small_Object_u *) calloc(1, sizeof(Scheme_Small_Object_u));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Small_Object_u, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_Scheme_Small_Object_u) {
    {
        Scheme_Small_Object_u *arg1 = (Scheme_Small_Object_u *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_Scheme_Small_Object_u(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Small_Object_u,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_Scheme_Small_Object_u. Expected _p_Scheme_Small_Object_u");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Double_type_set) {
    {
        Scheme_Double *arg1 = (Scheme_Double *) 0 ;
        Scheme_Type arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Double_type_set(self,type);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Double,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Double_type_set. Expected _p_Scheme_Double");
            }
        }
        arg2 = (Scheme_Type) SvIV(ST(1));
        if (arg1) (arg1)->type = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Double_type_get) {
    {
        Scheme_Double *arg1 = (Scheme_Double *) 0 ;
        Scheme_Type result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Double_type_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Double,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Double_type_get. Expected _p_Scheme_Double");
            }
        }
        result = (Scheme_Type) ((arg1)->type);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Double_double_val_set) {
    {
        Scheme_Double *arg1 = (Scheme_Double *) 0 ;
        double arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Double_double_val_set(self,double_val);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Double,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Double_double_val_set. Expected _p_Scheme_Double");
            }
        }
        arg2 = (double) SvNV(ST(1));
        
        if (arg1) (arg1)->double_val = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Double_double_val_get) {
    {
        Scheme_Double *arg1 = (Scheme_Double *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Double_double_val_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Double,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Double_double_val_get. Expected _p_Scheme_Double");
            }
        }
        result = (double) ((arg1)->double_val);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_Scheme_Double) {
    {
        Scheme_Double *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_Scheme_Double();");
        }
        result = (Scheme_Double *)(Scheme_Double *) calloc(1, sizeof(Scheme_Double));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Double, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_Scheme_Double) {
    {
        Scheme_Double *arg1 = (Scheme_Double *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_Scheme_Double(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Double,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_Scheme_Double. Expected _p_Scheme_Double");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Symbol_type_set) {
    {
        Scheme_Symbol *arg1 = (Scheme_Symbol *) 0 ;
        Scheme_Type arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Symbol_type_set(self,type);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Symbol,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Symbol_type_set. Expected _p_Scheme_Symbol");
            }
        }
        arg2 = (Scheme_Type) SvIV(ST(1));
        if (arg1) (arg1)->type = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Symbol_type_get) {
    {
        Scheme_Symbol *arg1 = (Scheme_Symbol *) 0 ;
        Scheme_Type result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Symbol_type_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Symbol,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Symbol_type_get. Expected _p_Scheme_Symbol");
            }
        }
        result = (Scheme_Type) ((arg1)->type);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Symbol_keyex_set) {
    {
        Scheme_Symbol *arg1 = (Scheme_Symbol *) 0 ;
        short arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Symbol_keyex_set(self,keyex);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Symbol,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Symbol_keyex_set. Expected _p_Scheme_Symbol");
            }
        }
        arg2 = (short) SvIV(ST(1));
        if (arg1) (arg1)->keyex = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Symbol_keyex_get) {
    {
        Scheme_Symbol *arg1 = (Scheme_Symbol *) 0 ;
        short result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Symbol_keyex_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Symbol,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Symbol_keyex_get. Expected _p_Scheme_Symbol");
            }
        }
        result = (short) ((arg1)->keyex);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Symbol_len_set) {
    {
        Scheme_Symbol *arg1 = (Scheme_Symbol *) 0 ;
        int arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Symbol_len_set(self,len);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Symbol,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Symbol_len_set. Expected _p_Scheme_Symbol");
            }
        }
        arg2 = (int) SvIV(ST(1));
        if (arg1) (arg1)->len = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Symbol_len_get) {
    {
        Scheme_Symbol *arg1 = (Scheme_Symbol *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Symbol_len_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Symbol,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Symbol_len_get. Expected _p_Scheme_Symbol");
            }
        }
        result = (int) ((arg1)->len);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Symbol_s_set) {
    {
        Scheme_Symbol *arg1 = (Scheme_Symbol *) 0 ;
        char *arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Symbol_s_set(self,s);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Symbol,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Symbol_s_set. Expected _p_Scheme_Symbol");
            }
        }
        arg2 = SvPV(ST(1),PL_na);
        
        {
            if (arg2) strncpy(arg1->s,arg2,4);
            else arg1->s[0] = 0;
        }
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Symbol_s_get) {
    {
        Scheme_Symbol *arg1 = (Scheme_Symbol *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Symbol_s_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Symbol,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Symbol_s_get. Expected _p_Scheme_Symbol");
            }
        }
        result = (char *)(char *) ((arg1)->s);
        
        ST(argvi) = sv_newmortal();
        sv_setpv((SV*)ST(argvi++),(char *) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_Scheme_Symbol) {
    {
        Scheme_Symbol *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_Scheme_Symbol();");
        }
        result = (Scheme_Symbol *)(Scheme_Symbol *) calloc(1, sizeof(Scheme_Symbol));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Symbol, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_Scheme_Symbol) {
    {
        Scheme_Symbol *arg1 = (Scheme_Symbol *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_Scheme_Symbol(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Symbol,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_Scheme_Symbol. Expected _p_Scheme_Symbol");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Vector_type_set) {
    {
        Scheme_Vector *arg1 = (Scheme_Vector *) 0 ;
        Scheme_Type arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Vector_type_set(self,type);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Vector,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Vector_type_set. Expected _p_Scheme_Vector");
            }
        }
        arg2 = (Scheme_Type) SvIV(ST(1));
        if (arg1) (arg1)->type = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Vector_type_get) {
    {
        Scheme_Vector *arg1 = (Scheme_Vector *) 0 ;
        Scheme_Type result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Vector_type_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Vector,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Vector_type_get. Expected _p_Scheme_Vector");
            }
        }
        result = (Scheme_Type) ((arg1)->type);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Vector_keyex_set) {
    {
        Scheme_Vector *arg1 = (Scheme_Vector *) 0 ;
        short arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Vector_keyex_set(self,keyex);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Vector,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Vector_keyex_set. Expected _p_Scheme_Vector");
            }
        }
        arg2 = (short) SvIV(ST(1));
        if (arg1) (arg1)->keyex = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Vector_keyex_get) {
    {
        Scheme_Vector *arg1 = (Scheme_Vector *) 0 ;
        short result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Vector_keyex_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Vector,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Vector_keyex_get. Expected _p_Scheme_Vector");
            }
        }
        result = (short) ((arg1)->keyex);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Vector_size_set) {
    {
        Scheme_Vector *arg1 = (Scheme_Vector *) 0 ;
        int arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Vector_size_set(self,size);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Vector,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Vector_size_set. Expected _p_Scheme_Vector");
            }
        }
        arg2 = (int) SvIV(ST(1));
        if (arg1) (arg1)->size = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Vector_size_get) {
    {
        Scheme_Vector *arg1 = (Scheme_Vector *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Vector_size_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Vector,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Vector_size_get. Expected _p_Scheme_Vector");
            }
        }
        result = (int) ((arg1)->size);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Vector_els_set) {
    {
        Scheme_Vector *arg1 = (Scheme_Vector *) 0 ;
        Scheme_Object **arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Vector_els_set(self,els);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Vector,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Vector_els_set. Expected _p_Scheme_Vector");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Vector_els_set. Expected _p_p_Scheme_Object");
            }
        }
        {
            size_t ii;
            Scheme_Object * *b = (Scheme_Object * *) arg1->els;
            for (ii = 0; ii < (size_t)1; ii++) b[ii] = *((Scheme_Object * *) arg2 + ii);
        }
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Vector_els_get) {
    {
        Scheme_Vector *arg1 = (Scheme_Vector *) 0 ;
        Scheme_Object **result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Vector_els_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Vector,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Vector_els_get. Expected _p_Scheme_Vector");
            }
        }
        result = (Scheme_Object **)(Scheme_Object **) ((arg1)->els);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_Scheme_Object, 0|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_Scheme_Vector) {
    {
        Scheme_Vector *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_Scheme_Vector();");
        }
        result = (Scheme_Vector *)(Scheme_Vector *) calloc(1, sizeof(Scheme_Vector));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Vector, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_Scheme_Vector) {
    {
        Scheme_Vector *arg1 = (Scheme_Vector *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_Scheme_Vector(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Vector,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_Scheme_Vector. Expected _p_Scheme_Vector");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Primitive_Proc_type_set) {
    {
        Scheme_Primitive_Proc *arg1 = (Scheme_Primitive_Proc *) 0 ;
        Scheme_Type arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Primitive_Proc_type_set(self,type);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Primitive_Proc,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Primitive_Proc_type_set. Expected _p_Scheme_Primitive_Proc");
            }
        }
        arg2 = (Scheme_Type) SvIV(ST(1));
        if (arg1) (arg1)->type = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Primitive_Proc_type_get) {
    {
        Scheme_Primitive_Proc *arg1 = (Scheme_Primitive_Proc *) 0 ;
        Scheme_Type result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Primitive_Proc_type_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Primitive_Proc,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Primitive_Proc_type_get. Expected _p_Scheme_Primitive_Proc");
            }
        }
        result = (Scheme_Type) ((arg1)->type);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Primitive_Proc_flags_set) {
    {
        Scheme_Primitive_Proc *arg1 = (Scheme_Primitive_Proc *) 0 ;
        short arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Primitive_Proc_flags_set(self,flags);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Primitive_Proc,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Primitive_Proc_flags_set. Expected _p_Scheme_Primitive_Proc");
            }
        }
        arg2 = (short) SvIV(ST(1));
        if (arg1) (arg1)->flags = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Primitive_Proc_flags_get) {
    {
        Scheme_Primitive_Proc *arg1 = (Scheme_Primitive_Proc *) 0 ;
        short result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Primitive_Proc_flags_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Primitive_Proc,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Primitive_Proc_flags_get. Expected _p_Scheme_Primitive_Proc");
            }
        }
        result = (short) ((arg1)->flags);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Primitive_Proc_prim_val_set) {
    {
        Scheme_Primitive_Proc *arg1 = (Scheme_Primitive_Proc *) 0 ;
        Scheme_Prim *arg2 = (Scheme_Prim *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Primitive_Proc_prim_val_set(self,prim_val);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Primitive_Proc,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Primitive_Proc_prim_val_set. Expected _p_Scheme_Primitive_Proc");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_f_int_a___p_struct_Scheme_Object__p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Primitive_Proc_prim_val_set. Expected _p_f_int_a___p_struct_Scheme_Object__p_Scheme_Object");
            }
        }
        if (arg1) (arg1)->prim_val = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Primitive_Proc_prim_val_get) {
    {
        Scheme_Primitive_Proc *arg1 = (Scheme_Primitive_Proc *) 0 ;
        Scheme_Prim *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Primitive_Proc_prim_val_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Primitive_Proc,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Primitive_Proc_prim_val_get. Expected _p_Scheme_Primitive_Proc");
            }
        }
        result = (Scheme_Prim *) ((arg1)->prim_val);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_f_int_a___p_struct_Scheme_Object__p_Scheme_Object, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Primitive_Proc_name_set) {
    {
        Scheme_Primitive_Proc *arg1 = (Scheme_Primitive_Proc *) 0 ;
        char *arg2 = (char *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Primitive_Proc_name_set(self,name);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Primitive_Proc,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Primitive_Proc_name_set. Expected _p_Scheme_Primitive_Proc");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        {
            if (arg2) {
                arg1->name = (char const *) malloc(strlen(arg2)+1);
                strcpy((char*)arg1->name,arg2);
            } else {
                arg1->name = 0;
            }
        }
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Primitive_Proc_name_get) {
    {
        Scheme_Primitive_Proc *arg1 = (Scheme_Primitive_Proc *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Primitive_Proc_name_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Primitive_Proc,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Primitive_Proc_name_get. Expected _p_Scheme_Primitive_Proc");
            }
        }
        result = (char *) ((arg1)->name);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Primitive_Proc_mina_set) {
    {
        Scheme_Primitive_Proc *arg1 = (Scheme_Primitive_Proc *) 0 ;
        mzshort arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Primitive_Proc_mina_set(self,mina);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Primitive_Proc,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Primitive_Proc_mina_set. Expected _p_Scheme_Primitive_Proc");
            }
        }
        arg2 = (mzshort) SvIV(ST(1));
        if (arg1) (arg1)->mina = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Primitive_Proc_mina_get) {
    {
        Scheme_Primitive_Proc *arg1 = (Scheme_Primitive_Proc *) 0 ;
        mzshort result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Primitive_Proc_mina_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Primitive_Proc,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Primitive_Proc_mina_get. Expected _p_Scheme_Primitive_Proc");
            }
        }
        result = (mzshort) ((arg1)->mina);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Primitive_Proc_maxa_set) {
    {
        Scheme_Primitive_Proc *arg1 = (Scheme_Primitive_Proc *) 0 ;
        mzshort arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Primitive_Proc_maxa_set(self,maxa);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Primitive_Proc,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Primitive_Proc_maxa_set. Expected _p_Scheme_Primitive_Proc");
            }
        }
        arg2 = (mzshort) SvIV(ST(1));
        if (arg1) (arg1)->maxa = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Primitive_Proc_maxa_get) {
    {
        Scheme_Primitive_Proc *arg1 = (Scheme_Primitive_Proc *) 0 ;
        mzshort result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Primitive_Proc_maxa_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Primitive_Proc,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Primitive_Proc_maxa_get. Expected _p_Scheme_Primitive_Proc");
            }
        }
        result = (mzshort) ((arg1)->maxa);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_Scheme_Primitive_Proc) {
    {
        Scheme_Primitive_Proc *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_Scheme_Primitive_Proc();");
        }
        result = (Scheme_Primitive_Proc *)(Scheme_Primitive_Proc *) calloc(1, sizeof(Scheme_Primitive_Proc));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Primitive_Proc, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_Scheme_Primitive_Proc) {
    {
        Scheme_Primitive_Proc *arg1 = (Scheme_Primitive_Proc *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_Scheme_Primitive_Proc(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Primitive_Proc,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_Scheme_Primitive_Proc. Expected _p_Scheme_Primitive_Proc");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Prim_W_Result_Arity_p_set) {
    {
        Scheme_Prim_W_Result_Arity *arg1 = (Scheme_Prim_W_Result_Arity *) 0 ;
        Scheme_Primitive_Proc *arg2 = (Scheme_Primitive_Proc *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Prim_W_Result_Arity_p_set(self,p);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Prim_W_Result_Arity,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Prim_W_Result_Arity_p_set. Expected _p_Scheme_Prim_W_Result_Arity");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Primitive_Proc,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Prim_W_Result_Arity_p_set. Expected _p_Scheme_Primitive_Proc");
            }
        }
        if (arg1) (arg1)->p = *arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Prim_W_Result_Arity_p_get) {
    {
        Scheme_Prim_W_Result_Arity *arg1 = (Scheme_Prim_W_Result_Arity *) 0 ;
        Scheme_Primitive_Proc *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Prim_W_Result_Arity_p_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Prim_W_Result_Arity,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Prim_W_Result_Arity_p_get. Expected _p_Scheme_Prim_W_Result_Arity");
            }
        }
        result = (Scheme_Primitive_Proc *)& ((arg1)->p);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Primitive_Proc, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Prim_W_Result_Arity_minr_set) {
    {
        Scheme_Prim_W_Result_Arity *arg1 = (Scheme_Prim_W_Result_Arity *) 0 ;
        mzshort arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Prim_W_Result_Arity_minr_set(self,minr);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Prim_W_Result_Arity,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Prim_W_Result_Arity_minr_set. Expected _p_Scheme_Prim_W_Result_Arity");
            }
        }
        arg2 = (mzshort) SvIV(ST(1));
        if (arg1) (arg1)->minr = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Prim_W_Result_Arity_minr_get) {
    {
        Scheme_Prim_W_Result_Arity *arg1 = (Scheme_Prim_W_Result_Arity *) 0 ;
        mzshort result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Prim_W_Result_Arity_minr_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Prim_W_Result_Arity,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Prim_W_Result_Arity_minr_get. Expected _p_Scheme_Prim_W_Result_Arity");
            }
        }
        result = (mzshort) ((arg1)->minr);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Prim_W_Result_Arity_maxr_set) {
    {
        Scheme_Prim_W_Result_Arity *arg1 = (Scheme_Prim_W_Result_Arity *) 0 ;
        mzshort arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Prim_W_Result_Arity_maxr_set(self,maxr);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Prim_W_Result_Arity,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Prim_W_Result_Arity_maxr_set. Expected _p_Scheme_Prim_W_Result_Arity");
            }
        }
        arg2 = (mzshort) SvIV(ST(1));
        if (arg1) (arg1)->maxr = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Prim_W_Result_Arity_maxr_get) {
    {
        Scheme_Prim_W_Result_Arity *arg1 = (Scheme_Prim_W_Result_Arity *) 0 ;
        mzshort result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Prim_W_Result_Arity_maxr_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Prim_W_Result_Arity,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Prim_W_Result_Arity_maxr_get. Expected _p_Scheme_Prim_W_Result_Arity");
            }
        }
        result = (mzshort) ((arg1)->maxr);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_Scheme_Prim_W_Result_Arity) {
    {
        Scheme_Prim_W_Result_Arity *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_Scheme_Prim_W_Result_Arity();");
        }
        result = (Scheme_Prim_W_Result_Arity *)(Scheme_Prim_W_Result_Arity *) calloc(1, sizeof(Scheme_Prim_W_Result_Arity));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Prim_W_Result_Arity, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_Scheme_Prim_W_Result_Arity) {
    {
        Scheme_Prim_W_Result_Arity *arg1 = (Scheme_Prim_W_Result_Arity *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_Scheme_Prim_W_Result_Arity(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Prim_W_Result_Arity,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_Scheme_Prim_W_Result_Arity. Expected _p_Scheme_Prim_W_Result_Arity");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Closed_Primitive_Proc_type_set) {
    {
        Scheme_Closed_Primitive_Proc *arg1 = (Scheme_Closed_Primitive_Proc *) 0 ;
        Scheme_Type arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Closed_Primitive_Proc_type_set(self,type);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Closed_Primitive_Proc,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Closed_Primitive_Proc_type_set. Expected _p_Scheme_Closed_Primitive_Proc");
            }
        }
        arg2 = (Scheme_Type) SvIV(ST(1));
        if (arg1) (arg1)->type = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Closed_Primitive_Proc_type_get) {
    {
        Scheme_Closed_Primitive_Proc *arg1 = (Scheme_Closed_Primitive_Proc *) 0 ;
        Scheme_Type result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Closed_Primitive_Proc_type_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Closed_Primitive_Proc,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Closed_Primitive_Proc_type_get. Expected _p_Scheme_Closed_Primitive_Proc");
            }
        }
        result = (Scheme_Type) ((arg1)->type);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Closed_Primitive_Proc_flags_set) {
    {
        Scheme_Closed_Primitive_Proc *arg1 = (Scheme_Closed_Primitive_Proc *) 0 ;
        short arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Closed_Primitive_Proc_flags_set(self,flags);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Closed_Primitive_Proc,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Closed_Primitive_Proc_flags_set. Expected _p_Scheme_Closed_Primitive_Proc");
            }
        }
        arg2 = (short) SvIV(ST(1));
        if (arg1) (arg1)->flags = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Closed_Primitive_Proc_flags_get) {
    {
        Scheme_Closed_Primitive_Proc *arg1 = (Scheme_Closed_Primitive_Proc *) 0 ;
        short result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Closed_Primitive_Proc_flags_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Closed_Primitive_Proc,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Closed_Primitive_Proc_flags_get. Expected _p_Scheme_Closed_Primitive_Proc");
            }
        }
        result = (short) ((arg1)->flags);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Closed_Primitive_Proc_prim_val_set) {
    {
        Scheme_Closed_Primitive_Proc *arg1 = (Scheme_Closed_Primitive_Proc *) 0 ;
        Scheme_Closed_Prim *arg2 = (Scheme_Closed_Prim *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Closed_Primitive_Proc_prim_val_set(self,prim_val);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Closed_Primitive_Proc,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Closed_Primitive_Proc_prim_val_set. Expected _p_Scheme_Closed_Primitive_Proc");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_f_p_void_int_a___p_struct_Scheme_Object__p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Closed_Primitive_Proc_prim_val_set. Expected _p_f_p_void_int_a___p_struct_Scheme_Object__p_Scheme_Object");
            }
        }
        if (arg1) (arg1)->prim_val = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Closed_Primitive_Proc_prim_val_get) {
    {
        Scheme_Closed_Primitive_Proc *arg1 = (Scheme_Closed_Primitive_Proc *) 0 ;
        Scheme_Closed_Prim *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Closed_Primitive_Proc_prim_val_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Closed_Primitive_Proc,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Closed_Primitive_Proc_prim_val_get. Expected _p_Scheme_Closed_Primitive_Proc");
            }
        }
        result = (Scheme_Closed_Prim *) ((arg1)->prim_val);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_f_p_void_int_a___p_struct_Scheme_Object__p_Scheme_Object, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Closed_Primitive_Proc_data_set) {
    {
        Scheme_Closed_Primitive_Proc *arg1 = (Scheme_Closed_Primitive_Proc *) 0 ;
        void *arg2 = (void *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Closed_Primitive_Proc_data_set(self,data);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Closed_Primitive_Proc,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Closed_Primitive_Proc_data_set. Expected _p_Scheme_Closed_Primitive_Proc");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Closed_Primitive_Proc_data_set. Expected _p_void");
            }
        }
        if (arg1) (arg1)->data = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Closed_Primitive_Proc_data_get) {
    {
        Scheme_Closed_Primitive_Proc *arg1 = (Scheme_Closed_Primitive_Proc *) 0 ;
        void *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Closed_Primitive_Proc_data_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Closed_Primitive_Proc,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Closed_Primitive_Proc_data_get. Expected _p_Scheme_Closed_Primitive_Proc");
            }
        }
        result = (void *) ((arg1)->data);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_void, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Closed_Primitive_Proc_name_set) {
    {
        Scheme_Closed_Primitive_Proc *arg1 = (Scheme_Closed_Primitive_Proc *) 0 ;
        char *arg2 = (char *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Closed_Primitive_Proc_name_set(self,name);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Closed_Primitive_Proc,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Closed_Primitive_Proc_name_set. Expected _p_Scheme_Closed_Primitive_Proc");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        {
            if (arg2) {
                arg1->name = (char const *) malloc(strlen(arg2)+1);
                strcpy((char*)arg1->name,arg2);
            } else {
                arg1->name = 0;
            }
        }
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Closed_Primitive_Proc_name_get) {
    {
        Scheme_Closed_Primitive_Proc *arg1 = (Scheme_Closed_Primitive_Proc *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Closed_Primitive_Proc_name_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Closed_Primitive_Proc,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Closed_Primitive_Proc_name_get. Expected _p_Scheme_Closed_Primitive_Proc");
            }
        }
        result = (char *) ((arg1)->name);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Closed_Primitive_Proc_mina_set) {
    {
        Scheme_Closed_Primitive_Proc *arg1 = (Scheme_Closed_Primitive_Proc *) 0 ;
        mzshort arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Closed_Primitive_Proc_mina_set(self,mina);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Closed_Primitive_Proc,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Closed_Primitive_Proc_mina_set. Expected _p_Scheme_Closed_Primitive_Proc");
            }
        }
        arg2 = (mzshort) SvIV(ST(1));
        if (arg1) (arg1)->mina = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Closed_Primitive_Proc_mina_get) {
    {
        Scheme_Closed_Primitive_Proc *arg1 = (Scheme_Closed_Primitive_Proc *) 0 ;
        mzshort result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Closed_Primitive_Proc_mina_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Closed_Primitive_Proc,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Closed_Primitive_Proc_mina_get. Expected _p_Scheme_Closed_Primitive_Proc");
            }
        }
        result = (mzshort) ((arg1)->mina);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Closed_Primitive_Proc_maxa_set) {
    {
        Scheme_Closed_Primitive_Proc *arg1 = (Scheme_Closed_Primitive_Proc *) 0 ;
        mzshort arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Closed_Primitive_Proc_maxa_set(self,maxa);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Closed_Primitive_Proc,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Closed_Primitive_Proc_maxa_set. Expected _p_Scheme_Closed_Primitive_Proc");
            }
        }
        arg2 = (mzshort) SvIV(ST(1));
        if (arg1) (arg1)->maxa = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Closed_Primitive_Proc_maxa_get) {
    {
        Scheme_Closed_Primitive_Proc *arg1 = (Scheme_Closed_Primitive_Proc *) 0 ;
        mzshort result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Closed_Primitive_Proc_maxa_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Closed_Primitive_Proc,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Closed_Primitive_Proc_maxa_get. Expected _p_Scheme_Closed_Primitive_Proc");
            }
        }
        result = (mzshort) ((arg1)->maxa);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_Scheme_Closed_Primitive_Proc) {
    {
        Scheme_Closed_Primitive_Proc *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_Scheme_Closed_Primitive_Proc();");
        }
        result = (Scheme_Closed_Primitive_Proc *)(Scheme_Closed_Primitive_Proc *) calloc(1, sizeof(Scheme_Closed_Primitive_Proc));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Closed_Primitive_Proc, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_Scheme_Closed_Primitive_Proc) {
    {
        Scheme_Closed_Primitive_Proc *arg1 = (Scheme_Closed_Primitive_Proc *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_Scheme_Closed_Primitive_Proc(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Closed_Primitive_Proc,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_Scheme_Closed_Primitive_Proc. Expected _p_Scheme_Closed_Primitive_Proc");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Closed_Prim_W_Result_Arity_p_set) {
    {
        Scheme_Closed_Prim_W_Result_Arity *arg1 = (Scheme_Closed_Prim_W_Result_Arity *) 0 ;
        Scheme_Closed_Primitive_Proc *arg2 = (Scheme_Closed_Primitive_Proc *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Closed_Prim_W_Result_Arity_p_set(self,p);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Closed_Prim_W_Result_Arity,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Closed_Prim_W_Result_Arity_p_set. Expected _p_Scheme_Closed_Prim_W_Result_Arity");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Closed_Primitive_Proc,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Closed_Prim_W_Result_Arity_p_set. Expected _p_Scheme_Closed_Primitive_Proc");
            }
        }
        if (arg1) (arg1)->p = *arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Closed_Prim_W_Result_Arity_p_get) {
    {
        Scheme_Closed_Prim_W_Result_Arity *arg1 = (Scheme_Closed_Prim_W_Result_Arity *) 0 ;
        Scheme_Closed_Primitive_Proc *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Closed_Prim_W_Result_Arity_p_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Closed_Prim_W_Result_Arity,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Closed_Prim_W_Result_Arity_p_get. Expected _p_Scheme_Closed_Prim_W_Result_Arity");
            }
        }
        result = (Scheme_Closed_Primitive_Proc *)& ((arg1)->p);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Closed_Primitive_Proc, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Closed_Prim_W_Result_Arity_minr_set) {
    {
        Scheme_Closed_Prim_W_Result_Arity *arg1 = (Scheme_Closed_Prim_W_Result_Arity *) 0 ;
        mzshort arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Closed_Prim_W_Result_Arity_minr_set(self,minr);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Closed_Prim_W_Result_Arity,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Closed_Prim_W_Result_Arity_minr_set. Expected _p_Scheme_Closed_Prim_W_Result_Arity");
            }
        }
        arg2 = (mzshort) SvIV(ST(1));
        if (arg1) (arg1)->minr = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Closed_Prim_W_Result_Arity_minr_get) {
    {
        Scheme_Closed_Prim_W_Result_Arity *arg1 = (Scheme_Closed_Prim_W_Result_Arity *) 0 ;
        mzshort result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Closed_Prim_W_Result_Arity_minr_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Closed_Prim_W_Result_Arity,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Closed_Prim_W_Result_Arity_minr_get. Expected _p_Scheme_Closed_Prim_W_Result_Arity");
            }
        }
        result = (mzshort) ((arg1)->minr);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Closed_Prim_W_Result_Arity_maxr_set) {
    {
        Scheme_Closed_Prim_W_Result_Arity *arg1 = (Scheme_Closed_Prim_W_Result_Arity *) 0 ;
        mzshort arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Closed_Prim_W_Result_Arity_maxr_set(self,maxr);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Closed_Prim_W_Result_Arity,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Closed_Prim_W_Result_Arity_maxr_set. Expected _p_Scheme_Closed_Prim_W_Result_Arity");
            }
        }
        arg2 = (mzshort) SvIV(ST(1));
        if (arg1) (arg1)->maxr = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Closed_Prim_W_Result_Arity_maxr_get) {
    {
        Scheme_Closed_Prim_W_Result_Arity *arg1 = (Scheme_Closed_Prim_W_Result_Arity *) 0 ;
        mzshort result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Closed_Prim_W_Result_Arity_maxr_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Closed_Prim_W_Result_Arity,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Closed_Prim_W_Result_Arity_maxr_get. Expected _p_Scheme_Closed_Prim_W_Result_Arity");
            }
        }
        result = (mzshort) ((arg1)->maxr);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_Scheme_Closed_Prim_W_Result_Arity) {
    {
        Scheme_Closed_Prim_W_Result_Arity *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_Scheme_Closed_Prim_W_Result_Arity();");
        }
        result = (Scheme_Closed_Prim_W_Result_Arity *)(Scheme_Closed_Prim_W_Result_Arity *) calloc(1, sizeof(Scheme_Closed_Prim_W_Result_Arity));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Closed_Prim_W_Result_Arity, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_Scheme_Closed_Prim_W_Result_Arity) {
    {
        Scheme_Closed_Prim_W_Result_Arity *arg1 = (Scheme_Closed_Prim_W_Result_Arity *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_Scheme_Closed_Prim_W_Result_Arity(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Closed_Prim_W_Result_Arity,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_Scheme_Closed_Prim_W_Result_Arity. Expected _p_Scheme_Closed_Prim_W_Result_Arity");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Closed_Case_Primitive_Proc_p_set) {
    {
        Scheme_Closed_Case_Primitive_Proc *arg1 = (Scheme_Closed_Case_Primitive_Proc *) 0 ;
        Scheme_Closed_Primitive_Proc *arg2 = (Scheme_Closed_Primitive_Proc *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Closed_Case_Primitive_Proc_p_set(self,p);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Closed_Case_Primitive_Proc,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Closed_Case_Primitive_Proc_p_set. Expected _p_Scheme_Closed_Case_Primitive_Proc");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Closed_Primitive_Proc,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Closed_Case_Primitive_Proc_p_set. Expected _p_Scheme_Closed_Primitive_Proc");
            }
        }
        if (arg1) (arg1)->p = *arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Closed_Case_Primitive_Proc_p_get) {
    {
        Scheme_Closed_Case_Primitive_Proc *arg1 = (Scheme_Closed_Case_Primitive_Proc *) 0 ;
        Scheme_Closed_Primitive_Proc *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Closed_Case_Primitive_Proc_p_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Closed_Case_Primitive_Proc,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Closed_Case_Primitive_Proc_p_get. Expected _p_Scheme_Closed_Case_Primitive_Proc");
            }
        }
        result = (Scheme_Closed_Primitive_Proc *)& ((arg1)->p);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Closed_Primitive_Proc, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Closed_Case_Primitive_Proc_cases_set) {
    {
        Scheme_Closed_Case_Primitive_Proc *arg1 = (Scheme_Closed_Case_Primitive_Proc *) 0 ;
        mzshort *arg2 = (mzshort *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Closed_Case_Primitive_Proc_cases_set(self,cases);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Closed_Case_Primitive_Proc,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Closed_Case_Primitive_Proc_cases_set. Expected _p_Scheme_Closed_Case_Primitive_Proc");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_int,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Closed_Case_Primitive_Proc_cases_set. Expected _p_int");
            }
        }
        if (arg1) (arg1)->cases = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Closed_Case_Primitive_Proc_cases_get) {
    {
        Scheme_Closed_Case_Primitive_Proc *arg1 = (Scheme_Closed_Case_Primitive_Proc *) 0 ;
        mzshort *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Closed_Case_Primitive_Proc_cases_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Closed_Case_Primitive_Proc,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Closed_Case_Primitive_Proc_cases_get. Expected _p_Scheme_Closed_Case_Primitive_Proc");
            }
        }
        result = (mzshort *) ((arg1)->cases);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_int, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_Scheme_Closed_Case_Primitive_Proc) {
    {
        Scheme_Closed_Case_Primitive_Proc *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_Scheme_Closed_Case_Primitive_Proc();");
        }
        result = (Scheme_Closed_Case_Primitive_Proc *)(Scheme_Closed_Case_Primitive_Proc *) calloc(1, sizeof(Scheme_Closed_Case_Primitive_Proc));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Closed_Case_Primitive_Proc, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_Scheme_Closed_Case_Primitive_Proc) {
    {
        Scheme_Closed_Case_Primitive_Proc *arg1 = (Scheme_Closed_Case_Primitive_Proc *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_Scheme_Closed_Case_Primitive_Proc(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Closed_Case_Primitive_Proc,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_Scheme_Closed_Case_Primitive_Proc. Expected _p_Scheme_Closed_Case_Primitive_Proc");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Hash_Table_type_set) {
    {
        Scheme_Hash_Table *arg1 = (Scheme_Hash_Table *) 0 ;
        Scheme_Type arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Hash_Table_type_set(self,type);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Hash_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Hash_Table_type_set. Expected _p_Scheme_Hash_Table");
            }
        }
        arg2 = (Scheme_Type) SvIV(ST(1));
        if (arg1) (arg1)->type = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Hash_Table_type_get) {
    {
        Scheme_Hash_Table *arg1 = (Scheme_Hash_Table *) 0 ;
        Scheme_Type result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Hash_Table_type_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Hash_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Hash_Table_type_get. Expected _p_Scheme_Hash_Table");
            }
        }
        result = (Scheme_Type) ((arg1)->type);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Hash_Table_keyex_set) {
    {
        Scheme_Hash_Table *arg1 = (Scheme_Hash_Table *) 0 ;
        short arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Hash_Table_keyex_set(self,keyex);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Hash_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Hash_Table_keyex_set. Expected _p_Scheme_Hash_Table");
            }
        }
        arg2 = (short) SvIV(ST(1));
        if (arg1) (arg1)->keyex = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Hash_Table_keyex_get) {
    {
        Scheme_Hash_Table *arg1 = (Scheme_Hash_Table *) 0 ;
        short result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Hash_Table_keyex_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Hash_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Hash_Table_keyex_get. Expected _p_Scheme_Hash_Table");
            }
        }
        result = (short) ((arg1)->keyex);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Hash_Table_size_set) {
    {
        Scheme_Hash_Table *arg1 = (Scheme_Hash_Table *) 0 ;
        int arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Hash_Table_size_set(self,size);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Hash_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Hash_Table_size_set. Expected _p_Scheme_Hash_Table");
            }
        }
        arg2 = (int) SvIV(ST(1));
        if (arg1) (arg1)->size = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Hash_Table_size_get) {
    {
        Scheme_Hash_Table *arg1 = (Scheme_Hash_Table *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Hash_Table_size_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Hash_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Hash_Table_size_get. Expected _p_Scheme_Hash_Table");
            }
        }
        result = (int) ((arg1)->size);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Hash_Table_count_set) {
    {
        Scheme_Hash_Table *arg1 = (Scheme_Hash_Table *) 0 ;
        int arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Hash_Table_count_set(self,count);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Hash_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Hash_Table_count_set. Expected _p_Scheme_Hash_Table");
            }
        }
        arg2 = (int) SvIV(ST(1));
        if (arg1) (arg1)->count = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Hash_Table_count_get) {
    {
        Scheme_Hash_Table *arg1 = (Scheme_Hash_Table *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Hash_Table_count_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Hash_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Hash_Table_count_get. Expected _p_Scheme_Hash_Table");
            }
        }
        result = (int) ((arg1)->count);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Hash_Table_step_set) {
    {
        Scheme_Hash_Table *arg1 = (Scheme_Hash_Table *) 0 ;
        int arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Hash_Table_step_set(self,step);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Hash_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Hash_Table_step_set. Expected _p_Scheme_Hash_Table");
            }
        }
        arg2 = (int) SvIV(ST(1));
        if (arg1) (arg1)->step = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Hash_Table_step_get) {
    {
        Scheme_Hash_Table *arg1 = (Scheme_Hash_Table *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Hash_Table_step_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Hash_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Hash_Table_step_get. Expected _p_Scheme_Hash_Table");
            }
        }
        result = (int) ((arg1)->step);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Hash_Table_keys_set) {
    {
        Scheme_Hash_Table *arg1 = (Scheme_Hash_Table *) 0 ;
        Scheme_Object **arg2 = (Scheme_Object **) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Hash_Table_keys_set(self,keys);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Hash_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Hash_Table_keys_set. Expected _p_Scheme_Hash_Table");
            }
        }
        {
            arg2 = _mzscheme_from_perl_arrayref_to_objects(ST(1));
        }
        if (arg1) (arg1)->keys = arg2;
        
        
        {
            free(arg2);
        }
        XSRETURN(argvi);
        fail:
        {
            free(arg2);
        }
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Hash_Table_keys_get) {
    {
        Scheme_Hash_Table *arg1 = (Scheme_Hash_Table *) 0 ;
        Scheme_Object **result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Hash_Table_keys_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Hash_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Hash_Table_keys_get. Expected _p_Scheme_Hash_Table");
            }
        }
        result = (Scheme_Object **) ((arg1)->keys);
        
        {
            ST(argvi) = newRV((SV *)_mzscheme_objects_AV((void **)result, (char *)&SWIGTYPE_p_Scheme_Object));
            sv_2mortal(ST(argvi));
            argvi++;
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Hash_Table_vals_set) {
    {
        Scheme_Hash_Table *arg1 = (Scheme_Hash_Table *) 0 ;
        Scheme_Object **arg2 = (Scheme_Object **) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Hash_Table_vals_set(self,vals);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Hash_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Hash_Table_vals_set. Expected _p_Scheme_Hash_Table");
            }
        }
        {
            arg2 = _mzscheme_from_perl_arrayref_to_objects(ST(1));
        }
        if (arg1) (arg1)->vals = arg2;
        
        
        {
            free(arg2);
        }
        XSRETURN(argvi);
        fail:
        {
            free(arg2);
        }
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Hash_Table_vals_get) {
    {
        Scheme_Hash_Table *arg1 = (Scheme_Hash_Table *) 0 ;
        Scheme_Object **result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Hash_Table_vals_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Hash_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Hash_Table_vals_get. Expected _p_Scheme_Hash_Table");
            }
        }
        result = (Scheme_Object **) ((arg1)->vals);
        
        {
            ST(argvi) = newRV((SV *)_mzscheme_objects_AV((void **)result, (char *)&SWIGTYPE_p_Scheme_Object));
            sv_2mortal(ST(argvi));
            argvi++;
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Hash_Table_make_hash_indices_set) {
    {
        Scheme_Hash_Table *arg1 = (Scheme_Hash_Table *) 0 ;
        void (*arg2)(void *,long *,long *) = (void (*)(void *,long *,long *)) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Hash_Table_make_hash_indices_set(self,make_hash_indices);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Hash_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Hash_Table_make_hash_indices_set. Expected _p_Scheme_Hash_Table");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_f_p_void_p_long_p_long__void,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Hash_Table_make_hash_indices_set. Expected _p_f_p_void_p_long_p_long__void");
            }
        }
        if (arg1) (arg1)->make_hash_indices = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Hash_Table_make_hash_indices_get) {
    {
        Scheme_Hash_Table *arg1 = (Scheme_Hash_Table *) 0 ;
        void (*result)(void *,long *,long *);
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Hash_Table_make_hash_indices_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Hash_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Hash_Table_make_hash_indices_get. Expected _p_Scheme_Hash_Table");
            }
        }
        result = (void (*)(void *,long *,long *)) ((arg1)->make_hash_indices);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_f_p_void_p_long_p_long__void, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Hash_Table_compare_set) {
    {
        Scheme_Hash_Table *arg1 = (Scheme_Hash_Table *) 0 ;
        int (*arg2)(void *,void *) = (int (*)(void *,void *)) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Hash_Table_compare_set(self,compare);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Hash_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Hash_Table_compare_set. Expected _p_Scheme_Hash_Table");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_f_p_void_p_void__int,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Hash_Table_compare_set. Expected _p_f_p_void_p_void__int");
            }
        }
        if (arg1) (arg1)->compare = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Hash_Table_compare_get) {
    {
        Scheme_Hash_Table *arg1 = (Scheme_Hash_Table *) 0 ;
        int (*result)(void *,void *);
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Hash_Table_compare_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Hash_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Hash_Table_compare_get. Expected _p_Scheme_Hash_Table");
            }
        }
        result = (int (*)(void *,void *)) ((arg1)->compare);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_f_p_void_p_void__int, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Hash_Table_mutex_set) {
    {
        Scheme_Hash_Table *arg1 = (Scheme_Hash_Table *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Hash_Table_mutex_set(self,mutex);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Hash_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Hash_Table_mutex_set. Expected _p_Scheme_Hash_Table");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Hash_Table_mutex_set. Expected _p_Scheme_Object");
            }
        }
        if (arg1) (arg1)->mutex = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Hash_Table_mutex_get) {
    {
        Scheme_Hash_Table *arg1 = (Scheme_Hash_Table *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Hash_Table_mutex_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Hash_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Hash_Table_mutex_get. Expected _p_Scheme_Hash_Table");
            }
        }
        result = (Scheme_Object *) ((arg1)->mutex);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Hash_Table_mcount_set) {
    {
        Scheme_Hash_Table *arg1 = (Scheme_Hash_Table *) 0 ;
        int arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Hash_Table_mcount_set(self,mcount);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Hash_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Hash_Table_mcount_set. Expected _p_Scheme_Hash_Table");
            }
        }
        arg2 = (int) SvIV(ST(1));
        if (arg1) (arg1)->mcount = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Hash_Table_mcount_get) {
    {
        Scheme_Hash_Table *arg1 = (Scheme_Hash_Table *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Hash_Table_mcount_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Hash_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Hash_Table_mcount_get. Expected _p_Scheme_Hash_Table");
            }
        }
        result = (int) ((arg1)->mcount);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_Scheme_Hash_Table) {
    {
        Scheme_Hash_Table *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_Scheme_Hash_Table();");
        }
        result = (Scheme_Hash_Table *)(Scheme_Hash_Table *) calloc(1, sizeof(Scheme_Hash_Table));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Hash_Table, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_Scheme_Hash_Table) {
    {
        Scheme_Hash_Table *arg1 = (Scheme_Hash_Table *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_Scheme_Hash_Table(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Hash_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_Scheme_Hash_Table. Expected _p_Scheme_Hash_Table");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Bucket_type_set) {
    {
        Scheme_Bucket *arg1 = (Scheme_Bucket *) 0 ;
        Scheme_Type arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Bucket_type_set(self,type);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Bucket,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Bucket_type_set. Expected _p_Scheme_Bucket");
            }
        }
        arg2 = (Scheme_Type) SvIV(ST(1));
        if (arg1) (arg1)->type = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Bucket_type_get) {
    {
        Scheme_Bucket *arg1 = (Scheme_Bucket *) 0 ;
        Scheme_Type result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Bucket_type_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Bucket,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Bucket_type_get. Expected _p_Scheme_Bucket");
            }
        }
        result = (Scheme_Type) ((arg1)->type);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Bucket_val_set) {
    {
        Scheme_Bucket *arg1 = (Scheme_Bucket *) 0 ;
        void *arg2 = (void *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Bucket_val_set(self,val);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Bucket,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Bucket_val_set. Expected _p_Scheme_Bucket");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Bucket_val_set. Expected _p_void");
            }
        }
        if (arg1) (arg1)->val = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Bucket_val_get) {
    {
        Scheme_Bucket *arg1 = (Scheme_Bucket *) 0 ;
        void *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Bucket_val_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Bucket,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Bucket_val_get. Expected _p_Scheme_Bucket");
            }
        }
        result = (void *) ((arg1)->val);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_void, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Bucket_key_set) {
    {
        Scheme_Bucket *arg1 = (Scheme_Bucket *) 0 ;
        char *arg2 = (char *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Bucket_key_set(self,key);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Bucket,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Bucket_key_set. Expected _p_Scheme_Bucket");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        {
            if (arg1->key) free((char*)arg1->key);
            if (arg2) {
                arg1->key = (char *) malloc(strlen(arg2)+1);
                strcpy((char*)arg1->key,arg2);
            } else {
                arg1->key = 0;
            }
        }
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Bucket_key_get) {
    {
        Scheme_Bucket *arg1 = (Scheme_Bucket *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Bucket_key_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Bucket,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Bucket_key_get. Expected _p_Scheme_Bucket");
            }
        }
        result = (char *) ((arg1)->key);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_Scheme_Bucket) {
    {
        Scheme_Bucket *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_Scheme_Bucket();");
        }
        result = (Scheme_Bucket *)(Scheme_Bucket *) calloc(1, sizeof(Scheme_Bucket));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Bucket, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_Scheme_Bucket) {
    {
        Scheme_Bucket *arg1 = (Scheme_Bucket *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_Scheme_Bucket(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Bucket,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_Scheme_Bucket. Expected _p_Scheme_Bucket");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Bucket_Table_type_set) {
    {
        Scheme_Bucket_Table *arg1 = (Scheme_Bucket_Table *) 0 ;
        Scheme_Type arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Bucket_Table_type_set(self,type);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Bucket_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Bucket_Table_type_set. Expected _p_Scheme_Bucket_Table");
            }
        }
        arg2 = (Scheme_Type) SvIV(ST(1));
        if (arg1) (arg1)->type = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Bucket_Table_type_get) {
    {
        Scheme_Bucket_Table *arg1 = (Scheme_Bucket_Table *) 0 ;
        Scheme_Type result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Bucket_Table_type_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Bucket_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Bucket_Table_type_get. Expected _p_Scheme_Bucket_Table");
            }
        }
        result = (Scheme_Type) ((arg1)->type);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Bucket_Table_size_set) {
    {
        Scheme_Bucket_Table *arg1 = (Scheme_Bucket_Table *) 0 ;
        int arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Bucket_Table_size_set(self,size);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Bucket_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Bucket_Table_size_set. Expected _p_Scheme_Bucket_Table");
            }
        }
        arg2 = (int) SvIV(ST(1));
        if (arg1) (arg1)->size = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Bucket_Table_size_get) {
    {
        Scheme_Bucket_Table *arg1 = (Scheme_Bucket_Table *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Bucket_Table_size_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Bucket_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Bucket_Table_size_get. Expected _p_Scheme_Bucket_Table");
            }
        }
        result = (int) ((arg1)->size);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Bucket_Table_count_set) {
    {
        Scheme_Bucket_Table *arg1 = (Scheme_Bucket_Table *) 0 ;
        int arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Bucket_Table_count_set(self,count);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Bucket_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Bucket_Table_count_set. Expected _p_Scheme_Bucket_Table");
            }
        }
        arg2 = (int) SvIV(ST(1));
        if (arg1) (arg1)->count = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Bucket_Table_count_get) {
    {
        Scheme_Bucket_Table *arg1 = (Scheme_Bucket_Table *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Bucket_Table_count_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Bucket_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Bucket_Table_count_get. Expected _p_Scheme_Bucket_Table");
            }
        }
        result = (int) ((arg1)->count);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Bucket_Table_step_set) {
    {
        Scheme_Bucket_Table *arg1 = (Scheme_Bucket_Table *) 0 ;
        int arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Bucket_Table_step_set(self,step);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Bucket_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Bucket_Table_step_set. Expected _p_Scheme_Bucket_Table");
            }
        }
        arg2 = (int) SvIV(ST(1));
        if (arg1) (arg1)->step = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Bucket_Table_step_get) {
    {
        Scheme_Bucket_Table *arg1 = (Scheme_Bucket_Table *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Bucket_Table_step_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Bucket_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Bucket_Table_step_get. Expected _p_Scheme_Bucket_Table");
            }
        }
        result = (int) ((arg1)->step);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Bucket_Table_buckets_set) {
    {
        Scheme_Bucket_Table *arg1 = (Scheme_Bucket_Table *) 0 ;
        Scheme_Bucket **arg2 = (Scheme_Bucket **) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Bucket_Table_buckets_set(self,buckets);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Bucket_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Bucket_Table_buckets_set. Expected _p_Scheme_Bucket_Table");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_Scheme_Bucket,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Bucket_Table_buckets_set. Expected _p_p_Scheme_Bucket");
            }
        }
        if (arg1) (arg1)->buckets = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Bucket_Table_buckets_get) {
    {
        Scheme_Bucket_Table *arg1 = (Scheme_Bucket_Table *) 0 ;
        Scheme_Bucket **result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Bucket_Table_buckets_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Bucket_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Bucket_Table_buckets_get. Expected _p_Scheme_Bucket_Table");
            }
        }
        result = (Scheme_Bucket **) ((arg1)->buckets);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_Scheme_Bucket, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Bucket_Table_weak_set) {
    {
        Scheme_Bucket_Table *arg1 = (Scheme_Bucket_Table *) 0 ;
        char arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Bucket_Table_weak_set(self,weak);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Bucket_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Bucket_Table_weak_set. Expected _p_Scheme_Bucket_Table");
            }
        }
        arg2 = (char) *SvPV(ST(1),PL_na);
        if (arg1) (arg1)->weak = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Bucket_Table_weak_get) {
    {
        Scheme_Bucket_Table *arg1 = (Scheme_Bucket_Table *) 0 ;
        char result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Bucket_Table_weak_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Bucket_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Bucket_Table_weak_get. Expected _p_Scheme_Bucket_Table");
            }
        }
        result = (char) ((arg1)->weak);
        
        ST(argvi) = sv_newmortal();
        sv_setpvn((SV*)ST(argvi++), &result, 1);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Bucket_Table_with_home_set) {
    {
        Scheme_Bucket_Table *arg1 = (Scheme_Bucket_Table *) 0 ;
        char arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Bucket_Table_with_home_set(self,with_home);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Bucket_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Bucket_Table_with_home_set. Expected _p_Scheme_Bucket_Table");
            }
        }
        arg2 = (char) *SvPV(ST(1),PL_na);
        if (arg1) (arg1)->with_home = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Bucket_Table_with_home_get) {
    {
        Scheme_Bucket_Table *arg1 = (Scheme_Bucket_Table *) 0 ;
        char result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Bucket_Table_with_home_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Bucket_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Bucket_Table_with_home_get. Expected _p_Scheme_Bucket_Table");
            }
        }
        result = (char) ((arg1)->with_home);
        
        ST(argvi) = sv_newmortal();
        sv_setpvn((SV*)ST(argvi++), &result, 1);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Bucket_Table_make_hash_indices_set) {
    {
        Scheme_Bucket_Table *arg1 = (Scheme_Bucket_Table *) 0 ;
        void (*arg2)(void *,long *,long *) = (void (*)(void *,long *,long *)) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Bucket_Table_make_hash_indices_set(self,make_hash_indices);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Bucket_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Bucket_Table_make_hash_indices_set. Expected _p_Scheme_Bucket_Table");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_f_p_void_p_long_p_long__void,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Bucket_Table_make_hash_indices_set. Expected _p_f_p_void_p_long_p_long__void");
            }
        }
        if (arg1) (arg1)->make_hash_indices = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Bucket_Table_make_hash_indices_get) {
    {
        Scheme_Bucket_Table *arg1 = (Scheme_Bucket_Table *) 0 ;
        void (*result)(void *,long *,long *);
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Bucket_Table_make_hash_indices_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Bucket_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Bucket_Table_make_hash_indices_get. Expected _p_Scheme_Bucket_Table");
            }
        }
        result = (void (*)(void *,long *,long *)) ((arg1)->make_hash_indices);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_f_p_void_p_long_p_long__void, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Bucket_Table_compare_set) {
    {
        Scheme_Bucket_Table *arg1 = (Scheme_Bucket_Table *) 0 ;
        int (*arg2)(void *,void *) = (int (*)(void *,void *)) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Bucket_Table_compare_set(self,compare);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Bucket_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Bucket_Table_compare_set. Expected _p_Scheme_Bucket_Table");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_f_p_void_p_void__int,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Bucket_Table_compare_set. Expected _p_f_p_void_p_void__int");
            }
        }
        if (arg1) (arg1)->compare = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Bucket_Table_compare_get) {
    {
        Scheme_Bucket_Table *arg1 = (Scheme_Bucket_Table *) 0 ;
        int (*result)(void *,void *);
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Bucket_Table_compare_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Bucket_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Bucket_Table_compare_get. Expected _p_Scheme_Bucket_Table");
            }
        }
        result = (int (*)(void *,void *)) ((arg1)->compare);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_f_p_void_p_void__int, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Bucket_Table_mutex_set) {
    {
        Scheme_Bucket_Table *arg1 = (Scheme_Bucket_Table *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Bucket_Table_mutex_set(self,mutex);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Bucket_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Bucket_Table_mutex_set. Expected _p_Scheme_Bucket_Table");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Bucket_Table_mutex_set. Expected _p_Scheme_Object");
            }
        }
        if (arg1) (arg1)->mutex = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Bucket_Table_mutex_get) {
    {
        Scheme_Bucket_Table *arg1 = (Scheme_Bucket_Table *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Bucket_Table_mutex_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Bucket_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Bucket_Table_mutex_get. Expected _p_Scheme_Bucket_Table");
            }
        }
        result = (Scheme_Object *) ((arg1)->mutex);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_Scheme_Bucket_Table) {
    {
        Scheme_Bucket_Table *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_Scheme_Bucket_Table();");
        }
        result = (Scheme_Bucket_Table *)(Scheme_Bucket_Table *) calloc(1, sizeof(Scheme_Bucket_Table));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Bucket_Table, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_Scheme_Bucket_Table) {
    {
        Scheme_Bucket_Table *arg1 = (Scheme_Bucket_Table *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_Scheme_Bucket_Table(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Bucket_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_Scheme_Bucket_Table. Expected _p_Scheme_Bucket_Table");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Jumpup_Buf_Holder_type_set) {
    {
        Scheme_Jumpup_Buf_Holder *arg1 = (Scheme_Jumpup_Buf_Holder *) 0 ;
        Scheme_Type arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Jumpup_Buf_Holder_type_set(self,type);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Jumpup_Buf_Holder,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Jumpup_Buf_Holder_type_set. Expected _p_Scheme_Jumpup_Buf_Holder");
            }
        }
        arg2 = (Scheme_Type) SvIV(ST(1));
        if (arg1) (arg1)->type = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Jumpup_Buf_Holder_type_get) {
    {
        Scheme_Jumpup_Buf_Holder *arg1 = (Scheme_Jumpup_Buf_Holder *) 0 ;
        Scheme_Type result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Jumpup_Buf_Holder_type_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Jumpup_Buf_Holder,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Jumpup_Buf_Holder_type_get. Expected _p_Scheme_Jumpup_Buf_Holder");
            }
        }
        result = (Scheme_Type) ((arg1)->type);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Jumpup_Buf_Holder_buf_set) {
    {
        Scheme_Jumpup_Buf_Holder *arg1 = (Scheme_Jumpup_Buf_Holder *) 0 ;
        Scheme_Jumpup_Buf arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Jumpup_Buf_Holder_buf_set(self,buf);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Jumpup_Buf_Holder,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Jumpup_Buf_Holder_buf_set. Expected _p_Scheme_Jumpup_Buf_Holder");
            }
        }
        {
            Scheme_Jumpup_Buf * argp;
            if (SWIG_ConvertPtr(ST(1),(void **) &argp, SWIGTYPE_p_Scheme_Jumpup_Buf,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Jumpup_Buf_Holder_buf_set. Expected _p_Scheme_Jumpup_Buf");
            }
            arg2 = *argp;
        }
        if (arg1) (arg1)->buf = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Jumpup_Buf_Holder_buf_get) {
    {
        Scheme_Jumpup_Buf_Holder *arg1 = (Scheme_Jumpup_Buf_Holder *) 0 ;
        Scheme_Jumpup_Buf result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Jumpup_Buf_Holder_buf_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Jumpup_Buf_Holder,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Jumpup_Buf_Holder_buf_get. Expected _p_Scheme_Jumpup_Buf_Holder");
            }
        }
        result =  ((arg1)->buf);
        
        {
            Scheme_Jumpup_Buf * resultobj = (Scheme_Jumpup_Buf *) malloc(sizeof(Scheme_Jumpup_Buf));
            memmove(resultobj, &result, sizeof(Scheme_Jumpup_Buf));
            ST(argvi) = sv_newmortal();
            SWIG_MakePtr(ST(argvi++), (void *) resultobj, SWIGTYPE_p_Scheme_Jumpup_Buf, 0|SWIG_OWNER);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_Scheme_Jumpup_Buf_Holder) {
    {
        Scheme_Jumpup_Buf_Holder *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_Scheme_Jumpup_Buf_Holder();");
        }
        result = (Scheme_Jumpup_Buf_Holder *)(Scheme_Jumpup_Buf_Holder *) calloc(1, sizeof(Scheme_Jumpup_Buf_Holder));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Jumpup_Buf_Holder, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_Scheme_Jumpup_Buf_Holder) {
    {
        Scheme_Jumpup_Buf_Holder *arg1 = (Scheme_Jumpup_Buf_Holder *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_Scheme_Jumpup_Buf_Holder(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Jumpup_Buf_Holder,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_Scheme_Jumpup_Buf_Holder. Expected _p_Scheme_Jumpup_Buf_Holder");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Continuation_Jump_State_jumping_to_continuation_set) {
    {
        Scheme_Continuation_Jump_State *arg1 = (Scheme_Continuation_Jump_State *) 0 ;
        struct Scheme_Escaping_Cont *arg2 = (struct Scheme_Escaping_Cont *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Continuation_Jump_State_jumping_to_continuation_set(self,jumping_to_continuation);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Continuation_Jump_State,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Continuation_Jump_State_jumping_to_continuation_set. Expected _p_Scheme_Continuation_Jump_State");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Escaping_Cont,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Continuation_Jump_State_jumping_to_continuation_set. Expected _p_Scheme_Escaping_Cont");
            }
        }
        if (arg1) (arg1)->jumping_to_continuation = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Continuation_Jump_State_jumping_to_continuation_get) {
    {
        Scheme_Continuation_Jump_State *arg1 = (Scheme_Continuation_Jump_State *) 0 ;
        struct Scheme_Escaping_Cont *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Continuation_Jump_State_jumping_to_continuation_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Continuation_Jump_State,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Continuation_Jump_State_jumping_to_continuation_get. Expected _p_Scheme_Continuation_Jump_State");
            }
        }
        result = (struct Scheme_Escaping_Cont *) ((arg1)->jumping_to_continuation);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Escaping_Cont, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Continuation_Jump_State_num_vals_set) {
    {
        Scheme_Continuation_Jump_State *arg1 = (Scheme_Continuation_Jump_State *) 0 ;
        mzshort arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Continuation_Jump_State_num_vals_set(self,num_vals);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Continuation_Jump_State,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Continuation_Jump_State_num_vals_set. Expected _p_Scheme_Continuation_Jump_State");
            }
        }
        arg2 = (mzshort) SvIV(ST(1));
        if (arg1) (arg1)->num_vals = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Continuation_Jump_State_num_vals_get) {
    {
        Scheme_Continuation_Jump_State *arg1 = (Scheme_Continuation_Jump_State *) 0 ;
        mzshort result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Continuation_Jump_State_num_vals_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Continuation_Jump_State,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Continuation_Jump_State_num_vals_get. Expected _p_Scheme_Continuation_Jump_State");
            }
        }
        result = (mzshort) ((arg1)->num_vals);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Continuation_Jump_State_is_kill_set) {
    {
        Scheme_Continuation_Jump_State *arg1 = (Scheme_Continuation_Jump_State *) 0 ;
        short arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Continuation_Jump_State_is_kill_set(self,is_kill);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Continuation_Jump_State,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Continuation_Jump_State_is_kill_set. Expected _p_Scheme_Continuation_Jump_State");
            }
        }
        arg2 = (short) SvIV(ST(1));
        if (arg1) (arg1)->is_kill = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Continuation_Jump_State_is_kill_get) {
    {
        Scheme_Continuation_Jump_State *arg1 = (Scheme_Continuation_Jump_State *) 0 ;
        short result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Continuation_Jump_State_is_kill_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Continuation_Jump_State,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Continuation_Jump_State_is_kill_get. Expected _p_Scheme_Continuation_Jump_State");
            }
        }
        result = (short) ((arg1)->is_kill);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Continuation_Jump_State_u_get) {
    {
        Scheme_Continuation_Jump_State *arg1 = (Scheme_Continuation_Jump_State *) 0 ;
        Scheme_Continuation_Jump_State_u *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Continuation_Jump_State_u_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Continuation_Jump_State,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Continuation_Jump_State_u_get. Expected _p_Scheme_Continuation_Jump_State");
            }
        }
        result = (Scheme_Continuation_Jump_State_u *)& ((arg1)->u);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Continuation_Jump_State_u, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_Scheme_Continuation_Jump_State) {
    {
        Scheme_Continuation_Jump_State *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_Scheme_Continuation_Jump_State();");
        }
        result = (Scheme_Continuation_Jump_State *)(Scheme_Continuation_Jump_State *) calloc(1, sizeof(Scheme_Continuation_Jump_State));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Continuation_Jump_State, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_Scheme_Continuation_Jump_State) {
    {
        Scheme_Continuation_Jump_State *arg1 = (Scheme_Continuation_Jump_State *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_Scheme_Continuation_Jump_State(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Continuation_Jump_State,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_Scheme_Continuation_Jump_State. Expected _p_Scheme_Continuation_Jump_State");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Continuation_Jump_State_u_vals_set) {
    {
        Scheme_Continuation_Jump_State_u *arg1 = (Scheme_Continuation_Jump_State_u *) 0 ;
        Scheme_Object **arg2 = (Scheme_Object **) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Continuation_Jump_State_u_vals_set(self,vals);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Continuation_Jump_State_u,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Continuation_Jump_State_u_vals_set. Expected _p_Scheme_Continuation_Jump_State_u");
            }
        }
        {
            arg2 = _mzscheme_from_perl_arrayref_to_objects(ST(1));
        }
        if (arg1) (arg1)->vals = arg2;
        
        
        {
            free(arg2);
        }
        XSRETURN(argvi);
        fail:
        {
            free(arg2);
        }
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Continuation_Jump_State_u_vals_get) {
    {
        Scheme_Continuation_Jump_State_u *arg1 = (Scheme_Continuation_Jump_State_u *) 0 ;
        Scheme_Object **result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Continuation_Jump_State_u_vals_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Continuation_Jump_State_u,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Continuation_Jump_State_u_vals_get. Expected _p_Scheme_Continuation_Jump_State_u");
            }
        }
        result = (Scheme_Object **) ((arg1)->vals);
        
        {
            ST(argvi) = newRV((SV *)_mzscheme_objects_AV((void **)result, (char *)&SWIGTYPE_p_Scheme_Object));
            sv_2mortal(ST(argvi));
            argvi++;
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Continuation_Jump_State_u_val_set) {
    {
        Scheme_Continuation_Jump_State_u *arg1 = (Scheme_Continuation_Jump_State_u *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Continuation_Jump_State_u_val_set(self,val);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Continuation_Jump_State_u,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Continuation_Jump_State_u_val_set. Expected _p_Scheme_Continuation_Jump_State_u");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Continuation_Jump_State_u_val_set. Expected _p_Scheme_Object");
            }
        }
        if (arg1) (arg1)->val = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Continuation_Jump_State_u_val_get) {
    {
        Scheme_Continuation_Jump_State_u *arg1 = (Scheme_Continuation_Jump_State_u *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Continuation_Jump_State_u_val_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Continuation_Jump_State_u,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Continuation_Jump_State_u_val_get. Expected _p_Scheme_Continuation_Jump_State_u");
            }
        }
        result = (Scheme_Object *) ((arg1)->val);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_Scheme_Continuation_Jump_State_u) {
    {
        Scheme_Continuation_Jump_State_u *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_Scheme_Continuation_Jump_State_u();");
        }
        result = (Scheme_Continuation_Jump_State_u *)(Scheme_Continuation_Jump_State_u *) calloc(1, sizeof(Scheme_Continuation_Jump_State_u));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Continuation_Jump_State_u, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_Scheme_Continuation_Jump_State_u) {
    {
        Scheme_Continuation_Jump_State_u *arg1 = (Scheme_Continuation_Jump_State_u *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_Scheme_Continuation_Jump_State_u(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Continuation_Jump_State_u,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_Scheme_Continuation_Jump_State_u. Expected _p_Scheme_Continuation_Jump_State_u");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Cont_Frame_Data_cont_mark_pos_set) {
    {
        Scheme_Cont_Frame_Data *arg1 = (Scheme_Cont_Frame_Data *) 0 ;
        char *arg2 = (char *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Cont_Frame_Data_cont_mark_pos_set(self,cont_mark_pos);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Cont_Frame_Data,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Cont_Frame_Data_cont_mark_pos_set. Expected _p_Scheme_Cont_Frame_Data");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        {
            if (arg1->cont_mark_pos) free((char*)arg1->cont_mark_pos);
            if (arg2) {
                arg1->cont_mark_pos = (char *) malloc(strlen(arg2)+1);
                strcpy((char*)arg1->cont_mark_pos,arg2);
            } else {
                arg1->cont_mark_pos = 0;
            }
        }
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Cont_Frame_Data_cont_mark_pos_get) {
    {
        Scheme_Cont_Frame_Data *arg1 = (Scheme_Cont_Frame_Data *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Cont_Frame_Data_cont_mark_pos_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Cont_Frame_Data,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Cont_Frame_Data_cont_mark_pos_get. Expected _p_Scheme_Cont_Frame_Data");
            }
        }
        result = (char *) ((arg1)->cont_mark_pos);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Cont_Frame_Data_cont_mark_stack_set) {
    {
        Scheme_Cont_Frame_Data *arg1 = (Scheme_Cont_Frame_Data *) 0 ;
        char *arg2 = (char *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Cont_Frame_Data_cont_mark_stack_set(self,cont_mark_stack);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Cont_Frame_Data,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Cont_Frame_Data_cont_mark_stack_set. Expected _p_Scheme_Cont_Frame_Data");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        {
            if (arg1->cont_mark_stack) free((char*)arg1->cont_mark_stack);
            if (arg2) {
                arg1->cont_mark_stack = (char *) malloc(strlen(arg2)+1);
                strcpy((char*)arg1->cont_mark_stack,arg2);
            } else {
                arg1->cont_mark_stack = 0;
            }
        }
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Cont_Frame_Data_cont_mark_stack_get) {
    {
        Scheme_Cont_Frame_Data *arg1 = (Scheme_Cont_Frame_Data *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Cont_Frame_Data_cont_mark_stack_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Cont_Frame_Data,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Cont_Frame_Data_cont_mark_stack_get. Expected _p_Scheme_Cont_Frame_Data");
            }
        }
        result = (char *) ((arg1)->cont_mark_stack);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_Scheme_Cont_Frame_Data) {
    {
        Scheme_Cont_Frame_Data *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_Scheme_Cont_Frame_Data();");
        }
        result = (Scheme_Cont_Frame_Data *)(Scheme_Cont_Frame_Data *) calloc(1, sizeof(Scheme_Cont_Frame_Data));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Cont_Frame_Data, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_Scheme_Cont_Frame_Data) {
    {
        Scheme_Cont_Frame_Data *arg1 = (Scheme_Cont_Frame_Data *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_Scheme_Cont_Frame_Data(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Cont_Frame_Data,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_Scheme_Cont_Frame_Data. Expected _p_Scheme_Cont_Frame_Data");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Config_type_set) {
    {
        Scheme_Config *arg1 = (Scheme_Config *) 0 ;
        Scheme_Type arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Config_type_set(self,type);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Config,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Config_type_set. Expected _p_Scheme_Config");
            }
        }
        arg2 = (Scheme_Type) SvIV(ST(1));
        if (arg1) (arg1)->type = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Config_type_get) {
    {
        Scheme_Config *arg1 = (Scheme_Config *) 0 ;
        Scheme_Type result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Config_type_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Config,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Config_type_get. Expected _p_Scheme_Config");
            }
        }
        result = (Scheme_Type) ((arg1)->type);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Config_use_count_set) {
    {
        Scheme_Config *arg1 = (Scheme_Config *) 0 ;
        int *arg2 = (int *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Config_use_count_set(self,use_count);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Config,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Config_use_count_set. Expected _p_Scheme_Config");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_int,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Config_use_count_set. Expected _p_int");
            }
        }
        if (arg1) (arg1)->use_count = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Config_use_count_get) {
    {
        Scheme_Config *arg1 = (Scheme_Config *) 0 ;
        int *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Config_use_count_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Config,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Config_use_count_get. Expected _p_Scheme_Config");
            }
        }
        result = (int *) ((arg1)->use_count);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_int, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Config_extensions_set) {
    {
        Scheme_Config *arg1 = (Scheme_Config *) 0 ;
        Scheme_Bucket_Table *arg2 = (Scheme_Bucket_Table *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Config_extensions_set(self,extensions);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Config,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Config_extensions_set. Expected _p_Scheme_Config");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Bucket_Table,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Config_extensions_set. Expected _p_Scheme_Bucket_Table");
            }
        }
        if (arg1) (arg1)->extensions = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Config_extensions_get) {
    {
        Scheme_Config *arg1 = (Scheme_Config *) 0 ;
        Scheme_Bucket_Table *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Config_extensions_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Config,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Config_extensions_get. Expected _p_Scheme_Config");
            }
        }
        result = (Scheme_Bucket_Table *) ((arg1)->extensions);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Bucket_Table, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Config_configs_set) {
    {
        Scheme_Config *arg1 = (Scheme_Config *) 0 ;
        Scheme_Object **arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Config_configs_set(self,configs);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Config,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Config_configs_set. Expected _p_Scheme_Config");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Config_configs_set. Expected _p_p_Scheme_Object");
            }
        }
        {
            size_t ii;
            Scheme_Object * *b = (Scheme_Object * *) arg1->configs;
            for (ii = 0; ii < (size_t)1; ii++) b[ii] = *((Scheme_Object * *) arg2 + ii);
        }
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Config_configs_get) {
    {
        Scheme_Config *arg1 = (Scheme_Config *) 0 ;
        Scheme_Object **result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Config_configs_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Config,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Config_configs_get. Expected _p_Scheme_Config");
            }
        }
        result = (Scheme_Object **)(Scheme_Object **) ((arg1)->configs);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_Scheme_Object, 0|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_Scheme_Config) {
    {
        Scheme_Config *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_Scheme_Config();");
        }
        result = (Scheme_Config *)(Scheme_Config *) calloc(1, sizeof(Scheme_Config));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Config, SWIG_SHADOW|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_Scheme_Config) {
    {
        Scheme_Config *arg1 = (Scheme_Config *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_Scheme_Config(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Config,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_Scheme_Config. Expected _p_Scheme_Config");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_type_set) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        Scheme_Type arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Input_Port_type_set(self,type);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_type_set. Expected _p_Scheme_Input_Port");
            }
        }
        arg2 = (Scheme_Type) SvIV(ST(1));
        if (arg1) (arg1)->type = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_type_get) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        Scheme_Type result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Input_Port_type_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_type_get. Expected _p_Scheme_Input_Port");
            }
        }
        result = (Scheme_Type) ((arg1)->type);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_closed_set) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        char arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Input_Port_closed_set(self,closed);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_closed_set. Expected _p_Scheme_Input_Port");
            }
        }
        arg2 = (char) *SvPV(ST(1),PL_na);
        if (arg1) (arg1)->closed = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_closed_get) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        char result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Input_Port_closed_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_closed_get. Expected _p_Scheme_Input_Port");
            }
        }
        result = (char) ((arg1)->closed);
        
        ST(argvi) = sv_newmortal();
        sv_setpvn((SV*)ST(argvi++), &result, 1);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_pending_eof_set) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        char arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Input_Port_pending_eof_set(self,pending_eof);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_pending_eof_set. Expected _p_Scheme_Input_Port");
            }
        }
        arg2 = (char) *SvPV(ST(1),PL_na);
        if (arg1) (arg1)->pending_eof = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_pending_eof_get) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        char result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Input_Port_pending_eof_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_pending_eof_get. Expected _p_Scheme_Input_Port");
            }
        }
        result = (char) ((arg1)->pending_eof);
        
        ST(argvi) = sv_newmortal();
        sv_setpvn((SV*)ST(argvi++), &result, 1);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_sub_type_set) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Input_Port_sub_type_set(self,sub_type);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_sub_type_set. Expected _p_Scheme_Input_Port");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Input_Port_sub_type_set. Expected _p_Scheme_Object");
            }
        }
        if (arg1) (arg1)->sub_type = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_sub_type_get) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Input_Port_sub_type_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_sub_type_get. Expected _p_Scheme_Input_Port");
            }
        }
        result = (Scheme_Object *) ((arg1)->sub_type);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_mref_set) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        Scheme_Custodian_Reference *arg2 = (Scheme_Custodian_Reference *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Input_Port_mref_set(self,mref);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_mref_set. Expected _p_Scheme_Input_Port");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_Scheme_Custodian,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Input_Port_mref_set. Expected _p_p_Scheme_Custodian");
            }
        }
        if (arg1) (arg1)->mref = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_mref_get) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        Scheme_Custodian_Reference *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Input_Port_mref_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_mref_get. Expected _p_Scheme_Input_Port");
            }
        }
        result = (Scheme_Custodian_Reference *) ((arg1)->mref);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_Scheme_Custodian, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_port_data_set) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        void *arg2 = (void *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Input_Port_port_data_set(self,port_data);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_port_data_set. Expected _p_Scheme_Input_Port");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Input_Port_port_data_set. Expected _p_void");
            }
        }
        if (arg1) (arg1)->port_data = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_port_data_get) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        void *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Input_Port_port_data_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_port_data_get. Expected _p_Scheme_Input_Port");
            }
        }
        result = (void *) ((arg1)->port_data);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_void, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_get_string_fun_set) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        Scheme_Get_String_Fun arg2 = (Scheme_Get_String_Fun) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Input_Port_get_string_fun_set(self,get_string_fun);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_get_string_fun_set. Expected _p_Scheme_Input_Port");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_f_p_struct_Scheme_Input_Port_p_char_long_long_int__long,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Input_Port_get_string_fun_set. Expected _p_f_p_struct_Scheme_Input_Port_p_char_long_long_int__long");
            }
        }
        if (arg1) (arg1)->get_string_fun = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_get_string_fun_get) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        Scheme_Get_String_Fun result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Input_Port_get_string_fun_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_get_string_fun_get. Expected _p_Scheme_Input_Port");
            }
        }
        result = (Scheme_Get_String_Fun) ((arg1)->get_string_fun);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_f_p_struct_Scheme_Input_Port_p_char_long_long_int__long, 0|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_peek_string_fun_set) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        Scheme_Peek_String_Fun arg2 = (Scheme_Peek_String_Fun) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Input_Port_peek_string_fun_set(self,peek_string_fun);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_peek_string_fun_set. Expected _p_Scheme_Input_Port");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_f_p_struct_Scheme_Input_Port_p_char_long_long_p_struct_Scheme_Object_int__long,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Input_Port_peek_string_fun_set. Expected _p_f_p_struct_Scheme_Input_Port_p_char_long_long_p_struct_Scheme_Object_int__long");
            }
        }
        if (arg1) (arg1)->peek_string_fun = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_peek_string_fun_get) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        Scheme_Peek_String_Fun result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Input_Port_peek_string_fun_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_peek_string_fun_get. Expected _p_Scheme_Input_Port");
            }
        }
        result = (Scheme_Peek_String_Fun) ((arg1)->peek_string_fun);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_f_p_struct_Scheme_Input_Port_p_char_long_long_p_struct_Scheme_Object_int__long, 0|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_char_ready_fun_set) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        Scheme_In_Ready_Fun arg2 = (Scheme_In_Ready_Fun) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Input_Port_char_ready_fun_set(self,char_ready_fun);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_char_ready_fun_set. Expected _p_Scheme_Input_Port");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_f_p_struct_Scheme_Input_Port__int,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Input_Port_char_ready_fun_set. Expected _p_f_p_struct_Scheme_Input_Port__int");
            }
        }
        if (arg1) (arg1)->char_ready_fun = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_char_ready_fun_get) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        Scheme_In_Ready_Fun result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Input_Port_char_ready_fun_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_char_ready_fun_get. Expected _p_Scheme_Input_Port");
            }
        }
        result = (Scheme_In_Ready_Fun) ((arg1)->char_ready_fun);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_f_p_struct_Scheme_Input_Port__int, 0|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_close_fun_set) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        Scheme_Close_Input_Fun arg2 = (Scheme_Close_Input_Fun) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Input_Port_close_fun_set(self,close_fun);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_close_fun_set. Expected _p_Scheme_Input_Port");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_f_p_struct_Scheme_Input_Port__void,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Input_Port_close_fun_set. Expected _p_f_p_struct_Scheme_Input_Port__void");
            }
        }
        if (arg1) (arg1)->close_fun = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_close_fun_get) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        Scheme_Close_Input_Fun result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Input_Port_close_fun_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_close_fun_get. Expected _p_Scheme_Input_Port");
            }
        }
        result = (Scheme_Close_Input_Fun) ((arg1)->close_fun);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_f_p_struct_Scheme_Input_Port__void, 0|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_need_wakeup_fun_set) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        Scheme_Need_Wakeup_Input_Fun arg2 = (Scheme_Need_Wakeup_Input_Fun) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Input_Port_need_wakeup_fun_set(self,need_wakeup_fun);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_need_wakeup_fun_set. Expected _p_Scheme_Input_Port");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_f_p_struct_Scheme_Input_Port_p_void__void,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Input_Port_need_wakeup_fun_set. Expected _p_f_p_struct_Scheme_Input_Port_p_void__void");
            }
        }
        if (arg1) (arg1)->need_wakeup_fun = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_need_wakeup_fun_get) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        Scheme_Need_Wakeup_Input_Fun result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Input_Port_need_wakeup_fun_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_need_wakeup_fun_get. Expected _p_Scheme_Input_Port");
            }
        }
        result = (Scheme_Need_Wakeup_Input_Fun) ((arg1)->need_wakeup_fun);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_f_p_struct_Scheme_Input_Port_p_void__void, 0|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_read_handler_set) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Input_Port_read_handler_set(self,read_handler);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_read_handler_set. Expected _p_Scheme_Input_Port");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Input_Port_read_handler_set. Expected _p_Scheme_Object");
            }
        }
        if (arg1) (arg1)->read_handler = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_read_handler_get) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Input_Port_read_handler_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_read_handler_get. Expected _p_Scheme_Input_Port");
            }
        }
        result = (Scheme_Object *) ((arg1)->read_handler);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_name_set) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        char *arg2 = (char *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Input_Port_name_set(self,name);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_name_set. Expected _p_Scheme_Input_Port");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        {
            if (arg1->name) free((char*)arg1->name);
            if (arg2) {
                arg1->name = (char *) malloc(strlen(arg2)+1);
                strcpy((char*)arg1->name,arg2);
            } else {
                arg1->name = 0;
            }
        }
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_name_get) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Input_Port_name_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_name_get. Expected _p_Scheme_Input_Port");
            }
        }
        result = (char *) ((arg1)->name);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_peeked_read_set) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Input_Port_peeked_read_set(self,peeked_read);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_peeked_read_set. Expected _p_Scheme_Input_Port");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Input_Port_peeked_read_set. Expected _p_Scheme_Object");
            }
        }
        if (arg1) (arg1)->peeked_read = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_peeked_read_get) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Input_Port_peeked_read_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_peeked_read_get. Expected _p_Scheme_Input_Port");
            }
        }
        result = (Scheme_Object *) ((arg1)->peeked_read);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_peeked_write_set) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Input_Port_peeked_write_set(self,peeked_write);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_peeked_write_set. Expected _p_Scheme_Input_Port");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Input_Port_peeked_write_set. Expected _p_Scheme_Object");
            }
        }
        if (arg1) (arg1)->peeked_write = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_peeked_write_get) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Input_Port_peeked_write_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_peeked_write_get. Expected _p_Scheme_Input_Port");
            }
        }
        result = (Scheme_Object *) ((arg1)->peeked_write);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_ungotten_set) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        unsigned char *arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Input_Port_ungotten_set(self,ungotten);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_ungotten_set. Expected _p_Scheme_Input_Port");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_unsigned_char,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Input_Port_ungotten_set. Expected _p_unsigned_char");
            }
        }
        {
            size_t ii;
            unsigned char *b = (unsigned char *) arg1->ungotten;
            for (ii = 0; ii < (size_t)4; ii++) b[ii] = *((unsigned char *) arg2 + ii);
        }
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_ungotten_get) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        unsigned char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Input_Port_ungotten_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_ungotten_get. Expected _p_Scheme_Input_Port");
            }
        }
        result = (unsigned char *)(unsigned char *) ((arg1)->ungotten);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_unsigned_char, 0|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_ungotten_count_set) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        int arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Input_Port_ungotten_count_set(self,ungotten_count);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_ungotten_count_set. Expected _p_Scheme_Input_Port");
            }
        }
        arg2 = (int) SvIV(ST(1));
        if (arg1) (arg1)->ungotten_count = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_ungotten_count_get) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Input_Port_ungotten_count_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_ungotten_count_get. Expected _p_Scheme_Input_Port");
            }
        }
        result = (int) ((arg1)->ungotten_count);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_special_set) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Input_Port_special_set(self,special);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_special_set. Expected _p_Scheme_Input_Port");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Input_Port_special_set. Expected _p_Scheme_Object");
            }
        }
        if (arg1) (arg1)->special = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_special_get) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Input_Port_special_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_special_get. Expected _p_Scheme_Input_Port");
            }
        }
        result = (Scheme_Object *) ((arg1)->special);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_ungotten_special_set) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Input_Port_ungotten_special_set(self,ungotten_special);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_ungotten_special_set. Expected _p_Scheme_Input_Port");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Input_Port_ungotten_special_set. Expected _p_Scheme_Object");
            }
        }
        if (arg1) (arg1)->ungotten_special = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_ungotten_special_get) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Input_Port_ungotten_special_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_ungotten_special_get. Expected _p_Scheme_Input_Port");
            }
        }
        result = (Scheme_Object *) ((arg1)->ungotten_special);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_position_set) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        long arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Input_Port_position_set(self,position);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_position_set. Expected _p_Scheme_Input_Port");
            }
        }
        arg2 = (long) SvIV(ST(1));
        if (arg1) (arg1)->position = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_position_get) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        long result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Input_Port_position_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_position_get. Expected _p_Scheme_Input_Port");
            }
        }
        result = (long) ((arg1)->position);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_readpos_set) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        long arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Input_Port_readpos_set(self,readpos);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_readpos_set. Expected _p_Scheme_Input_Port");
            }
        }
        arg2 = (long) SvIV(ST(1));
        if (arg1) (arg1)->readpos = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_readpos_get) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        long result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Input_Port_readpos_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_readpos_get. Expected _p_Scheme_Input_Port");
            }
        }
        result = (long) ((arg1)->readpos);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_lineNumber_set) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        long arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Input_Port_lineNumber_set(self,lineNumber);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_lineNumber_set. Expected _p_Scheme_Input_Port");
            }
        }
        arg2 = (long) SvIV(ST(1));
        if (arg1) (arg1)->lineNumber = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_lineNumber_get) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        long result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Input_Port_lineNumber_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_lineNumber_get. Expected _p_Scheme_Input_Port");
            }
        }
        result = (long) ((arg1)->lineNumber);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_charsSinceNewline_set) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        long arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Input_Port_charsSinceNewline_set(self,charsSinceNewline);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_charsSinceNewline_set. Expected _p_Scheme_Input_Port");
            }
        }
        arg2 = (long) SvIV(ST(1));
        if (arg1) (arg1)->charsSinceNewline = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_charsSinceNewline_get) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        long result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Input_Port_charsSinceNewline_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_charsSinceNewline_get. Expected _p_Scheme_Input_Port");
            }
        }
        result = (long) ((arg1)->charsSinceNewline);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_column_set) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        long arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Input_Port_column_set(self,column);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_column_set. Expected _p_Scheme_Input_Port");
            }
        }
        arg2 = (long) SvIV(ST(1));
        if (arg1) (arg1)->column = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_column_get) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        long result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Input_Port_column_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_column_get. Expected _p_Scheme_Input_Port");
            }
        }
        result = (long) ((arg1)->column);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_oldColumn_set) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        long arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Input_Port_oldColumn_set(self,oldColumn);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_oldColumn_set. Expected _p_Scheme_Input_Port");
            }
        }
        arg2 = (long) SvIV(ST(1));
        if (arg1) (arg1)->oldColumn = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_oldColumn_get) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        long result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Input_Port_oldColumn_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_oldColumn_get. Expected _p_Scheme_Input_Port");
            }
        }
        result = (long) ((arg1)->oldColumn);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_count_lines_set) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        int arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Input_Port_count_lines_set(self,count_lines);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_count_lines_set. Expected _p_Scheme_Input_Port");
            }
        }
        arg2 = (int) SvIV(ST(1));
        if (arg1) (arg1)->count_lines = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_count_lines_get) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Input_Port_count_lines_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_count_lines_get. Expected _p_Scheme_Input_Port");
            }
        }
        result = (int) ((arg1)->count_lines);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_was_cr_set) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        int arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Input_Port_was_cr_set(self,was_cr);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_was_cr_set. Expected _p_Scheme_Input_Port");
            }
        }
        arg2 = (int) SvIV(ST(1));
        if (arg1) (arg1)->was_cr = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_was_cr_get) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Input_Port_was_cr_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_was_cr_get. Expected _p_Scheme_Input_Port");
            }
        }
        result = (int) ((arg1)->was_cr);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_output_half_set) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        struct Scheme_Output_Port *arg2 = (struct Scheme_Output_Port *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Input_Port_output_half_set(self,output_half);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_output_half_set. Expected _p_Scheme_Input_Port");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Output_Port,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Input_Port_output_half_set. Expected _p_Scheme_Output_Port");
            }
        }
        if (arg1) (arg1)->output_half = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Input_Port_output_half_get) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        struct Scheme_Output_Port *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Input_Port_output_half_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Input_Port_output_half_get. Expected _p_Scheme_Input_Port");
            }
        }
        result = (struct Scheme_Output_Port *) ((arg1)->output_half);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Output_Port, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_Scheme_Input_Port) {
    {
        struct Scheme_Input_Port *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_Scheme_Input_Port();");
        }
        result = (struct Scheme_Input_Port *)(struct Scheme_Input_Port *) calloc(1, sizeof(struct Scheme_Input_Port));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Input_Port, 0|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_Scheme_Input_Port) {
    {
        struct Scheme_Input_Port *arg1 = (struct Scheme_Input_Port *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_Scheme_Input_Port(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_Scheme_Input_Port. Expected _p_Scheme_Input_Port");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Output_Port_type_set) {
    {
        struct Scheme_Output_Port *arg1 = (struct Scheme_Output_Port *) 0 ;
        Scheme_Type arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Output_Port_type_set(self,type);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Output_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Output_Port_type_set. Expected _p_Scheme_Output_Port");
            }
        }
        arg2 = (Scheme_Type) SvIV(ST(1));
        if (arg1) (arg1)->type = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Output_Port_type_get) {
    {
        struct Scheme_Output_Port *arg1 = (struct Scheme_Output_Port *) 0 ;
        Scheme_Type result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Output_Port_type_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Output_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Output_Port_type_get. Expected _p_Scheme_Output_Port");
            }
        }
        result = (Scheme_Type) ((arg1)->type);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Output_Port_closed_set) {
    {
        struct Scheme_Output_Port *arg1 = (struct Scheme_Output_Port *) 0 ;
        short arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Output_Port_closed_set(self,closed);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Output_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Output_Port_closed_set. Expected _p_Scheme_Output_Port");
            }
        }
        arg2 = (short) SvIV(ST(1));
        if (arg1) (arg1)->closed = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Output_Port_closed_get) {
    {
        struct Scheme_Output_Port *arg1 = (struct Scheme_Output_Port *) 0 ;
        short result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Output_Port_closed_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Output_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Output_Port_closed_get. Expected _p_Scheme_Output_Port");
            }
        }
        result = (short) ((arg1)->closed);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Output_Port_sub_type_set) {
    {
        struct Scheme_Output_Port *arg1 = (struct Scheme_Output_Port *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Output_Port_sub_type_set(self,sub_type);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Output_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Output_Port_sub_type_set. Expected _p_Scheme_Output_Port");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Output_Port_sub_type_set. Expected _p_Scheme_Object");
            }
        }
        if (arg1) (arg1)->sub_type = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Output_Port_sub_type_get) {
    {
        struct Scheme_Output_Port *arg1 = (struct Scheme_Output_Port *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Output_Port_sub_type_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Output_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Output_Port_sub_type_get. Expected _p_Scheme_Output_Port");
            }
        }
        result = (Scheme_Object *) ((arg1)->sub_type);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Output_Port_mref_set) {
    {
        struct Scheme_Output_Port *arg1 = (struct Scheme_Output_Port *) 0 ;
        Scheme_Custodian_Reference *arg2 = (Scheme_Custodian_Reference *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Output_Port_mref_set(self,mref);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Output_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Output_Port_mref_set. Expected _p_Scheme_Output_Port");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_Scheme_Custodian,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Output_Port_mref_set. Expected _p_p_Scheme_Custodian");
            }
        }
        if (arg1) (arg1)->mref = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Output_Port_mref_get) {
    {
        struct Scheme_Output_Port *arg1 = (struct Scheme_Output_Port *) 0 ;
        Scheme_Custodian_Reference *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Output_Port_mref_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Output_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Output_Port_mref_get. Expected _p_Scheme_Output_Port");
            }
        }
        result = (Scheme_Custodian_Reference *) ((arg1)->mref);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_Scheme_Custodian, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Output_Port_port_data_set) {
    {
        struct Scheme_Output_Port *arg1 = (struct Scheme_Output_Port *) 0 ;
        void *arg2 = (void *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Output_Port_port_data_set(self,port_data);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Output_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Output_Port_port_data_set. Expected _p_Scheme_Output_Port");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Output_Port_port_data_set. Expected _p_void");
            }
        }
        if (arg1) (arg1)->port_data = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Output_Port_port_data_get) {
    {
        struct Scheme_Output_Port *arg1 = (struct Scheme_Output_Port *) 0 ;
        void *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Output_Port_port_data_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Output_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Output_Port_port_data_get. Expected _p_Scheme_Output_Port");
            }
        }
        result = (void *) ((arg1)->port_data);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_void, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Output_Port_write_string_fun_set) {
    {
        struct Scheme_Output_Port *arg1 = (struct Scheme_Output_Port *) 0 ;
        Scheme_Write_String_Fun arg2 = (Scheme_Write_String_Fun) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Output_Port_write_string_fun_set(self,write_string_fun);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Output_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Output_Port_write_string_fun_set. Expected _p_Scheme_Output_Port");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_f_p_struct_Scheme_Output_Port_p_q_const__char_long_long_int__long,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Output_Port_write_string_fun_set. Expected _p_f_p_struct_Scheme_Output_Port_p_q_const__char_long_long_int__long");
            }
        }
        if (arg1) (arg1)->write_string_fun = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Output_Port_write_string_fun_get) {
    {
        struct Scheme_Output_Port *arg1 = (struct Scheme_Output_Port *) 0 ;
        Scheme_Write_String_Fun result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Output_Port_write_string_fun_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Output_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Output_Port_write_string_fun_get. Expected _p_Scheme_Output_Port");
            }
        }
        result = (Scheme_Write_String_Fun) ((arg1)->write_string_fun);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_f_p_struct_Scheme_Output_Port_p_q_const__char_long_long_int__long, 0|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Output_Port_close_fun_set) {
    {
        struct Scheme_Output_Port *arg1 = (struct Scheme_Output_Port *) 0 ;
        Scheme_Close_Output_Fun arg2 = (Scheme_Close_Output_Fun) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Output_Port_close_fun_set(self,close_fun);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Output_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Output_Port_close_fun_set. Expected _p_Scheme_Output_Port");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_f_p_struct_Scheme_Output_Port__void,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Output_Port_close_fun_set. Expected _p_f_p_struct_Scheme_Output_Port__void");
            }
        }
        if (arg1) (arg1)->close_fun = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Output_Port_close_fun_get) {
    {
        struct Scheme_Output_Port *arg1 = (struct Scheme_Output_Port *) 0 ;
        Scheme_Close_Output_Fun result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Output_Port_close_fun_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Output_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Output_Port_close_fun_get. Expected _p_Scheme_Output_Port");
            }
        }
        result = (Scheme_Close_Output_Fun) ((arg1)->close_fun);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_f_p_struct_Scheme_Output_Port__void, 0|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Output_Port_ready_fun_set) {
    {
        struct Scheme_Output_Port *arg1 = (struct Scheme_Output_Port *) 0 ;
        Scheme_Out_Ready_Fun arg2 = (Scheme_Out_Ready_Fun) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Output_Port_ready_fun_set(self,ready_fun);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Output_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Output_Port_ready_fun_set. Expected _p_Scheme_Output_Port");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_f_p_struct_Scheme_Output_Port__int,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Output_Port_ready_fun_set. Expected _p_f_p_struct_Scheme_Output_Port__int");
            }
        }
        if (arg1) (arg1)->ready_fun = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Output_Port_ready_fun_get) {
    {
        struct Scheme_Output_Port *arg1 = (struct Scheme_Output_Port *) 0 ;
        Scheme_Out_Ready_Fun result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Output_Port_ready_fun_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Output_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Output_Port_ready_fun_get. Expected _p_Scheme_Output_Port");
            }
        }
        result = (Scheme_Out_Ready_Fun) ((arg1)->ready_fun);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_f_p_struct_Scheme_Output_Port__int, 0|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Output_Port_need_wakeup_fun_set) {
    {
        struct Scheme_Output_Port *arg1 = (struct Scheme_Output_Port *) 0 ;
        Scheme_Need_Wakeup_Output_Fun arg2 = (Scheme_Need_Wakeup_Output_Fun) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Output_Port_need_wakeup_fun_set(self,need_wakeup_fun);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Output_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Output_Port_need_wakeup_fun_set. Expected _p_Scheme_Output_Port");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_f_p_struct_Scheme_Output_Port_p_void__void,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Output_Port_need_wakeup_fun_set. Expected _p_f_p_struct_Scheme_Output_Port_p_void__void");
            }
        }
        if (arg1) (arg1)->need_wakeup_fun = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Output_Port_need_wakeup_fun_get) {
    {
        struct Scheme_Output_Port *arg1 = (struct Scheme_Output_Port *) 0 ;
        Scheme_Need_Wakeup_Output_Fun result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Output_Port_need_wakeup_fun_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Output_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Output_Port_need_wakeup_fun_get. Expected _p_Scheme_Output_Port");
            }
        }
        result = (Scheme_Need_Wakeup_Output_Fun) ((arg1)->need_wakeup_fun);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_f_p_struct_Scheme_Output_Port_p_void__void, 0|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Output_Port_pos_set) {
    {
        struct Scheme_Output_Port *arg1 = (struct Scheme_Output_Port *) 0 ;
        long arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Output_Port_pos_set(self,pos);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Output_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Output_Port_pos_set. Expected _p_Scheme_Output_Port");
            }
        }
        arg2 = (long) SvIV(ST(1));
        if (arg1) (arg1)->pos = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Output_Port_pos_get) {
    {
        struct Scheme_Output_Port *arg1 = (struct Scheme_Output_Port *) 0 ;
        long result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Output_Port_pos_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Output_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Output_Port_pos_get. Expected _p_Scheme_Output_Port");
            }
        }
        result = (long) ((arg1)->pos);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Output_Port_display_handler_set) {
    {
        struct Scheme_Output_Port *arg1 = (struct Scheme_Output_Port *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Output_Port_display_handler_set(self,display_handler);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Output_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Output_Port_display_handler_set. Expected _p_Scheme_Output_Port");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Output_Port_display_handler_set. Expected _p_Scheme_Object");
            }
        }
        if (arg1) (arg1)->display_handler = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Output_Port_display_handler_get) {
    {
        struct Scheme_Output_Port *arg1 = (struct Scheme_Output_Port *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Output_Port_display_handler_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Output_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Output_Port_display_handler_get. Expected _p_Scheme_Output_Port");
            }
        }
        result = (Scheme_Object *) ((arg1)->display_handler);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Output_Port_write_handler_set) {
    {
        struct Scheme_Output_Port *arg1 = (struct Scheme_Output_Port *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Output_Port_write_handler_set(self,write_handler);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Output_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Output_Port_write_handler_set. Expected _p_Scheme_Output_Port");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Output_Port_write_handler_set. Expected _p_Scheme_Object");
            }
        }
        if (arg1) (arg1)->write_handler = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Output_Port_write_handler_get) {
    {
        struct Scheme_Output_Port *arg1 = (struct Scheme_Output_Port *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Output_Port_write_handler_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Output_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Output_Port_write_handler_get. Expected _p_Scheme_Output_Port");
            }
        }
        result = (Scheme_Object *) ((arg1)->write_handler);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Output_Port_print_handler_set) {
    {
        struct Scheme_Output_Port *arg1 = (struct Scheme_Output_Port *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Output_Port_print_handler_set(self,print_handler);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Output_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Output_Port_print_handler_set. Expected _p_Scheme_Output_Port");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Output_Port_print_handler_set. Expected _p_Scheme_Object");
            }
        }
        if (arg1) (arg1)->print_handler = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Output_Port_print_handler_get) {
    {
        struct Scheme_Output_Port *arg1 = (struct Scheme_Output_Port *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Output_Port_print_handler_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Output_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Output_Port_print_handler_get. Expected _p_Scheme_Output_Port");
            }
        }
        result = (Scheme_Object *) ((arg1)->print_handler);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Output_Port_input_half_set) {
    {
        struct Scheme_Output_Port *arg1 = (struct Scheme_Output_Port *) 0 ;
        struct Scheme_Input_Port *arg2 = (struct Scheme_Input_Port *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: Scheme_Output_Port_input_half_set(self,input_half);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Output_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Output_Port_input_half_set. Expected _p_Scheme_Output_Port");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Input_Port,0) < 0) {
                SWIG_croak("Type error in argument 2 of Scheme_Output_Port_input_half_set. Expected _p_Scheme_Input_Port");
            }
        }
        if (arg1) (arg1)->input_half = arg2;
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_Scheme_Output_Port_input_half_get) {
    {
        struct Scheme_Output_Port *arg1 = (struct Scheme_Output_Port *) 0 ;
        struct Scheme_Input_Port *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: Scheme_Output_Port_input_half_get(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Output_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of Scheme_Output_Port_input_half_get. Expected _p_Scheme_Output_Port");
            }
        }
        result = (struct Scheme_Input_Port *) ((arg1)->input_half);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Input_Port, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_new_Scheme_Output_Port) {
    {
        struct Scheme_Output_Port *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: new_Scheme_Output_Port();");
        }
        result = (struct Scheme_Output_Port *)(struct Scheme_Output_Port *) calloc(1, sizeof(struct Scheme_Output_Port));
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Output_Port, 0|SWIG_OWNER);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_delete_Scheme_Output_Port) {
    {
        struct Scheme_Output_Port *arg1 = (struct Scheme_Output_Port *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: delete_Scheme_Output_Port(self);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Output_Port,0) < 0) {
                SWIG_croak("Type error in argument 1 of delete_Scheme_Output_Port. Expected _p_Scheme_Output_Port");
            }
        }
        free((char *) arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_init_jmpup_buf) {
    {
        Scheme_Jumpup_Buf *arg1 = (Scheme_Jumpup_Buf *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_init_jmpup_buf(b);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Jumpup_Buf,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_init_jmpup_buf. Expected _p_Scheme_Jumpup_Buf");
            }
        }
        scheme_init_jmpup_buf(arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_setjmpup_relative) {
    {
        Scheme_Jumpup_Buf *arg1 = (Scheme_Jumpup_Buf *) 0 ;
        void *arg2 = (void *) 0 ;
        void *arg3 = (void *) (void *)0 ;
        Scheme_Jumpup_Buf *arg4 = (Scheme_Jumpup_Buf *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: scheme_setjmpup_relative(b,base,start,cont);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Jumpup_Buf,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_setjmpup_relative. Expected _p_Scheme_Jumpup_Buf");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_setjmpup_relative. Expected _p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, 0,0) < 0) {
                SWIG_croak("Type error in argument 3 of scheme_setjmpup_relative. Expected _p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(3), (void **) &arg4, SWIGTYPE_p_Scheme_Jumpup_Buf,0) < 0) {
                SWIG_croak("Type error in argument 4 of scheme_setjmpup_relative. Expected _p_Scheme_Jumpup_Buf");
            }
        }
        result = (int)scheme_setjmpup_relative(arg1,arg2,(void *volatile )arg3,arg4);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_longjmpup) {
    {
        Scheme_Jumpup_Buf *arg1 = (Scheme_Jumpup_Buf *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_longjmpup(b);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Jumpup_Buf,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_longjmpup. Expected _p_Scheme_Jumpup_Buf");
            }
        }
        scheme_longjmpup(arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_reset_jmpup_buf) {
    {
        Scheme_Jumpup_Buf *arg1 = (Scheme_Jumpup_Buf *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_reset_jmpup_buf(b);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Jumpup_Buf,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_reset_jmpup_buf. Expected _p_Scheme_Jumpup_Buf");
            }
        }
        scheme_reset_jmpup_buf(arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_clear_escape) {
    {
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: scheme_clear_escape();");
        }
        scheme_clear_escape();
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_new_jmpupbuf_holder) {
    {
        Scheme_Jumpup_Buf_Holder *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: scheme_new_jmpupbuf_holder();");
        }
        result = (Scheme_Jumpup_Buf_Holder *)scheme_new_jmpupbuf_holder();
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Jumpup_Buf_Holder, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_config) {
    {
        Scheme_Config *arg1 = (Scheme_Config *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_make_config(base);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Config,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_make_config. Expected _p_Scheme_Config");
            }
        }
        result = (Scheme_Object *)scheme_make_config(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_branch_config) {
    {
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: scheme_branch_config();");
        }
        result = (Scheme_Object *)scheme_branch_config();
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_new_param) {
    {
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: scheme_new_param();");
        }
        result = (int)scheme_new_param();
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_param_config) {
    {
        char *arg1 = (char *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        int arg3 ;
        Scheme_Object **arg4 = (Scheme_Object **) 0 ;
        int arg5 ;
        Scheme_Prim *arg6 = (Scheme_Prim *) 0 ;
        char *arg7 = (char *) 0 ;
        int arg8 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 8) || (items > 8)) {
            SWIG_croak("Usage: scheme_param_config(name,pos,argc,argv,arity,check,expected,isbool);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_param_config. Expected _p_Scheme_Object");
            }
        }
        arg3 = (int) SvIV(ST(2));
        {
            arg4 = _mzscheme_from_perl_arrayref_to_objects(ST(3));
        }
        arg5 = (int) SvIV(ST(4));
        {
            if (SWIG_ConvertPtr(ST(5), (void **) &arg6, SWIGTYPE_p_f_int_a___p_struct_Scheme_Object__p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 6 of scheme_param_config. Expected _p_f_int_a___p_struct_Scheme_Object__p_Scheme_Object");
            }
        }
        if (!SvOK((SV*) ST(6))) arg7 = 0;
        else arg7 = (char *) SvPV(ST(6), PL_na);
        arg8 = (int) SvIV(ST(7));
        result = (Scheme_Object *)scheme_param_config(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        {
            free(arg4);
        }
        XSRETURN(argvi);
        fail:
        {
            free(arg4);
        }
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_register_parameter) {
    {
        Scheme_Prim *arg1 = (Scheme_Prim *) 0 ;
        char *arg2 = (char *) 0 ;
        int arg3 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: scheme_register_parameter(function,name,which);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_f_int_a___p_struct_Scheme_Object__p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_register_parameter. Expected _p_f_int_a___p_struct_Scheme_Object__p_Scheme_Object");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        arg3 = (int) SvIV(ST(2));
        result = (Scheme_Object *)scheme_register_parameter(arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_get_env) {
    {
        Scheme_Config *arg1 = (Scheme_Config *) 0 ;
        Scheme_Env *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_get_env(config);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Config,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_get_env. Expected _p_Scheme_Config");
            }
        }
        result = (Scheme_Env *)scheme_get_env(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Env, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_out_of_fuel) {
    {
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: scheme_out_of_fuel();");
        }
        scheme_out_of_fuel();
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_thread) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Config *arg2 = (Scheme_Config *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_thread(thunk,config);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_thread. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Config,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_thread. Expected _p_Scheme_Config");
            }
        }
        result = (Scheme_Object *)scheme_thread(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_thread_w_custodian) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Config *arg2 = (Scheme_Config *) 0 ;
        Scheme_Custodian *arg3 = (Scheme_Custodian *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: scheme_thread_w_custodian(thunk,config,mgr);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_thread_w_custodian. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Config,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_thread_w_custodian. Expected _p_Scheme_Config");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_Scheme_Custodian,0) < 0) {
                SWIG_croak("Type error in argument 3 of scheme_thread_w_custodian. Expected _p_Scheme_Custodian");
            }
        }
        result = (Scheme_Object *)scheme_thread_w_custodian(arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_thread_w_custodian_killkind) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Config *arg2 = (Scheme_Config *) 0 ;
        Scheme_Custodian *arg3 = (Scheme_Custodian *) 0 ;
        int arg4 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: scheme_thread_w_custodian_killkind(thunk,config,mgr,normal_kill);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_thread_w_custodian_killkind. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Config,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_thread_w_custodian_killkind. Expected _p_Scheme_Config");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_Scheme_Custodian,0) < 0) {
                SWIG_croak("Type error in argument 3 of scheme_thread_w_custodian_killkind. Expected _p_Scheme_Custodian");
            }
        }
        arg4 = (int) SvIV(ST(3));
        result = (Scheme_Object *)scheme_thread_w_custodian_killkind(arg1,arg2,arg3,arg4);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_kill_thread) {
    {
        Scheme_Thread *arg1 = (Scheme_Thread *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_kill_thread(p);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Thread,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_kill_thread. Expected _p_Scheme_Thread");
            }
        }
        scheme_kill_thread(arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_break_thread) {
    {
        Scheme_Thread *arg1 = (Scheme_Thread *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_break_thread(p);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Thread,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_break_thread. Expected _p_Scheme_Thread");
            }
        }
        scheme_break_thread(arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_thread_block) {
    {
        float arg1 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_thread_block(sleep_time);");
        }
        arg1 = (float) SvNV(ST(0));
        
        scheme_thread_block(arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_swap_thread) {
    {
        Scheme_Thread *arg1 = (Scheme_Thread *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_swap_thread(process);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Thread,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_swap_thread. Expected _p_Scheme_Thread");
            }
        }
        scheme_swap_thread(arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_making_progress) {
    {
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: scheme_making_progress();");
        }
        scheme_making_progress();
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_weak_suspend_thread) {
    {
        Scheme_Thread *arg1 = (Scheme_Thread *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_weak_suspend_thread(p);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Thread,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_weak_suspend_thread. Expected _p_Scheme_Thread");
            }
        }
        scheme_weak_suspend_thread(arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_weak_resume_thread) {
    {
        Scheme_Thread *arg1 = (Scheme_Thread *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_weak_resume_thread(p);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Thread,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_weak_resume_thread. Expected _p_Scheme_Thread");
            }
        }
        scheme_weak_resume_thread(arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_block_until) {
    {
        Scheme_Ready_Fun arg1 = (Scheme_Ready_Fun) 0 ;
        Scheme_Needs_Wakeup_Fun arg2 = (Scheme_Needs_Wakeup_Fun) 0 ;
        Scheme_Object *arg3 = (Scheme_Object *) 0 ;
        float arg4 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: scheme_block_until(f,Scheme_Needs_Wakeup_Fun,Scheme_Object *,float);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_f_p_struct_Scheme_Object__int,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_block_until. Expected _p_f_p_struct_Scheme_Object__int");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_f_p_struct_Scheme_Object_p_void__void,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_block_until. Expected _p_f_p_struct_Scheme_Object_p_void__void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 3 of scheme_block_until. Expected _p_Scheme_Object");
            }
        }
        arg4 = (float) SvNV(ST(3));
        
        result = (int)scheme_block_until(arg1,arg2,arg3,arg4);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_in_main_thread) {
    {
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: scheme_in_main_thread();");
        }
        result = (int)scheme_in_main_thread();
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_cancel_sleep) {
    {
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: scheme_cancel_sleep();");
        }
        scheme_cancel_sleep();
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_tls_allocate) {
    {
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: scheme_tls_allocate();");
        }
        result = (int)scheme_tls_allocate();
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_tls_set) {
    {
        int arg1 ;
        void *arg2 = (void *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_tls_set(pos,v);");
        }
        arg1 = (int) SvIV(ST(0));
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_tls_set. Expected _p_void");
            }
        }
        scheme_tls_set(arg1,arg2);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_tls_get) {
    {
        int arg1 ;
        void *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_tls_get(pos);");
        }
        arg1 = (int) SvIV(ST(0));
        result = (void *)scheme_tls_get(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_void, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_custodian) {
    {
        Scheme_Custodian *arg1 = (Scheme_Custodian *) 0 ;
        Scheme_Custodian *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_make_custodian(Scheme_Custodian *);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Custodian,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_make_custodian. Expected _p_Scheme_Custodian");
            }
        }
        result = (Scheme_Custodian *)scheme_make_custodian(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Custodian, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_add_managed) {
    {
        Scheme_Custodian *arg1 = (Scheme_Custodian *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        Scheme_Close_Custodian_Client *arg3 = (Scheme_Close_Custodian_Client *) 0 ;
        void *arg4 = (void *) 0 ;
        int arg5 ;
        Scheme_Custodian_Reference *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: scheme_add_managed(m,o,f,data,strong);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Custodian,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_add_managed. Expected _p_Scheme_Custodian");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_add_managed. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_f_p_struct_Scheme_Object_p_void__void,0) < 0) {
                SWIG_croak("Type error in argument 3 of scheme_add_managed. Expected _p_f_p_struct_Scheme_Object_p_void__void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(3), (void **) &arg4, 0,0) < 0) {
                SWIG_croak("Type error in argument 4 of scheme_add_managed. Expected _p_void");
            }
        }
        arg5 = (int) SvIV(ST(4));
        result = (Scheme_Custodian_Reference *)scheme_add_managed(arg1,arg2,arg3,arg4,arg5);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_p_Scheme_Custodian, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_custodian_check_available) {
    {
        Scheme_Custodian *arg1 = (Scheme_Custodian *) 0 ;
        char *arg2 = (char *) 0 ;
        char *arg3 = (char *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: scheme_custodian_check_available(m,who,what);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Custodian,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_custodian_check_available. Expected _p_Scheme_Custodian");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        if (!SvOK((SV*) ST(2))) arg3 = 0;
        else arg3 = (char *) SvPV(ST(2), PL_na);
        scheme_custodian_check_available(arg1,(char const *)arg2,(char const *)arg3);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_remove_managed) {
    {
        Scheme_Custodian_Reference *arg1 = (Scheme_Custodian_Reference *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_remove_managed(m,o);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_p_Scheme_Custodian,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_remove_managed. Expected _p_p_Scheme_Custodian");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_remove_managed. Expected _p_Scheme_Object");
            }
        }
        scheme_remove_managed(arg1,arg2);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_close_managed) {
    {
        Scheme_Custodian *arg1 = (Scheme_Custodian *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_close_managed(m);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Custodian,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_close_managed. Expected _p_Scheme_Custodian");
            }
        }
        scheme_close_managed(arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_schedule_custodian_close) {
    {
        Scheme_Custodian *arg1 = (Scheme_Custodian *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_schedule_custodian_close(c);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Custodian,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_schedule_custodian_close. Expected _p_Scheme_Custodian");
            }
        }
        scheme_schedule_custodian_close(arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_add_custodian_extractor) {
    {
        Scheme_Type arg1 ;
        Scheme_Custodian_Extractor arg2 = (Scheme_Custodian_Extractor) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_add_custodian_extractor(t,e);");
        }
        arg1 = (Scheme_Type) SvIV(ST(0));
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_f_p_Scheme_Object__p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_add_custodian_extractor. Expected _p_f_p_Scheme_Object__p_Scheme_Object");
            }
        }
        scheme_add_custodian_extractor(arg1,arg2);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_add_atexit_closer) {
    {
        Scheme_Exit_Closer_Func arg1 = (Scheme_Exit_Closer_Func) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_add_atexit_closer(f);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_f_p_struct_Scheme_Object_p_f_p_struct_Scheme_Object_p_void__void_p_void__void,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_add_atexit_closer. Expected _p_f_p_struct_Scheme_Object_p_f_p_struct_Scheme_Object_p_void__void_p_void__void");
            }
        }
        scheme_add_atexit_closer(arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_add_waitable) {
    {
        Scheme_Type arg1 ;
        Scheme_Ready_Fun arg2 = (Scheme_Ready_Fun) 0 ;
        Scheme_Needs_Wakeup_Fun arg3 = (Scheme_Needs_Wakeup_Fun) 0 ;
        Scheme_Wait_Filter_Fun arg4 = (Scheme_Wait_Filter_Fun) 0 ;
        int arg5 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: scheme_add_waitable(type,ready,wakeup,filter,can_redirect);");
        }
        arg1 = (Scheme_Type) SvIV(ST(0));
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_f_p_struct_Scheme_Object__int,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_add_waitable. Expected _p_f_p_struct_Scheme_Object__int");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_f_p_struct_Scheme_Object_p_void__void,0) < 0) {
                SWIG_croak("Type error in argument 3 of scheme_add_waitable. Expected _p_f_p_struct_Scheme_Object_p_void__void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(3), (void **) &arg4, SWIGTYPE_p_f_p_struct_Scheme_Object__int,0) < 0) {
                SWIG_croak("Type error in argument 4 of scheme_add_waitable. Expected _p_f_p_struct_Scheme_Object__int");
            }
        }
        arg5 = (int) SvIV(ST(4));
        scheme_add_waitable(arg1,arg2,arg3,arg4,arg5);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_add_waitable_through_sema) {
    {
        Scheme_Type arg1 ;
        Scheme_Wait_Sema_Fun arg2 = (Scheme_Wait_Sema_Fun) 0 ;
        Scheme_Wait_Filter_Fun arg3 = (Scheme_Wait_Filter_Fun) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: scheme_add_waitable_through_sema(type,sema,filter);");
        }
        arg1 = (Scheme_Type) SvIV(ST(0));
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_f_p_Scheme_Object_p_int__p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_add_waitable_through_sema. Expected _p_f_p_Scheme_Object_p_int__p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_f_p_struct_Scheme_Object__int,0) < 0) {
                SWIG_croak("Type error in argument 3 of scheme_add_waitable_through_sema. Expected _p_f_p_struct_Scheme_Object__int");
            }
        }
        scheme_add_waitable_through_sema(arg1,arg2,arg3);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_is_waitable) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_is_waitable(o);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_is_waitable. Expected _p_Scheme_Object");
            }
        }
        result = (int)scheme_is_waitable(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_object_wait_multiple) {
    {
        int arg1 ;
        Scheme_Object **arg2 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_object_wait_multiple(argc,argv);");
        }
        arg1 = (int) SvIV(ST(0));
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_object_wait_multiple. Expected _p_p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_object_wait_multiple(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_object_wait_multiple_enable_break) {
    {
        int arg1 ;
        Scheme_Object **arg2 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_object_wait_multiple_enable_break(argc,argv);");
        }
        arg1 = (int) SvIV(ST(0));
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_object_wait_multiple_enable_break. Expected _p_p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_object_wait_multiple_enable_break(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_waitable_set) {
    {
        int arg1 ;
        Scheme_Object **arg2 = (Scheme_Object **) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_make_waitable_set(argc,argv);");
        }
        arg1 = (int) SvIV(ST(0));
        {
            arg2 = _mzscheme_from_perl_arrayref_to_objects(ST(1));
        }
        result = (Scheme_Object *)scheme_make_waitable_set(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        {
            free(arg2);
        }
        XSRETURN(argvi);
        fail:
        {
            free(arg2);
        }
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_add_swap_callback) {
    {
        Scheme_Closure_Func arg1 = (Scheme_Closure_Func) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_add_swap_callback(f,data);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_f_p_struct_Scheme_Object__p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_add_swap_callback. Expected _p_f_p_struct_Scheme_Object__p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_add_swap_callback. Expected _p_Scheme_Object");
            }
        }
        scheme_add_swap_callback(arg1,arg2);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_call_enable_break) {
    {
        Scheme_Prim *arg1 = (Scheme_Prim *) 0 ;
        int arg2 ;
        Scheme_Object **arg3 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: scheme_call_enable_break(prim,argc,argv);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_f_int_a___p_struct_Scheme_Object__p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_call_enable_break. Expected _p_f_int_a___p_struct_Scheme_Object__p_Scheme_Object");
            }
        }
        arg2 = (int) SvIV(ST(1));
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 3 of scheme_call_enable_break. Expected _p_p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_call_enable_break(arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_close_should_force_port_closed) {
    {
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: scheme_close_should_force_port_closed();");
        }
        result = (int)scheme_close_should_force_port_closed();
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_push_kill_action) {
    {
        Scheme_Kill_Action_Func arg1 = (Scheme_Kill_Action_Func) 0 ;
        void *arg2 = (void *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_push_kill_action(f,d);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_f_p_void__void,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_push_kill_action. Expected _p_f_p_void__void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_push_kill_action. Expected _p_void");
            }
        }
        scheme_push_kill_action(arg1,arg2);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_pop_kill_action) {
    {
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: scheme_pop_kill_action();");
        }
        scheme_pop_kill_action();
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_signal_error) {
    {
        char *arg1 = (char *) 0 ;
        void *arg2 = 0 ;
        int argvi = 0;
        dXSARGS;
        
        if (items < 1) {
            SWIG_croak("Usage: scheme_signal_error(msg,...);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        scheme_signal_error((char const *)arg1,arg2);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_raise_exn) {
    {
        int arg1 ;
        void *arg2 = 0 ;
        int argvi = 0;
        dXSARGS;
        
        if (items < 1) {
            SWIG_croak("Usage: scheme_raise_exn(exnid,...);");
        }
        arg1 = (int) SvIV(ST(0));
        scheme_raise_exn(arg1,arg2);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_warning) {
    {
        char *arg1 = (char *) 0 ;
        void *arg2 = 0 ;
        int argvi = 0;
        dXSARGS;
        
        if (items < 1) {
            SWIG_croak("Usage: scheme_warning(msg,...);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        scheme_warning(arg1,arg2);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_raise) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_raise(exn);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_raise. Expected _p_Scheme_Object");
            }
        }
        scheme_raise(arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_wrong_count) {
    {
        char *arg1 = (char *) 0 ;
        int arg2 ;
        int arg3 ;
        int arg4 ;
        Scheme_Object **arg5 = (Scheme_Object **) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: scheme_wrong_count(name,minc,maxc,argc,argv);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        arg2 = (int) SvIV(ST(1));
        arg3 = (int) SvIV(ST(2));
        arg4 = (int) SvIV(ST(3));
        {
            arg5 = _mzscheme_from_perl_arrayref_to_objects(ST(4));
        }
        scheme_wrong_count((char const *)arg1,arg2,arg3,arg4,arg5);
        
        
        {
            free(arg5);
        }
        XSRETURN(argvi);
        fail:
        {
            free(arg5);
        }
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_wrong_count_m) {
    {
        char *arg1 = (char *) 0 ;
        int arg2 ;
        int arg3 ;
        int arg4 ;
        Scheme_Object **arg5 = (Scheme_Object **) 0 ;
        int arg6 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 6) || (items > 6)) {
            SWIG_croak("Usage: scheme_wrong_count_m(name,minc,maxc,argc,argv,is_method);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        arg2 = (int) SvIV(ST(1));
        arg3 = (int) SvIV(ST(2));
        arg4 = (int) SvIV(ST(3));
        {
            arg5 = _mzscheme_from_perl_arrayref_to_objects(ST(4));
        }
        arg6 = (int) SvIV(ST(5));
        scheme_wrong_count_m((char const *)arg1,arg2,arg3,arg4,arg5,arg6);
        
        
        {
            free(arg5);
        }
        XSRETURN(argvi);
        fail:
        {
            free(arg5);
        }
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_case_lambda_wrong_count) {
    {
        char *arg1 = (char *) 0 ;
        int arg2 ;
        Scheme_Object **arg3 = (Scheme_Object **) 0 ;
        int arg4 ;
        int arg5 ;
        void *arg6 = 0 ;
        int argvi = 0;
        dXSARGS;
        
        if (items < 5) {
            SWIG_croak("Usage: scheme_case_lambda_wrong_count(name,argc,argv,is_method,count,...);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        arg2 = (int) SvIV(ST(1));
        {
            arg3 = _mzscheme_from_perl_arrayref_to_objects(ST(2));
        }
        arg4 = (int) SvIV(ST(3));
        arg5 = (int) SvIV(ST(4));
        scheme_case_lambda_wrong_count((char const *)arg1,arg2,arg3,arg4,arg5,arg6);
        
        
        {
            free(arg3);
        }
        XSRETURN(argvi);
        fail:
        {
            free(arg3);
        }
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_wrong_type) {
    {
        char *arg1 = (char *) 0 ;
        char *arg2 = (char *) 0 ;
        int arg3 ;
        int arg4 ;
        Scheme_Object **arg5 = (Scheme_Object **) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: scheme_wrong_type(name,expected,which,argc,argv);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        arg3 = (int) SvIV(ST(2));
        arg4 = (int) SvIV(ST(3));
        {
            arg5 = _mzscheme_from_perl_arrayref_to_objects(ST(4));
        }
        scheme_wrong_type((char const *)arg1,(char const *)arg2,arg3,arg4,arg5);
        
        
        {
            free(arg5);
        }
        XSRETURN(argvi);
        fail:
        {
            free(arg5);
        }
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_arg_mismatch) {
    {
        char *arg1 = (char *) 0 ;
        char *arg2 = (char *) 0 ;
        Scheme_Object *arg3 = (Scheme_Object *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: scheme_arg_mismatch(name,msg,o);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 3 of scheme_arg_mismatch. Expected _p_Scheme_Object");
            }
        }
        scheme_arg_mismatch((char const *)arg1,(char const *)arg2,arg3);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_wrong_return_arity) {
    {
        char *arg1 = (char *) 0 ;
        int arg2 ;
        int arg3 ;
        Scheme_Object **arg4 = (Scheme_Object **) 0 ;
        char *arg5 = (char *) 0 ;
        void *arg6 = 0 ;
        int argvi = 0;
        dXSARGS;
        
        if (items < 5) {
            SWIG_croak("Usage: scheme_wrong_return_arity(where,expected,got,argv,context_detail,...);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        arg2 = (int) SvIV(ST(1));
        arg3 = (int) SvIV(ST(2));
        {
            arg4 = _mzscheme_from_perl_arrayref_to_objects(ST(3));
        }
        if (!SvOK((SV*) ST(4))) arg5 = 0;
        else arg5 = (char *) SvPV(ST(4), PL_na);
        scheme_wrong_return_arity((char const *)arg1,arg2,arg3,arg4,(char const *)arg5,arg6);
        
        
        {
            free(arg4);
        }
        XSRETURN(argvi);
        fail:
        {
            free(arg4);
        }
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_unbound_global) {
    {
        Scheme_Bucket *arg1 = (Scheme_Bucket *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_unbound_global(b);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Bucket,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_unbound_global. Expected _p_Scheme_Bucket");
            }
        }
        scheme_unbound_global(arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_dynamic_wind__SWIG_0) {
    {
        void (*arg1)(void *) = (void (*)(void *)) 0 ;
        Scheme_Object *(*arg2)(void *) = (Scheme_Object *(*)(void *)) (Scheme_Object *(*)(void *))0 ;
        void (*arg3)(void *) = (void (*)(void *)) (void (*)(void *))0 ;
        Scheme_Object *(*arg4)(void *) = (Scheme_Object *(*)(void *)) 0 ;
        void *arg5 = (void *) (void *)0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: scheme_dynamic_wind(pre,act,post,jmp_handler,data);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_f_p_void__void,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_dynamic_wind. Expected _p_f_p_void__void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_f_p_void__p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_dynamic_wind. Expected _p_f_p_void__p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_f_p_void__void,0) < 0) {
                SWIG_croak("Type error in argument 3 of scheme_dynamic_wind. Expected _p_f_p_void__void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(3), (void **) &arg4, SWIGTYPE_p_f_p_void__p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 4 of scheme_dynamic_wind. Expected _p_f_p_void__p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(4), (void **) &arg5, 0,0) < 0) {
                SWIG_croak("Type error in argument 5 of scheme_dynamic_wind. Expected _p_void");
            }
        }
        result = (Scheme_Object *)scheme_dynamic_wind(arg1,(Scheme_Object *(*volatile )(void *))arg2,(void (*volatile )(void *))arg3,arg4,(void *volatile )arg5);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_type) {
    {
        char *arg1 = (char *) 0 ;
        Scheme_Type result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_make_type(name);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        result = (Scheme_Type)scheme_make_type((char const *)arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_get_type_name) {
    {
        Scheme_Type arg1 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_get_type_name(type);");
        }
        arg1 = (Scheme_Type) SvIV(ST(0));
        result = (char *)scheme_get_type_name(arg1);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_eof) {
    {
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: scheme_make_eof();");
        }
        result = (Scheme_Object *)scheme_make_eof();
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_null) {
    {
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: scheme_make_null();");
        }
        result = (Scheme_Object *)scheme_make_null();
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_true) {
    {
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: scheme_make_true();");
        }
        result = (Scheme_Object *)scheme_make_true();
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_false) {
    {
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: scheme_make_false();");
        }
        result = (Scheme_Object *)scheme_make_false();
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_void) {
    {
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: scheme_make_void();");
        }
        result = (Scheme_Object *)scheme_make_void();
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_eval) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Env *arg2 = (Scheme_Env *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_eval(obj,env);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_eval. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Env,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_eval. Expected _p_Scheme_Env");
            }
        }
        result = (Scheme_Object *)scheme_eval(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_eval_multi) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Env *arg2 = (Scheme_Env *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_eval_multi(obj,env);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_eval_multi. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Env,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_eval_multi. Expected _p_Scheme_Env");
            }
        }
        result = (Scheme_Object *)scheme_eval_multi(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_eval_compiled) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Env *arg2 = (Scheme_Env *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_eval_compiled(obj,env);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_eval_compiled. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Env,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_eval_compiled. Expected _p_Scheme_Env");
            }
        }
        result = (Scheme_Object *)scheme_eval_compiled(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_eval_compiled_multi) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Env *arg2 = (Scheme_Env *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_eval_compiled_multi(obj,env);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_eval_compiled_multi. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Env,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_eval_compiled_multi. Expected _p_Scheme_Env");
            }
        }
        result = (Scheme_Object *)scheme_eval_compiled_multi(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap__scheme_eval_compiled) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Env *arg2 = (Scheme_Env *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: _scheme_eval_compiled(obj,env);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of _scheme_eval_compiled. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Env,0) < 0) {
                SWIG_croak("Type error in argument 2 of _scheme_eval_compiled. Expected _p_Scheme_Env");
            }
        }
        result = (Scheme_Object *)_scheme_eval_compiled(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap__scheme_eval_compiled_multi) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Env *arg2 = (Scheme_Env *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: _scheme_eval_compiled_multi(obj,env);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of _scheme_eval_compiled_multi. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Env,0) < 0) {
                SWIG_croak("Type error in argument 2 of _scheme_eval_compiled_multi. Expected _p_Scheme_Env");
            }
        }
        result = (Scheme_Object *)_scheme_eval_compiled_multi(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_apply) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int arg2 ;
        Scheme_Object **arg3 = (Scheme_Object **) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: scheme_apply(rator,num_rands,rands);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_apply. Expected _p_Scheme_Object");
            }
        }
        arg2 = (int) SvIV(ST(1));
        {
            arg3 = _mzscheme_from_perl_arrayref_to_objects(ST(2));
        }
        result = (Scheme_Object *)scheme_apply(arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        {
            free(arg3);
        }
        XSRETURN(argvi);
        fail:
        {
            free(arg3);
        }
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_apply_multi) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int arg2 ;
        Scheme_Object **arg3 = (Scheme_Object **) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: scheme_apply_multi(rator,num_rands,rands);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_apply_multi. Expected _p_Scheme_Object");
            }
        }
        arg2 = (int) SvIV(ST(1));
        {
            arg3 = _mzscheme_from_perl_arrayref_to_objects(ST(2));
        }
        result = (Scheme_Object *)scheme_apply_multi(arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        {
            free(arg3);
        }
        XSRETURN(argvi);
        fail:
        {
            free(arg3);
        }
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_apply_eb) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int arg2 ;
        Scheme_Object **arg3 = (Scheme_Object **) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: scheme_apply_eb(rator,num_rands,rands);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_apply_eb. Expected _p_Scheme_Object");
            }
        }
        arg2 = (int) SvIV(ST(1));
        {
            arg3 = _mzscheme_from_perl_arrayref_to_objects(ST(2));
        }
        result = (Scheme_Object *)scheme_apply_eb(arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        {
            free(arg3);
        }
        XSRETURN(argvi);
        fail:
        {
            free(arg3);
        }
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_apply_multi_eb) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int arg2 ;
        Scheme_Object **arg3 = (Scheme_Object **) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: scheme_apply_multi_eb(rator,num_rands,rands);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_apply_multi_eb. Expected _p_Scheme_Object");
            }
        }
        arg2 = (int) SvIV(ST(1));
        {
            arg3 = _mzscheme_from_perl_arrayref_to_objects(ST(2));
        }
        result = (Scheme_Object *)scheme_apply_multi_eb(arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        {
            free(arg3);
        }
        XSRETURN(argvi);
        fail:
        {
            free(arg3);
        }
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_apply_to_list) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_apply_to_list(rator,argss);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_apply_to_list. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_apply_to_list. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_apply_to_list(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_eval_string) {
    {
        char *arg1 = (char *) 0 ;
        Scheme_Env *arg2 = (Scheme_Env *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_eval_string(str,env);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Env,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_eval_string. Expected _p_Scheme_Env");
            }
        }
        result = (Scheme_Object *)scheme_eval_string((char const *)arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_eval_string_multi) {
    {
        char *arg1 = (char *) 0 ;
        Scheme_Env *arg2 = (Scheme_Env *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_eval_string_multi(str,env);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Env,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_eval_string_multi. Expected _p_Scheme_Env");
            }
        }
        result = (Scheme_Object *)scheme_eval_string_multi((char const *)arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_eval_string_all) {
    {
        char *arg1 = (char *) 0 ;
        Scheme_Env *arg2 = (Scheme_Env *) 0 ;
        int arg3 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: scheme_eval_string_all(str,env,all);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Env,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_eval_string_all. Expected _p_Scheme_Env");
            }
        }
        arg3 = (int) SvIV(ST(2));
        result = (Scheme_Object *)scheme_eval_string_all((char const *)arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap__scheme_apply_known_closed_prim) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int arg2 ;
        Scheme_Object **arg3 = (Scheme_Object **) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: _scheme_apply_known_closed_prim(rator,argc,argv);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of _scheme_apply_known_closed_prim. Expected _p_Scheme_Object");
            }
        }
        arg2 = (int) SvIV(ST(1));
        {
            arg3 = _mzscheme_from_perl_arrayref_to_objects(ST(2));
        }
        result = (Scheme_Object *)_scheme_apply_known_closed_prim(arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        {
            free(arg3);
        }
        XSRETURN(argvi);
        fail:
        {
            free(arg3);
        }
        ;
    }
    croak(Nullch);
}


XS(_wrap__scheme_apply_known_closed_prim_multi) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int arg2 ;
        Scheme_Object **arg3 = (Scheme_Object **) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: _scheme_apply_known_closed_prim_multi(rator,argc,argv);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of _scheme_apply_known_closed_prim_multi. Expected _p_Scheme_Object");
            }
        }
        arg2 = (int) SvIV(ST(1));
        {
            arg3 = _mzscheme_from_perl_arrayref_to_objects(ST(2));
        }
        result = (Scheme_Object *)_scheme_apply_known_closed_prim_multi(arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        {
            free(arg3);
        }
        XSRETURN(argvi);
        fail:
        {
            free(arg3);
        }
        ;
    }
    croak(Nullch);
}


XS(_wrap__scheme_apply_closed_prim) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int arg2 ;
        Scheme_Object **arg3 = (Scheme_Object **) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: _scheme_apply_closed_prim(rator,argc,argv);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of _scheme_apply_closed_prim. Expected _p_Scheme_Object");
            }
        }
        arg2 = (int) SvIV(ST(1));
        {
            arg3 = _mzscheme_from_perl_arrayref_to_objects(ST(2));
        }
        result = (Scheme_Object *)_scheme_apply_closed_prim(arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        {
            free(arg3);
        }
        XSRETURN(argvi);
        fail:
        {
            free(arg3);
        }
        ;
    }
    croak(Nullch);
}


XS(_wrap__scheme_apply_closed_prim_multi) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int arg2 ;
        Scheme_Object **arg3 = (Scheme_Object **) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: _scheme_apply_closed_prim_multi(rator,argc,argv);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of _scheme_apply_closed_prim_multi. Expected _p_Scheme_Object");
            }
        }
        arg2 = (int) SvIV(ST(1));
        {
            arg3 = _mzscheme_from_perl_arrayref_to_objects(ST(2));
        }
        result = (Scheme_Object *)_scheme_apply_closed_prim_multi(arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        {
            free(arg3);
        }
        XSRETURN(argvi);
        fail:
        {
            free(arg3);
        }
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_values) {
    {
        int arg1 ;
        Scheme_Object **arg2 = (Scheme_Object **) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_values(c,v);");
        }
        arg1 = (int) SvIV(ST(0));
        {
            arg2 = _mzscheme_from_perl_arrayref_to_objects(ST(1));
        }
        result = (Scheme_Object *)scheme_values(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        {
            free(arg2);
        }
        XSRETURN(argvi);
        fail:
        {
            free(arg2);
        }
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_check_one_value) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_check_one_value(v);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_check_one_value. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_check_one_value(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_tail_apply) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int arg2 ;
        Scheme_Object **arg3 = (Scheme_Object **) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: scheme_tail_apply(f,n,arg);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_tail_apply. Expected _p_Scheme_Object");
            }
        }
        arg2 = (int) SvIV(ST(1));
        {
            arg3 = _mzscheme_from_perl_arrayref_to_objects(ST(2));
        }
        result = (Scheme_Object *)scheme_tail_apply(arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        {
            free(arg3);
        }
        XSRETURN(argvi);
        fail:
        {
            free(arg3);
        }
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_tail_apply_no_copy) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int arg2 ;
        Scheme_Object **arg3 = (Scheme_Object **) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: scheme_tail_apply_no_copy(f,n,arg);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_tail_apply_no_copy. Expected _p_Scheme_Object");
            }
        }
        arg2 = (int) SvIV(ST(1));
        {
            arg3 = _mzscheme_from_perl_arrayref_to_objects(ST(2));
        }
        result = (Scheme_Object *)scheme_tail_apply_no_copy(arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        {
            free(arg3);
        }
        XSRETURN(argvi);
        fail:
        {
            free(arg3);
        }
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_tail_apply_to_list) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_tail_apply_to_list(f,l);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_tail_apply_to_list. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_tail_apply_to_list. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_tail_apply_to_list(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_tail_eval_expr) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_tail_eval_expr(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_tail_eval_expr. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_tail_eval_expr(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_set_tail_buffer_size) {
    {
        int arg1 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_set_tail_buffer_size(s);");
        }
        arg1 = (int) SvIV(ST(0));
        scheme_set_tail_buffer_size(arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_force_value) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_force_value(Scheme_Object *);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_force_value. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_force_value(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_set_cont_mark) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_set_cont_mark(key,val);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_set_cont_mark. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_set_cont_mark. Expected _p_Scheme_Object");
            }
        }
        scheme_set_cont_mark(arg1,arg2);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_push_continuation_frame) {
    {
        Scheme_Cont_Frame_Data *arg1 = (Scheme_Cont_Frame_Data *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_push_continuation_frame(Scheme_Cont_Frame_Data *);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Cont_Frame_Data,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_push_continuation_frame. Expected _p_Scheme_Cont_Frame_Data");
            }
        }
        scheme_push_continuation_frame(arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_pop_continuation_frame) {
    {
        Scheme_Cont_Frame_Data *arg1 = (Scheme_Cont_Frame_Data *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_pop_continuation_frame(Scheme_Cont_Frame_Data *);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Cont_Frame_Data,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_pop_continuation_frame. Expected _p_Scheme_Cont_Frame_Data");
            }
        }
        scheme_pop_continuation_frame(arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_temp_dec_mark_depth) {
    {
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: scheme_temp_dec_mark_depth();");
        }
        scheme_temp_dec_mark_depth();
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_temp_inc_mark_depth) {
    {
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: scheme_temp_inc_mark_depth();");
        }
        scheme_temp_inc_mark_depth();
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_current_continuation_marks) {
    {
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: scheme_current_continuation_marks();");
        }
        result = (Scheme_Object *)scheme_current_continuation_marks();
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_do_eval) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int arg2 ;
        Scheme_Object **arg3 = (Scheme_Object **) 0 ;
        int arg4 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: scheme_do_eval(obj,_num_rands,rands,val);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_do_eval. Expected _p_Scheme_Object");
            }
        }
        arg2 = (int) SvIV(ST(1));
        {
            arg3 = _mzscheme_from_perl_arrayref_to_objects(ST(2));
        }
        arg4 = (int) SvIV(ST(3));
        result = (Scheme_Object *)scheme_do_eval(arg1,arg2,arg3,arg4);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        {
            free(arg3);
        }
        XSRETURN(argvi);
        fail:
        {
            free(arg3);
        }
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_eval_compiled_stx_string) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Env *arg2 = (Scheme_Env *) 0 ;
        long arg3 ;
        Scheme_Object *arg4 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: scheme_eval_compiled_stx_string(expr,env,shift,modidx);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_eval_compiled_stx_string. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Env,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_eval_compiled_stx_string. Expected _p_Scheme_Env");
            }
        }
        arg3 = (long) SvIV(ST(2));
        {
            if (SWIG_ConvertPtr(ST(3), (void **) &arg4, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 4 of scheme_eval_compiled_stx_string. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_eval_compiled_stx_string(arg1,arg2,arg3,arg4);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_load_compiled_stx_string) {
    {
        char *arg1 = (char *) 0 ;
        long arg2 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_load_compiled_stx_string(str,len);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        arg2 = (long) SvIV(ST(1));
        result = (Scheme_Object *)scheme_load_compiled_stx_string((char const *)arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_compiled_stx_symbol) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_compiled_stx_symbol(stx);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_compiled_stx_symbol. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_compiled_stx_symbol(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_eval_compiled_sized_string) {
    {
        char *arg1 = (char *) 0 ;
        int arg2 ;
        Scheme_Env *arg3 = (Scheme_Env *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: scheme_eval_compiled_sized_string(str,len,env);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        arg2 = (int) SvIV(ST(1));
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_Scheme_Env,0) < 0) {
                SWIG_croak("Type error in argument 3 of scheme_eval_compiled_sized_string. Expected _p_Scheme_Env");
            }
        }
        result = (Scheme_Object *)scheme_eval_compiled_sized_string((char const *)arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_GC_malloc) {
    {
        size_t arg1 ;
        void *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: GC_malloc(size_in_bytes);");
        }
        arg1 = (size_t) SvUV(ST(0));
        result = (void *)GC_malloc(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_void, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_GC_malloc_atomic) {
    {
        size_t arg1 ;
        void *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: GC_malloc_atomic(size_in_bytes);");
        }
        arg1 = (size_t) SvUV(ST(0));
        result = (void *)GC_malloc_atomic(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_void, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_GC_malloc_stubborn) {
    {
        size_t arg1 ;
        void *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: GC_malloc_stubborn(size_in_bytes);");
        }
        arg1 = (size_t) SvUV(ST(0));
        result = (void *)GC_malloc_stubborn(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_void, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_GC_malloc_uncollectable) {
    {
        size_t arg1 ;
        void *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: GC_malloc_uncollectable(size_in_bytes);");
        }
        arg1 = (size_t) SvUV(ST(0));
        result = (void *)GC_malloc_uncollectable(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_void, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_malloc_eternal) {
    {
        size_t arg1 ;
        void *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_malloc_eternal(n);");
        }
        arg1 = (size_t) SvUV(ST(0));
        result = (void *)scheme_malloc_eternal(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_void, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_end_stubborn_change) {
    {
        void *arg1 = (void *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_end_stubborn_change(p);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_end_stubborn_change. Expected _p_void");
            }
        }
        scheme_end_stubborn_change(arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_calloc) {
    {
        size_t arg1 ;
        size_t arg2 ;
        void *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_calloc(num,size);");
        }
        arg1 = (size_t) SvUV(ST(0));
        arg2 = (size_t) SvUV(ST(1));
        result = (void *)scheme_calloc(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_void, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_strdup) {
    {
        char *arg1 = (char *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_strdup(str);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        result = (char *)scheme_strdup((char const *)arg1);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_strdup_eternal) {
    {
        char *arg1 = (char *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_strdup_eternal(str);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        result = (char *)scheme_strdup_eternal((char const *)arg1);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_malloc_fail_ok) {
    {
        void *(*arg1)(size_t) = (void *(*)(size_t)) 0 ;
        size_t arg2 ;
        void *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_malloc_fail_ok(f,size_t);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_f_size_t__p_void,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_malloc_fail_ok. Expected _p_f_size_t__p_void");
            }
        }
        arg2 = (size_t) SvUV(ST(1));
        result = (void *)scheme_malloc_fail_ok(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_void, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_weak_reference) {
    {
        void **arg1 = (void **) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_weak_reference(p);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_weak_reference. Expected _p_p_void");
            }
        }
        scheme_weak_reference(arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_weak_reference_indirect) {
    {
        void **arg1 = (void **) 0 ;
        void *arg2 = (void *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_weak_reference_indirect(p,v);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_weak_reference_indirect. Expected _p_p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_weak_reference_indirect. Expected _p_void");
            }
        }
        scheme_weak_reference_indirect(arg1,arg2);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_unweak_reference) {
    {
        void **arg1 = (void **) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_unweak_reference(p);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_unweak_reference. Expected _p_p_void");
            }
        }
        scheme_unweak_reference(arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_add_finalizer) {
    {
        void *arg1 = (void *) 0 ;
        void (*arg2)(void *,void *) = (void (*)(void *,void *)) 0 ;
        void *arg3 = (void *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: scheme_add_finalizer(p,f,data);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_add_finalizer. Expected _p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_f_p_void_p_void__void,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_add_finalizer. Expected _p_f_p_void_p_void__void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, 0,0) < 0) {
                SWIG_croak("Type error in argument 3 of scheme_add_finalizer. Expected _p_void");
            }
        }
        scheme_add_finalizer(arg1,arg2,arg3);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_add_finalizer_once) {
    {
        void *arg1 = (void *) 0 ;
        void (*arg2)(void *,void *) = (void (*)(void *,void *)) 0 ;
        void *arg3 = (void *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: scheme_add_finalizer_once(p,f,data);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_add_finalizer_once. Expected _p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_f_p_void_p_void__void,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_add_finalizer_once. Expected _p_f_p_void_p_void__void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, 0,0) < 0) {
                SWIG_croak("Type error in argument 3 of scheme_add_finalizer_once. Expected _p_void");
            }
        }
        scheme_add_finalizer_once(arg1,arg2,arg3);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_add_scheme_finalizer) {
    {
        void *arg1 = (void *) 0 ;
        void (*arg2)(void *,void *) = (void (*)(void *,void *)) 0 ;
        void *arg3 = (void *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: scheme_add_scheme_finalizer(p,f,data);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_add_scheme_finalizer. Expected _p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_f_p_void_p_void__void,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_add_scheme_finalizer. Expected _p_f_p_void_p_void__void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, 0,0) < 0) {
                SWIG_croak("Type error in argument 3 of scheme_add_scheme_finalizer. Expected _p_void");
            }
        }
        scheme_add_scheme_finalizer(arg1,arg2,arg3);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_add_scheme_finalizer_once) {
    {
        void *arg1 = (void *) 0 ;
        void (*arg2)(void *,void *) = (void (*)(void *,void *)) 0 ;
        void *arg3 = (void *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: scheme_add_scheme_finalizer_once(p,f,data);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_add_scheme_finalizer_once. Expected _p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_f_p_void_p_void__void,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_add_scheme_finalizer_once. Expected _p_f_p_void_p_void__void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, 0,0) < 0) {
                SWIG_croak("Type error in argument 3 of scheme_add_scheme_finalizer_once. Expected _p_void");
            }
        }
        scheme_add_scheme_finalizer_once(arg1,arg2,arg3);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_register_finalizer__SWIG_0) {
    {
        void *arg1 = (void *) 0 ;
        void (*arg2)(void *,void *) = (void (*)(void *,void *)) 0 ;
        void *arg3 = (void *) 0 ;
        void (**arg4)(void *,void *) = (void (**)(void *,void *)) 0 ;
        void **arg5 = (void **) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: scheme_register_finalizer(p,f,data,oldf,olddata);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_register_finalizer. Expected _p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_f_p_void_p_void__void,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_register_finalizer. Expected _p_f_p_void_p_void__void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, 0,0) < 0) {
                SWIG_croak("Type error in argument 3 of scheme_register_finalizer. Expected _p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(3), (void **) &arg4, SWIGTYPE_p_p_f_p_void_p_void__void,0) < 0) {
                SWIG_croak("Type error in argument 4 of scheme_register_finalizer. Expected _p_p_f_p_void_p_void__void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(4), (void **) &arg5, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 5 of scheme_register_finalizer. Expected _p_p_void");
            }
        }
        scheme_register_finalizer(arg1,arg2,arg3,arg4,arg5);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_remove_all_finalization) {
    {
        void *arg1 = (void *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_remove_all_finalization(p);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_remove_all_finalization. Expected _p_void");
            }
        }
        scheme_remove_all_finalization(arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_dont_gc_ptr) {
    {
        void *arg1 = (void *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_dont_gc_ptr(p);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_dont_gc_ptr. Expected _p_void");
            }
        }
        scheme_dont_gc_ptr(arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_gc_ptr_ok) {
    {
        void *arg1 = (void *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_gc_ptr_ok(p);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_gc_ptr_ok. Expected _p_void");
            }
        }
        scheme_gc_ptr_ok(arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_collect_garbage) {
    {
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: scheme_collect_garbage();");
        }
        scheme_collect_garbage();
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_bucket_table) {
    {
        int arg1 ;
        int arg2 ;
        Scheme_Bucket_Table *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_make_bucket_table(size_hint,type);");
        }
        arg1 = (int) SvIV(ST(0));
        arg2 = (int) SvIV(ST(1));
        result = (Scheme_Bucket_Table *)scheme_make_bucket_table(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Bucket_Table, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_add_to_table) {
    {
        Scheme_Bucket_Table *arg1 = (Scheme_Bucket_Table *) 0 ;
        char *arg2 = (char *) 0 ;
        void *arg3 = (void *) 0 ;
        int arg4 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: scheme_add_to_table(table,key,val,int);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Bucket_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_add_to_table. Expected _p_Scheme_Bucket_Table");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, 0,0) < 0) {
                SWIG_croak("Type error in argument 3 of scheme_add_to_table. Expected _p_void");
            }
        }
        arg4 = (int) SvIV(ST(3));
        scheme_add_to_table(arg1,(char const *)arg2,arg3,arg4);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_change_in_table) {
    {
        Scheme_Bucket_Table *arg1 = (Scheme_Bucket_Table *) 0 ;
        char *arg2 = (char *) 0 ;
        void *arg3 = (void *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: scheme_change_in_table(table,key,new_val);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Bucket_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_change_in_table. Expected _p_Scheme_Bucket_Table");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, 0,0) < 0) {
                SWIG_croak("Type error in argument 3 of scheme_change_in_table. Expected _p_void");
            }
        }
        scheme_change_in_table(arg1,(char const *)arg2,arg3);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_lookup_in_table) {
    {
        Scheme_Bucket_Table *arg1 = (Scheme_Bucket_Table *) 0 ;
        char *arg2 = (char *) 0 ;
        void *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_lookup_in_table(table,key);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Bucket_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_lookup_in_table. Expected _p_Scheme_Bucket_Table");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        result = (void *)scheme_lookup_in_table(arg1,(char const *)arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_void, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_bucket_from_table) {
    {
        Scheme_Bucket_Table *arg1 = (Scheme_Bucket_Table *) 0 ;
        char *arg2 = (char *) 0 ;
        Scheme_Bucket *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_bucket_from_table(table,key);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Bucket_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_bucket_from_table. Expected _p_Scheme_Bucket_Table");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        result = (Scheme_Bucket *)scheme_bucket_from_table(arg1,(char const *)arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Bucket, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_bucket_table_equal) {
    {
        Scheme_Bucket_Table *arg1 = (Scheme_Bucket_Table *) 0 ;
        Scheme_Bucket_Table *arg2 = (Scheme_Bucket_Table *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_bucket_table_equal(t1,t2);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Bucket_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_bucket_table_equal. Expected _p_Scheme_Bucket_Table");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Bucket_Table,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_bucket_table_equal. Expected _p_Scheme_Bucket_Table");
            }
        }
        result = (int)scheme_bucket_table_equal(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_hash_table) {
    {
        int arg1 ;
        Scheme_Hash_Table *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_make_hash_table(type);");
        }
        arg1 = (int) SvIV(ST(0));
        result = (Scheme_Hash_Table *)scheme_make_hash_table(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Hash_Table, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_hash_table_equal) {
    {
        Scheme_Hash_Table *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: scheme_make_hash_table_equal();");
        }
        result = (Scheme_Hash_Table *)scheme_make_hash_table_equal();
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Hash_Table, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_hash_set) {
    {
        Scheme_Hash_Table *arg1 = (Scheme_Hash_Table *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        Scheme_Object *arg3 = (Scheme_Object *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: scheme_hash_set(table,key,val);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Hash_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_hash_set. Expected _p_Scheme_Hash_Table");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_hash_set. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 3 of scheme_hash_set. Expected _p_Scheme_Object");
            }
        }
        scheme_hash_set(arg1,arg2,arg3);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_hash_get) {
    {
        Scheme_Hash_Table *arg1 = (Scheme_Hash_Table *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_hash_get(table,key);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Hash_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_hash_get. Expected _p_Scheme_Hash_Table");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_hash_get. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_hash_get(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_hash_table_equal) {
    {
        Scheme_Hash_Table *arg1 = (Scheme_Hash_Table *) 0 ;
        Scheme_Hash_Table *arg2 = (Scheme_Hash_Table *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_hash_table_equal(t1,t2);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Hash_Table,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_hash_table_equal. Expected _p_Scheme_Hash_Table");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Hash_Table,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_hash_table_equal. Expected _p_Scheme_Hash_Table");
            }
        }
        result = (int)scheme_hash_table_equal(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_is_hash_table_equal) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_is_hash_table_equal(o);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_is_hash_table_equal. Expected _p_Scheme_Object");
            }
        }
        result = (int)scheme_is_hash_table_equal(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_prim) {
    {
        Scheme_Prim *arg1 = (Scheme_Prim *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_make_prim(prim);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_f_int_a___p_struct_Scheme_Object__p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_make_prim. Expected _p_f_int_a___p_struct_Scheme_Object__p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_make_prim(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_noneternal_prim) {
    {
        Scheme_Prim *arg1 = (Scheme_Prim *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_make_noneternal_prim(prim);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_f_int_a___p_struct_Scheme_Object__p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_make_noneternal_prim. Expected _p_f_int_a___p_struct_Scheme_Object__p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_make_noneternal_prim(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_closed_prim) {
    {
        Scheme_Closed_Prim *arg1 = (Scheme_Closed_Prim *) 0 ;
        void *arg2 = (void *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_make_closed_prim(prim,data);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_f_p_void_int_a___p_struct_Scheme_Object__p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_make_closed_prim. Expected _p_f_p_void_int_a___p_struct_Scheme_Object__p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_make_closed_prim. Expected _p_void");
            }
        }
        result = (Scheme_Object *)scheme_make_closed_prim(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_prim_w_arity) {
    {
        Scheme_Prim *arg1 = (Scheme_Prim *) 0 ;
        char *arg2 = (char *) 0 ;
        mzshort arg3 ;
        mzshort arg4 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: scheme_make_prim_w_arity(prim,name,mina,maxa);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_f_int_a___p_struct_Scheme_Object__p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_make_prim_w_arity. Expected _p_f_int_a___p_struct_Scheme_Object__p_Scheme_Object");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        arg3 = (mzshort) SvIV(ST(2));
        arg4 = (mzshort) SvIV(ST(3));
        result = (Scheme_Object *)scheme_make_prim_w_arity(arg1,(char const *)arg2,arg3,arg4);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_folding_prim) {
    {
        Scheme_Prim *arg1 = (Scheme_Prim *) 0 ;
        char *arg2 = (char *) 0 ;
        mzshort arg3 ;
        mzshort arg4 ;
        short arg5 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: scheme_make_folding_prim(prim,name,mina,maxa,functional);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_f_int_a___p_struct_Scheme_Object__p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_make_folding_prim. Expected _p_f_int_a___p_struct_Scheme_Object__p_Scheme_Object");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        arg3 = (mzshort) SvIV(ST(2));
        arg4 = (mzshort) SvIV(ST(3));
        arg5 = (short) SvIV(ST(4));
        result = (Scheme_Object *)scheme_make_folding_prim(arg1,(char const *)arg2,arg3,arg4,arg5);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_noneternal_prim_w_arity) {
    {
        Scheme_Prim *arg1 = (Scheme_Prim *) 0 ;
        char *arg2 = (char *) 0 ;
        mzshort arg3 ;
        mzshort arg4 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: scheme_make_noneternal_prim_w_arity(prim,name,mina,maxa);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_f_int_a___p_struct_Scheme_Object__p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_make_noneternal_prim_w_arity. Expected _p_f_int_a___p_struct_Scheme_Object__p_Scheme_Object");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        arg3 = (mzshort) SvIV(ST(2));
        arg4 = (mzshort) SvIV(ST(3));
        result = (Scheme_Object *)scheme_make_noneternal_prim_w_arity(arg1,(char const *)arg2,arg3,arg4);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_closed_prim_w_arity) {
    {
        Scheme_Closed_Prim *arg1 = (Scheme_Closed_Prim *) 0 ;
        void *arg2 = (void *) 0 ;
        char *arg3 = (char *) 0 ;
        mzshort arg4 ;
        mzshort arg5 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: scheme_make_closed_prim_w_arity(prim,data,name,mina,maxa);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_f_p_void_int_a___p_struct_Scheme_Object__p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_make_closed_prim_w_arity. Expected _p_f_p_void_int_a___p_struct_Scheme_Object__p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_make_closed_prim_w_arity. Expected _p_void");
            }
        }
        if (!SvOK((SV*) ST(2))) arg3 = 0;
        else arg3 = (char *) SvPV(ST(2), PL_na);
        arg4 = (mzshort) SvIV(ST(3));
        arg5 = (mzshort) SvIV(ST(4));
        result = (Scheme_Object *)scheme_make_closed_prim_w_arity(arg1,arg2,(char const *)arg3,arg4,arg5);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_folding_closed_prim) {
    {
        Scheme_Closed_Prim *arg1 = (Scheme_Closed_Prim *) 0 ;
        void *arg2 = (void *) 0 ;
        char *arg3 = (char *) 0 ;
        mzshort arg4 ;
        mzshort arg5 ;
        short arg6 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 6) || (items > 6)) {
            SWIG_croak("Usage: scheme_make_folding_closed_prim(prim,data,name,mina,maxa,functional);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_f_p_void_int_a___p_struct_Scheme_Object__p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_make_folding_closed_prim. Expected _p_f_p_void_int_a___p_struct_Scheme_Object__p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_make_folding_closed_prim. Expected _p_void");
            }
        }
        if (!SvOK((SV*) ST(2))) arg3 = 0;
        else arg3 = (char *) SvPV(ST(2), PL_na);
        arg4 = (mzshort) SvIV(ST(3));
        arg5 = (mzshort) SvIV(ST(4));
        arg6 = (short) SvIV(ST(5));
        result = (Scheme_Object *)scheme_make_folding_closed_prim(arg1,arg2,(char const *)arg3,arg4,arg5,arg6);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_prim_w_everything) {
    {
        Scheme_Prim *arg1 = (Scheme_Prim *) 0 ;
        int arg2 ;
        char *arg3 = (char *) 0 ;
        mzshort arg4 ;
        mzshort arg5 ;
        short arg6 ;
        mzshort arg7 ;
        mzshort arg8 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 8) || (items > 8)) {
            SWIG_croak("Usage: scheme_make_prim_w_everything(fun,eternal,name,mina,maxa,folding,minr,maxr);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_f_int_a___p_struct_Scheme_Object__p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_make_prim_w_everything. Expected _p_f_int_a___p_struct_Scheme_Object__p_Scheme_Object");
            }
        }
        arg2 = (int) SvIV(ST(1));
        if (!SvOK((SV*) ST(2))) arg3 = 0;
        else arg3 = (char *) SvPV(ST(2), PL_na);
        arg4 = (mzshort) SvIV(ST(3));
        arg5 = (mzshort) SvIV(ST(4));
        arg6 = (short) SvIV(ST(5));
        arg7 = (mzshort) SvIV(ST(6));
        arg8 = (mzshort) SvIV(ST(7));
        result = (Scheme_Object *)scheme_make_prim_w_everything(arg1,arg2,(char const *)arg3,arg4,arg5,arg6,arg7,arg8);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_closed_prim_w_everything) {
    {
        Scheme_Closed_Prim *arg1 = (Scheme_Closed_Prim *) 0 ;
        void *arg2 = (void *) 0 ;
        char *arg3 = (char *) 0 ;
        mzshort arg4 ;
        mzshort arg5 ;
        short arg6 ;
        mzshort arg7 ;
        mzshort arg8 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 8) || (items > 8)) {
            SWIG_croak("Usage: scheme_make_closed_prim_w_everything(fun,data,name,mina,maxa,folding,minr,maxr);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_f_p_void_int_a___p_struct_Scheme_Object__p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_make_closed_prim_w_everything. Expected _p_f_p_void_int_a___p_struct_Scheme_Object__p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_make_closed_prim_w_everything. Expected _p_void");
            }
        }
        if (!SvOK((SV*) ST(2))) arg3 = 0;
        else arg3 = (char *) SvPV(ST(2), PL_na);
        arg4 = (mzshort) SvIV(ST(3));
        arg5 = (mzshort) SvIV(ST(4));
        arg6 = (short) SvIV(ST(5));
        arg7 = (mzshort) SvIV(ST(6));
        arg8 = (mzshort) SvIV(ST(7));
        result = (Scheme_Object *)scheme_make_closed_prim_w_everything(arg1,arg2,(char const *)arg3,arg4,arg5,arg6,arg7,arg8);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_prim_is_method) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_prim_is_method(o);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_prim_is_method. Expected _p_Scheme_Object");
            }
        }
        scheme_prim_is_method(arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_pair) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_make_pair(car,cdr);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_make_pair. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_make_pair. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_make_pair(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_immutable_pair) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_make_immutable_pair(car,cdr);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_make_immutable_pair. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_make_immutable_pair. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_make_immutable_pair(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_string) {
    {
        char *arg1 = (char *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_make_string(chars);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        result = (Scheme_Object *)scheme_make_string((char const *)arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_sized_string) {
    {
        char *arg1 = (char *) 0 ;
        long arg2 ;
        int arg3 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: scheme_make_sized_string(chars,len,copy);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        arg2 = (long) SvIV(ST(1));
        arg3 = (int) SvIV(ST(2));
        result = (Scheme_Object *)scheme_make_sized_string(arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_sized_offset_string) {
    {
        char *arg1 = (char *) 0 ;
        long arg2 ;
        long arg3 ;
        int arg4 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: scheme_make_sized_offset_string(chars,d,len,copy);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        arg2 = (long) SvIV(ST(1));
        arg3 = (long) SvIV(ST(2));
        arg4 = (int) SvIV(ST(3));
        result = (Scheme_Object *)scheme_make_sized_offset_string(arg1,arg2,arg3,arg4);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_immutable_sized_string) {
    {
        char *arg1 = (char *) 0 ;
        long arg2 ;
        int arg3 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: scheme_make_immutable_sized_string(chars,len,copy);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        arg2 = (long) SvIV(ST(1));
        arg3 = (int) SvIV(ST(2));
        result = (Scheme_Object *)scheme_make_immutable_sized_string(arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_string_without_copying) {
    {
        char *arg1 = (char *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_make_string_without_copying(chars);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        result = (Scheme_Object *)scheme_make_string_without_copying(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_alloc_string) {
    {
        int arg1 ;
        char arg2 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_alloc_string(size,fill);");
        }
        arg1 = (int) SvIV(ST(0));
        arg2 = (char) *SvPV(ST(1),PL_na);
        result = (Scheme_Object *)scheme_alloc_string(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_append_string) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_append_string(Scheme_Object *,Scheme_Object *);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_append_string. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_append_string. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_append_string(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_vector) {
    {
        int arg1 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_make_vector(size,fill);");
        }
        arg1 = (int) SvIV(ST(0));
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_make_vector. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_make_vector(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_integer_value) {
    {
        long arg1 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_make_integer_value(i);");
        }
        arg1 = (long) SvIV(ST(0));
        result = (Scheme_Object *)scheme_make_integer_value(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_integer_value_from_unsigned) {
    {
        unsigned long arg1 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_make_integer_value_from_unsigned(i);");
        }
        arg1 = (unsigned long) SvUV(ST(0));
        result = (Scheme_Object *)scheme_make_integer_value_from_unsigned(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_integer_value_from_long_long) {
    {
        unsigned long arg1 ;
        unsigned long arg2 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_make_integer_value_from_long_long(lowhalf,hihalf);");
        }
        arg1 = (unsigned long) SvUV(ST(0));
        arg2 = (unsigned long) SvUV(ST(1));
        result = (Scheme_Object *)scheme_make_integer_value_from_long_long(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_integer_value_from_unsigned_long_long) {
    {
        unsigned long arg1 ;
        unsigned long arg2 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_make_integer_value_from_unsigned_long_long(lowhalf,hihalf);");
        }
        arg1 = (unsigned long) SvUV(ST(0));
        arg2 = (unsigned long) SvUV(ST(1));
        result = (Scheme_Object *)scheme_make_integer_value_from_unsigned_long_long(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_double) {
    {
        double arg1 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_make_double(d);");
        }
        arg1 = (double) SvNV(ST(0));
        
        result = (Scheme_Object *)scheme_make_double(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_char) {
    {
        char arg1 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_make_char(ch);");
        }
        arg1 = (char) *SvPV(ST(0),PL_na);
        result = (Scheme_Object *)scheme_make_char(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_sema) {
    {
        long arg1 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_make_sema(v);");
        }
        arg1 = (long) SvIV(ST(0));
        result = (Scheme_Object *)scheme_make_sema(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_post_sema) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_post_sema(o);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_post_sema. Expected _p_Scheme_Object");
            }
        }
        scheme_post_sema(arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_post_sema_all) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_post_sema_all(o);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_post_sema_all. Expected _p_Scheme_Object");
            }
        }
        scheme_post_sema_all(arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_wait_sema) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int arg2 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_wait_sema(o,just_try);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_wait_sema. Expected _p_Scheme_Object");
            }
        }
        arg2 = (int) SvIV(ST(1));
        result = (int)scheme_wait_sema(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_channel) {
    {
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: scheme_make_channel();");
        }
        result = (Scheme_Object *)scheme_make_channel();
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_get_int_val) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        long *arg2 = (long *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_get_int_val(o,v);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_get_int_val. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_long,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_get_int_val. Expected _p_long");
            }
        }
        result = (int)scheme_get_int_val(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_get_unsigned_int_val) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        unsigned long *arg2 = (unsigned long *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_get_unsigned_int_val(o,v);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_get_unsigned_int_val. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_unsigned_long,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_get_unsigned_int_val. Expected _p_unsigned_long");
            }
        }
        result = (int)scheme_get_unsigned_int_val(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_real_to_double) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_real_to_double(r);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_real_to_double. Expected _p_Scheme_Object");
            }
        }
        result = (double)scheme_real_to_double(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_cptr) {
    {
        void *arg1 = (void *) 0 ;
        char *arg2 = (char *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_make_cptr(cptr,typestr);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_make_cptr. Expected _p_void");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        result = (Scheme_Object *)scheme_make_cptr(arg1,(char const *)arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_get_proc_name) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int *arg2 = (int *) 0 ;
        int arg3 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: scheme_get_proc_name(p,len,for_error);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_get_proc_name. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_int,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_get_proc_name. Expected _p_int");
            }
        }
        arg3 = (int) SvIV(ST(2));
        result = (char *)scheme_get_proc_name(arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_bignum) {
    {
        long arg1 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_make_bignum(v);");
        }
        arg1 = (long) SvIV(ST(0));
        result = (Scheme_Object *)scheme_make_bignum(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_bignum_from_unsigned) {
    {
        unsigned long arg1 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_make_bignum_from_unsigned(v);");
        }
        arg1 = (unsigned long) SvUV(ST(0));
        result = (Scheme_Object *)scheme_make_bignum_from_unsigned(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_bignum_to_double) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_bignum_to_double(n);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_bignum_to_double. Expected _p_Scheme_Object");
            }
        }
        result = (double)scheme_bignum_to_double((Scheme_Object const *)arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_bignum_from_double) {
    {
        double arg1 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_bignum_from_double(d);");
        }
        arg1 = (double) SvNV(ST(0));
        
        result = (Scheme_Object *)scheme_bignum_from_double(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_bignum_to_string) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int arg2 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_bignum_to_string(n,radix);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_bignum_to_string. Expected _p_Scheme_Object");
            }
        }
        arg2 = (int) SvIV(ST(1));
        result = (char *)scheme_bignum_to_string((Scheme_Object const *)arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_bignum_to_allocated_string) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int arg2 ;
        int arg3 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: scheme_bignum_to_allocated_string(n,radix,alloc);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_bignum_to_allocated_string. Expected _p_Scheme_Object");
            }
        }
        arg2 = (int) SvIV(ST(1));
        arg3 = (int) SvIV(ST(2));
        result = (char *)scheme_bignum_to_allocated_string((Scheme_Object const *)arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_read_bignum) {
    {
        char *arg1 = (char *) 0 ;
        int arg2 ;
        int arg3 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: scheme_read_bignum(str,offset,radix);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        arg2 = (int) SvIV(ST(1));
        arg3 = (int) SvIV(ST(2));
        result = (Scheme_Object *)scheme_read_bignum((char const *)arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_bignum_normalize) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_bignum_normalize(n);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_bignum_normalize. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_bignum_normalize((Scheme_Object const *)arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_rational) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_make_rational(r,d);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_make_rational. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_make_rational. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_make_rational((Scheme_Object const *)arg1,(Scheme_Object const *)arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_rational_to_double) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_rational_to_double(n);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_rational_to_double. Expected _p_Scheme_Object");
            }
        }
        result = (double)scheme_rational_to_double((Scheme_Object const *)arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_rational_from_double) {
    {
        double arg1 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_rational_from_double(d);");
        }
        arg1 = (double) SvNV(ST(0));
        
        result = (Scheme_Object *)scheme_rational_from_double(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_rational_normalize) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_rational_normalize(n);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_rational_normalize. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_rational_normalize((Scheme_Object const *)arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_rational_numerator) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_rational_numerator(n);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_rational_numerator. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_rational_numerator((Scheme_Object const *)arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_rational_denominator) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_rational_denominator(n);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_rational_denominator. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_rational_denominator((Scheme_Object const *)arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_complex) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_make_complex(r,i);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_make_complex. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_make_complex. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_make_complex((Scheme_Object const *)arg1,(Scheme_Object const *)arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_complex_normalize) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_complex_normalize(n);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_complex_normalize. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_complex_normalize((Scheme_Object const *)arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_complex_real_part) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_complex_real_part(n);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_complex_real_part. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_complex_real_part((Scheme_Object const *)arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_complex_imaginary_part) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_complex_imaginary_part(n);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_complex_imaginary_part. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_complex_imaginary_part((Scheme_Object const *)arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_is_exact) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_is_exact(n);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_is_exact. Expected _p_Scheme_Object");
            }
        }
        result = (int)scheme_is_exact(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_is_inexact) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_is_inexact(n);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_is_inexact. Expected _p_Scheme_Object");
            }
        }
        result = (int)scheme_is_inexact(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_expand) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Env *arg2 = (Scheme_Env *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_expand(form,env);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_expand. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Env,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_expand. Expected _p_Scheme_Env");
            }
        }
        result = (Scheme_Object *)scheme_expand(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_compile) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Env *arg2 = (Scheme_Env *) 0 ;
        int arg3 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: scheme_compile(form,env,writeable);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_compile. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Env,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_compile. Expected _p_Scheme_Env");
            }
        }
        arg3 = (int) SvIV(ST(2));
        result = (Scheme_Object *)scheme_compile(arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_read) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_read(port);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_read. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_read(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_read_syntax) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_read_syntax(port,stxsrc);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_read_syntax. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_read_syntax. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_read_syntax(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_write) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_write(obj,port);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_write. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_write. Expected _p_Scheme_Object");
            }
        }
        scheme_write(arg1,arg2);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_display) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_display(obj,port);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_display. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_display. Expected _p_Scheme_Object");
            }
        }
        scheme_display(arg1,arg2);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_write_w_max) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        long arg3 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: scheme_write_w_max(obj,port,maxl);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_write_w_max. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_write_w_max. Expected _p_Scheme_Object");
            }
        }
        arg3 = (long) SvIV(ST(2));
        scheme_write_w_max(arg1,arg2,arg3);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_display_w_max) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        long arg3 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: scheme_display_w_max(obj,port,maxl);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_display_w_max. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_display_w_max. Expected _p_Scheme_Object");
            }
        }
        arg3 = (long) SvIV(ST(2));
        scheme_display_w_max(arg1,arg2,arg3);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_write_string) {
    {
        char *arg1 = (char *) 0 ;
        long arg2 ;
        Scheme_Object *arg3 = (Scheme_Object *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: scheme_write_string(str,len,port);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        arg2 = (long) SvIV(ST(1));
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 3 of scheme_write_string. Expected _p_Scheme_Object");
            }
        }
        scheme_write_string((char const *)arg1,arg2,arg3);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_put_string) {
    {
        char *arg1 = (char *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        char *arg3 = (char *) 0 ;
        long arg4 ;
        long arg5 ;
        int arg6 ;
        long result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 6) || (items > 6)) {
            SWIG_croak("Usage: scheme_put_string(who,port,str,d,len,rarely_block);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_put_string. Expected _p_Scheme_Object");
            }
        }
        if (!SvOK((SV*) ST(2))) arg3 = 0;
        else arg3 = (char *) SvPV(ST(2), PL_na);
        arg4 = (long) SvIV(ST(3));
        arg5 = (long) SvIV(ST(4));
        arg6 = (int) SvIV(ST(5));
        result = (long)scheme_put_string((char const *)arg1,arg2,(char const *)arg3,arg4,arg5,arg6);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_write_to_string) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        long *arg2 = (long *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_write_to_string(obj,len);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_write_to_string. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_long,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_write_to_string. Expected _p_long");
            }
        }
        result = (char *)scheme_write_to_string(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_display_to_string) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        long *arg2 = (long *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_display_to_string(obj,len);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_display_to_string. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_long,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_display_to_string. Expected _p_long");
            }
        }
        result = (char *)scheme_display_to_string(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_write_to_string_w_max) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        long *arg2 = (long *) 0 ;
        long arg3 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: scheme_write_to_string_w_max(obj,len,maxl);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_write_to_string_w_max. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_long,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_write_to_string_w_max. Expected _p_long");
            }
        }
        arg3 = (long) SvIV(ST(2));
        result = (char *)scheme_write_to_string_w_max(arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_display_to_string_w_max) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        long *arg2 = (long *) 0 ;
        long arg3 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: scheme_display_to_string_w_max(obj,len,maxl);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_display_to_string_w_max. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_long,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_display_to_string_w_max. Expected _p_long");
            }
        }
        arg3 = (long) SvIV(ST(2));
        result = (char *)scheme_display_to_string_w_max(arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_debug_print) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_debug_print(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_debug_print. Expected _p_Scheme_Object");
            }
        }
        scheme_debug_print(arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_flush_output) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_flush_output(port);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_flush_output. Expected _p_Scheme_Object");
            }
        }
        scheme_flush_output(arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_format) {
    {
        char *arg1 = (char *) 0 ;
        int arg2 ;
        int arg3 ;
        Scheme_Object **arg4 = (Scheme_Object **) 0 ;
        long *arg5 = (long *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: scheme_format(format,flen,argc,argv,rlen);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        arg2 = (int) SvIV(ST(1));
        arg3 = (int) SvIV(ST(2));
        {
            arg4 = _mzscheme_from_perl_arrayref_to_objects(ST(3));
        }
        {
            if (SWIG_ConvertPtr(ST(4), (void **) &arg5, SWIGTYPE_p_long,0) < 0) {
                SWIG_croak("Type error in argument 5 of scheme_format. Expected _p_long");
            }
        }
        result = (char *)scheme_format(arg1,arg2,arg3,arg4,arg5);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        {
            free(arg4);
        }
        XSRETURN(argvi);
        fail:
        {
            free(arg4);
        }
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_printf) {
    {
        char *arg1 = (char *) 0 ;
        int arg2 ;
        int arg3 ;
        Scheme_Object **arg4 = (Scheme_Object **) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: scheme_printf(format,flen,argc,argv);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        arg2 = (int) SvIV(ST(1));
        arg3 = (int) SvIV(ST(2));
        {
            arg4 = _mzscheme_from_perl_arrayref_to_objects(ST(3));
        }
        scheme_printf(arg1,arg2,arg3,arg4);
        
        
        {
            free(arg4);
        }
        XSRETURN(argvi);
        fail:
        {
            free(arg4);
        }
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_getc) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_getc(port);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_getc. Expected _p_Scheme_Object");
            }
        }
        result = (int)scheme_getc(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_peekc) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_peekc(port);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_peekc. Expected _p_Scheme_Object");
            }
        }
        result = (int)scheme_peekc(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_peekc_skip) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_peekc_skip(port,skip);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_peekc_skip. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_peekc_skip. Expected _p_Scheme_Object");
            }
        }
        result = (int)scheme_peekc_skip(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_getc_special_ok) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_getc_special_ok(port);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_getc_special_ok. Expected _p_Scheme_Object");
            }
        }
        result = (int)scheme_getc_special_ok(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_peekc_special_ok) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_peekc_special_ok(port);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_peekc_special_ok. Expected _p_Scheme_Object");
            }
        }
        result = (int)scheme_peekc_special_ok(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_peekc_special_ok_skip) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_peekc_special_ok_skip(port,skip);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_peekc_special_ok_skip. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_peekc_special_ok_skip. Expected _p_Scheme_Object");
            }
        }
        result = (int)scheme_peekc_special_ok_skip(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_ungetc) {
    {
        int arg1 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_ungetc(ch,port);");
        }
        arg1 = (int) SvIV(ST(0));
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_ungetc. Expected _p_Scheme_Object");
            }
        }
        scheme_ungetc(arg1,arg2);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_char_ready) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_char_ready(port);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_char_ready. Expected _p_Scheme_Object");
            }
        }
        result = (int)scheme_char_ready(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_peekc_is_ungetc) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_peekc_is_ungetc(port);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_peekc_is_ungetc. Expected _p_Scheme_Object");
            }
        }
        result = (int)scheme_peekc_is_ungetc(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_need_wakeup) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        void *arg2 = (void *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_need_wakeup(port,fds);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_need_wakeup. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_need_wakeup. Expected _p_void");
            }
        }
        scheme_need_wakeup(arg1,arg2);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_get_string) {
    {
        char *arg1 = (char *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        char *arg3 = (char *) 0 ;
        long arg4 ;
        long arg5 ;
        int arg6 ;
        int arg7 ;
        Scheme_Object *arg8 = (Scheme_Object *) 0 ;
        long result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 8) || (items > 8)) {
            SWIG_croak("Usage: scheme_get_string(who,port,buffer,offset,size,only_avail,peek,peek_skip);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_get_string. Expected _p_Scheme_Object");
            }
        }
        if (!SvOK((SV*) ST(2))) arg3 = 0;
        else arg3 = (char *) SvPV(ST(2), PL_na);
        arg4 = (long) SvIV(ST(3));
        arg5 = (long) SvIV(ST(4));
        arg6 = (int) SvIV(ST(5));
        arg7 = (int) SvIV(ST(6));
        {
            if (SWIG_ConvertPtr(ST(7), (void **) &arg8, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 8 of scheme_get_string. Expected _p_Scheme_Object");
            }
        }
        result = (long)scheme_get_string((char const *)arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_get_chars) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        long arg2 ;
        char *arg3 = (char *) 0 ;
        int arg4 ;
        long result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: scheme_get_chars(port,size,buffer,offset);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_get_chars. Expected _p_Scheme_Object");
            }
        }
        arg2 = (long) SvIV(ST(1));
        if (!SvOK((SV*) ST(2))) arg3 = 0;
        else arg3 = (char *) SvPV(ST(2), PL_na);
        arg4 = (int) SvIV(ST(3));
        result = (long)scheme_get_chars(arg1,arg2,arg3,arg4);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_tell) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        long result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_tell(port);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_tell. Expected _p_Scheme_Object");
            }
        }
        result = (long)scheme_tell(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_output_tell) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        long result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_output_tell(port);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_output_tell. Expected _p_Scheme_Object");
            }
        }
        result = (long)scheme_output_tell(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_tell_line) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        long result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_tell_line(port);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_tell_line. Expected _p_Scheme_Object");
            }
        }
        result = (long)scheme_tell_line(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_tell_column) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        long result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_tell_column(port);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_tell_column. Expected _p_Scheme_Object");
            }
        }
        result = (long)scheme_tell_column(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_count_lines) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_count_lines(port);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_count_lines. Expected _p_Scheme_Object");
            }
        }
        scheme_count_lines(arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_close_input_port) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_close_input_port(port);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_close_input_port. Expected _p_Scheme_Object");
            }
        }
        scheme_close_input_port(arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_close_output_port) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_close_output_port(port);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_close_output_port. Expected _p_Scheme_Object");
            }
        }
        scheme_close_output_port(arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_port_type) {
    {
        char *arg1 = (char *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_make_port_type(name);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        result = (Scheme_Object *)scheme_make_port_type((char const *)arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_input_port) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        void *arg2 = (void *) 0 ;
        Scheme_Get_String_Fun arg3 = (Scheme_Get_String_Fun) 0 ;
        Scheme_Peek_String_Fun arg4 = (Scheme_Peek_String_Fun) 0 ;
        Scheme_In_Ready_Fun arg5 = (Scheme_In_Ready_Fun) 0 ;
        Scheme_Close_Input_Fun arg6 = (Scheme_Close_Input_Fun) 0 ;
        Scheme_Need_Wakeup_Input_Fun arg7 = (Scheme_Need_Wakeup_Input_Fun) 0 ;
        int arg8 ;
        Scheme_Input_Port *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 8) || (items > 8)) {
            SWIG_croak("Usage: scheme_make_input_port(subtype,data,get_string_fun,peek_string_fun,char_ready_fun,close_fun,need_wakeup_fun,must_close);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_make_input_port. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_make_input_port. Expected _p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_f_p_struct_Scheme_Input_Port_p_char_long_long_int__long,0) < 0) {
                SWIG_croak("Type error in argument 3 of scheme_make_input_port. Expected _p_f_p_struct_Scheme_Input_Port_p_char_long_long_int__long");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(3), (void **) &arg4, SWIGTYPE_p_f_p_struct_Scheme_Input_Port_p_char_long_long_p_struct_Scheme_Object_int__long,0) < 0) {
                SWIG_croak("Type error in argument 4 of scheme_make_input_port. Expected _p_f_p_struct_Scheme_Input_Port_p_char_long_long_p_struct_Scheme_Object_int__long");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(4), (void **) &arg5, SWIGTYPE_p_f_p_struct_Scheme_Input_Port__int,0) < 0) {
                SWIG_croak("Type error in argument 5 of scheme_make_input_port. Expected _p_f_p_struct_Scheme_Input_Port__int");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(5), (void **) &arg6, SWIGTYPE_p_f_p_struct_Scheme_Input_Port__void,0) < 0) {
                SWIG_croak("Type error in argument 6 of scheme_make_input_port. Expected _p_f_p_struct_Scheme_Input_Port__void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(6), (void **) &arg7, SWIGTYPE_p_f_p_struct_Scheme_Input_Port_p_void__void,0) < 0) {
                SWIG_croak("Type error in argument 7 of scheme_make_input_port. Expected _p_f_p_struct_Scheme_Input_Port_p_void__void");
            }
        }
        arg8 = (int) SvIV(ST(7));
        result = (Scheme_Input_Port *)scheme_make_input_port(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Input_Port, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_output_port) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        void *arg2 = (void *) 0 ;
        Scheme_Write_String_Fun arg3 = (Scheme_Write_String_Fun) 0 ;
        Scheme_Out_Ready_Fun arg4 = (Scheme_Out_Ready_Fun) 0 ;
        Scheme_Close_Output_Fun arg5 = (Scheme_Close_Output_Fun) 0 ;
        Scheme_Need_Wakeup_Output_Fun arg6 = (Scheme_Need_Wakeup_Output_Fun) 0 ;
        int arg7 ;
        Scheme_Output_Port *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 7) || (items > 7)) {
            SWIG_croak("Usage: scheme_make_output_port(subtype,data,write_string_fun,ready_fun,close_fun,need_wakeup_fun,must_close);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_make_output_port. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_make_output_port. Expected _p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_f_p_struct_Scheme_Output_Port_p_q_const__char_long_long_int__long,0) < 0) {
                SWIG_croak("Type error in argument 3 of scheme_make_output_port. Expected _p_f_p_struct_Scheme_Output_Port_p_q_const__char_long_long_int__long");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(3), (void **) &arg4, SWIGTYPE_p_f_p_struct_Scheme_Output_Port__int,0) < 0) {
                SWIG_croak("Type error in argument 4 of scheme_make_output_port. Expected _p_f_p_struct_Scheme_Output_Port__int");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(4), (void **) &arg5, SWIGTYPE_p_f_p_struct_Scheme_Output_Port__void,0) < 0) {
                SWIG_croak("Type error in argument 5 of scheme_make_output_port. Expected _p_f_p_struct_Scheme_Output_Port__void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(5), (void **) &arg6, SWIGTYPE_p_f_p_struct_Scheme_Output_Port_p_void__void,0) < 0) {
                SWIG_croak("Type error in argument 6 of scheme_make_output_port. Expected _p_f_p_struct_Scheme_Output_Port_p_void__void");
            }
        }
        arg7 = (int) SvIV(ST(6));
        result = (Scheme_Output_Port *)scheme_make_output_port(arg1,arg2,arg3,arg4,arg5,arg6,arg7);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Output_Port, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_open_input_file) {
    {
        char *arg1 = (char *) 0 ;
        char *arg2 = (char *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_open_input_file(name,who);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        result = (Scheme_Object *)scheme_open_input_file((char const *)arg1,(char const *)arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_open_output_file) {
    {
        char *arg1 = (char *) 0 ;
        char *arg2 = (char *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_open_output_file(name,who);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        result = (Scheme_Object *)scheme_open_output_file((char const *)arg1,(char const *)arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_file_input_port) {
    {
        FILE *arg1 = (FILE *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_make_file_input_port(fp);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_FILE,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_make_file_input_port. Expected _p_FILE");
            }
        }
        result = (Scheme_Object *)scheme_make_file_input_port(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_named_file_input_port) {
    {
        FILE *arg1 = (FILE *) 0 ;
        char *arg2 = (char *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_make_named_file_input_port(fp,filename);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_FILE,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_make_named_file_input_port. Expected _p_FILE");
            }
        }
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        result = (Scheme_Object *)scheme_make_named_file_input_port(arg1,(char const *)arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_file_output_port) {
    {
        FILE *arg1 = (FILE *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_make_file_output_port(fp);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_FILE,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_make_file_output_port. Expected _p_FILE");
            }
        }
        result = (Scheme_Object *)scheme_make_file_output_port(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_string_input_port) {
    {
        char *arg1 = (char *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_make_string_input_port(str);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        result = (Scheme_Object *)scheme_make_string_input_port((char const *)arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_sized_string_input_port) {
    {
        char *arg1 = (char *) 0 ;
        long arg2 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_make_sized_string_input_port(str,len);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        arg2 = (long) SvIV(ST(1));
        result = (Scheme_Object *)scheme_make_sized_string_input_port((char const *)arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_string_output_port) {
    {
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: scheme_make_string_output_port();");
        }
        result = (Scheme_Object *)scheme_make_string_output_port();
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_get_string_output) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_get_string_output(Scheme_Object *);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_get_string_output. Expected _p_Scheme_Object");
            }
        }
        result = (char *)scheme_get_string_output(arg1);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_get_sized_string_output) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        long *arg2 = (long *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_get_sized_string_output(Scheme_Object *,len);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_get_sized_string_output. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_long,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_get_sized_string_output. Expected _p_long");
            }
        }
        result = (char *)scheme_get_sized_string_output(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_pipe) {
    {
        Scheme_Object **arg1 = (Scheme_Object **) 0 ;
        Scheme_Object **arg2 = (Scheme_Object **) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_pipe(read,write);");
        }
        {
            arg1 = _mzscheme_from_perl_arrayref_to_objects(ST(0));
        }
        {
            arg2 = _mzscheme_from_perl_arrayref_to_objects(ST(1));
        }
        scheme_pipe(arg1,arg2);
        
        
        {
            free(arg1);
        }
        {
            free(arg2);
        }
        XSRETURN(argvi);
        fail:
        {
            free(arg1);
        }
        {
            free(arg2);
        }
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_pipe_with_limit) {
    {
        Scheme_Object **arg1 = (Scheme_Object **) 0 ;
        Scheme_Object **arg2 = (Scheme_Object **) 0 ;
        int arg3 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: scheme_pipe_with_limit(write,read,maxsize);");
        }
        {
            arg1 = _mzscheme_from_perl_arrayref_to_objects(ST(0));
        }
        {
            arg2 = _mzscheme_from_perl_arrayref_to_objects(ST(1));
        }
        arg3 = (int) SvIV(ST(2));
        scheme_pipe_with_limit(arg1,arg2,arg3);
        
        
        {
            free(arg1);
        }
        {
            free(arg2);
        }
        XSRETURN(argvi);
        fail:
        {
            free(arg1);
        }
        {
            free(arg2);
        }
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_set_file_position) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        long arg2 ;
        long result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_set_file_position(port,pos);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_set_file_position. Expected _p_Scheme_Object");
            }
        }
        arg2 = (long) SvIV(ST(1));
        result = (long)scheme_set_file_position(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_file_exists) {
    {
        char *arg1 = (char *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_file_exists(filename);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        result = (int)scheme_file_exists(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_directory_exists) {
    {
        char *arg1 = (char *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_directory_exists(dirname);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        result = (int)scheme_directory_exists(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_expand_filename) {
    {
        char *arg1 = (char *) 0 ;
        int arg2 ;
        char *arg3 = (char *) 0 ;
        int *arg4 = (int *) 0 ;
        int arg5 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: scheme_expand_filename(filename,ilen,errorin,ex,guards);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        arg2 = (int) SvIV(ST(1));
        if (!SvOK((SV*) ST(2))) arg3 = 0;
        else arg3 = (char *) SvPV(ST(2), PL_na);
        {
            if (SWIG_ConvertPtr(ST(3), (void **) &arg4, SWIGTYPE_p_int,0) < 0) {
                SWIG_croak("Type error in argument 4 of scheme_expand_filename. Expected _p_int");
            }
        }
        arg5 = (int) SvIV(ST(4));
        result = (char *)scheme_expand_filename(arg1,arg2,(char const *)arg3,arg4,arg5);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_os_getcwd) {
    {
        char *arg1 = (char *) 0 ;
        int arg2 ;
        int *arg3 = (int *) 0 ;
        int arg4 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: scheme_os_getcwd(buf,buflen,actlen,noexn);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        arg2 = (int) SvIV(ST(1));
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_int,0) < 0) {
                SWIG_croak("Type error in argument 3 of scheme_os_getcwd. Expected _p_int");
            }
        }
        arg4 = (int) SvIV(ST(3));
        result = (char *)scheme_os_getcwd(arg1,arg2,arg3,arg4);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_os_setcwd) {
    {
        char *arg1 = (char *) 0 ;
        int arg2 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_os_setcwd(buf,noexn);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        arg2 = (int) SvIV(ST(1));
        result = (int)scheme_os_setcwd(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_getdrive) {
    {
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: scheme_getdrive();");
        }
        result = (char *)scheme_getdrive();
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_split_pathname) {
    {
        char *arg1 = (char *) 0 ;
        int arg2 ;
        Scheme_Object **arg3 = (Scheme_Object **) 0 ;
        int *arg4 = (int *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: scheme_split_pathname(path,len,base,isdir);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        arg2 = (int) SvIV(ST(1));
        {
            arg3 = _mzscheme_from_perl_arrayref_to_objects(ST(2));
        }
        {
            if (SWIG_ConvertPtr(ST(3), (void **) &arg4, SWIGTYPE_p_int,0) < 0) {
                SWIG_croak("Type error in argument 4 of scheme_split_pathname. Expected _p_int");
            }
        }
        result = (Scheme_Object *)scheme_split_pathname((char const *)arg1,arg2,arg3,arg4);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        {
            free(arg3);
        }
        XSRETURN(argvi);
        fail:
        {
            free(arg3);
        }
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_build_pathname) {
    {
        int arg1 ;
        Scheme_Object **arg2 = (Scheme_Object **) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_build_pathname(argc,argv);");
        }
        arg1 = (int) SvIV(ST(0));
        {
            arg2 = _mzscheme_from_perl_arrayref_to_objects(ST(1));
        }
        result = (Scheme_Object *)scheme_build_pathname(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        {
            free(arg2);
        }
        XSRETURN(argvi);
        fail:
        {
            free(arg2);
        }
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_alloc_fdset_array) {
    {
        int arg1 ;
        int arg2 ;
        void *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_alloc_fdset_array(count,permanent);");
        }
        arg1 = (int) SvIV(ST(0));
        arg2 = (int) SvIV(ST(1));
        result = (void *)scheme_alloc_fdset_array(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_void, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_init_fdset_array) {
    {
        void *arg1 = (void *) 0 ;
        int arg2 ;
        void *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_init_fdset_array(fdarray,count);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_init_fdset_array. Expected _p_void");
            }
        }
        arg2 = (int) SvIV(ST(1));
        result = (void *)scheme_init_fdset_array(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_void, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_get_fdset) {
    {
        void *arg1 = (void *) 0 ;
        int arg2 ;
        void *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_get_fdset(fdarray,pos);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_get_fdset. Expected _p_void");
            }
        }
        arg2 = (int) SvIV(ST(1));
        result = (void *)scheme_get_fdset(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_void, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_fdzero) {
    {
        void *arg1 = (void *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_fdzero(fd);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_fdzero. Expected _p_void");
            }
        }
        scheme_fdzero(arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_fdset) {
    {
        void *arg1 = (void *) 0 ;
        int arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_fdset(fd,pos);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_fdset. Expected _p_void");
            }
        }
        arg2 = (int) SvIV(ST(1));
        scheme_fdset(arg1,arg2);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_fdclr) {
    {
        void *arg1 = (void *) 0 ;
        int arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_fdclr(fd,pos);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_fdclr. Expected _p_void");
            }
        }
        arg2 = (int) SvIV(ST(1));
        scheme_fdclr(arg1,arg2);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_fdisset) {
    {
        void *arg1 = (void *) 0 ;
        int arg2 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_fdisset(fd,pos);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_fdisset. Expected _p_void");
            }
        }
        arg2 = (int) SvIV(ST(1));
        result = (int)scheme_fdisset(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_add_fd_handle) {
    {
        void *arg1 = (void *) 0 ;
        void *arg2 = (void *) 0 ;
        int arg3 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: scheme_add_fd_handle(h,fds,repost);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_add_fd_handle. Expected _p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, 0,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_add_fd_handle. Expected _p_void");
            }
        }
        arg3 = (int) SvIV(ST(2));
        scheme_add_fd_handle(arg1,arg2,arg3);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_add_fd_eventmask) {
    {
        void *arg1 = (void *) 0 ;
        int arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_add_fd_eventmask(fds,mask);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_add_fd_eventmask. Expected _p_void");
            }
        }
        arg2 = (int) SvIV(ST(1));
        scheme_add_fd_eventmask(arg1,arg2);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_security_check_file) {
    {
        char *arg1 = (char *) 0 ;
        char *arg2 = (char *) 0 ;
        int arg3 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: scheme_security_check_file(who,filename,guards);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        arg3 = (int) SvIV(ST(2));
        scheme_security_check_file((char const *)arg1,(char const *)arg2,arg3);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_security_check_network) {
    {
        char *arg1 = (char *) 0 ;
        char *arg2 = (char *) 0 ;
        int arg3 ;
        int arg4 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: scheme_security_check_network(who,host,port,client);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        if (!SvOK((SV*) ST(1))) arg2 = 0;
        else arg2 = (char *) SvPV(ST(1), PL_na);
        arg3 = (int) SvIV(ST(2));
        arg4 = (int) SvIV(ST(3));
        scheme_security_check_network((char const *)arg1,(char const *)arg2,arg3,arg4);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_get_host_address) {
    {
        char *arg1 = (char *) 0 ;
        int arg2 ;
        void *arg3 = (void *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: scheme_get_host_address(address,id,result);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        arg2 = (int) SvIV(ST(1));
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, 0,0) < 0) {
                SWIG_croak("Type error in argument 3 of scheme_get_host_address. Expected _p_void");
            }
        }
        result = (int)scheme_get_host_address((char const *)arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_namespace) {
    {
        int arg1 ;
        Scheme_Object **arg2 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_make_namespace(argc,argv);");
        }
        arg1 = (int) SvIV(ST(0));
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_make_namespace. Expected _p_p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_make_namespace(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_add_namespace_option) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        void (*arg2)(Scheme_Env *) = (void (*)(Scheme_Env *)) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_add_namespace_option(key,f);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_add_namespace_option. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_f_p_struct_Scheme_Env__void,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_add_namespace_option. Expected _p_f_p_struct_Scheme_Env__void");
            }
        }
        scheme_add_namespace_option(arg1,arg2);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_require_from_original_env) {
    {
        Scheme_Env *arg1 = (Scheme_Env *) 0 ;
        int arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_require_from_original_env(env,syntax_only);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Env,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_require_from_original_env. Expected _p_Scheme_Env");
            }
        }
        arg2 = (int) SvIV(ST(1));
        scheme_require_from_original_env(arg1,arg2);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_add_global) {
    {
        char *arg1 = (char *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        Scheme_Env *arg3 = (Scheme_Env *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: scheme_add_global(name,val,env);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_add_global. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_Scheme_Env,0) < 0) {
                SWIG_croak("Type error in argument 3 of scheme_add_global. Expected _p_Scheme_Env");
            }
        }
        scheme_add_global((char const *)arg1,arg2,arg3);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_add_global_symbol) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        Scheme_Env *arg3 = (Scheme_Env *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: scheme_add_global_symbol(name,val,env);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_add_global_symbol. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_add_global_symbol. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_Scheme_Env,0) < 0) {
                SWIG_croak("Type error in argument 3 of scheme_add_global_symbol. Expected _p_Scheme_Env");
            }
        }
        scheme_add_global_symbol(arg1,arg2,arg3);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_envunbox) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_make_envunbox(value);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_make_envunbox. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_make_envunbox(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_lookup_global) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Env *arg2 = (Scheme_Env *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_lookup_global(symbol,env);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_lookup_global. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Env,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_lookup_global. Expected _p_Scheme_Env");
            }
        }
        result = (Scheme_Object *)scheme_lookup_global(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_global_bucket) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Env *arg2 = (Scheme_Env *) 0 ;
        Scheme_Bucket *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_global_bucket(symbol,env);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_global_bucket. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Env,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_global_bucket. Expected _p_Scheme_Env");
            }
        }
        result = (Scheme_Bucket *)scheme_global_bucket(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Bucket, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_global_keyword_bucket) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Env *arg2 = (Scheme_Env *) 0 ;
        Scheme_Bucket *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_global_keyword_bucket(symbol,env);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_global_keyword_bucket. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Env,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_global_keyword_bucket. Expected _p_Scheme_Env");
            }
        }
        result = (Scheme_Bucket *)scheme_global_keyword_bucket(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Bucket, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_module_bucket) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        int arg3 ;
        Scheme_Env *arg4 = (Scheme_Env *) 0 ;
        Scheme_Bucket *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: scheme_module_bucket(mod,var,pos,env);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_module_bucket. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_module_bucket. Expected _p_Scheme_Object");
            }
        }
        arg3 = (int) SvIV(ST(2));
        {
            if (SWIG_ConvertPtr(ST(3), (void **) &arg4, SWIGTYPE_p_Scheme_Env,0) < 0) {
                SWIG_croak("Type error in argument 4 of scheme_module_bucket. Expected _p_Scheme_Env");
            }
        }
        result = (Scheme_Bucket *)scheme_module_bucket(arg1,arg2,arg3,arg4);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Bucket, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_exptime_global_bucket) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Env *arg2 = (Scheme_Env *) 0 ;
        Scheme_Bucket *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_exptime_global_bucket(symbol,env);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_exptime_global_bucket. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Env,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_exptime_global_bucket. Expected _p_Scheme_Env");
            }
        }
        result = (Scheme_Bucket *)scheme_exptime_global_bucket(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Bucket, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_exptime_module_bucket) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        int arg3 ;
        Scheme_Env *arg4 = (Scheme_Env *) 0 ;
        Scheme_Bucket *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: scheme_exptime_module_bucket(mod,var,pos,env);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_exptime_module_bucket. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_exptime_module_bucket. Expected _p_Scheme_Object");
            }
        }
        arg3 = (int) SvIV(ST(2));
        {
            if (SWIG_ConvertPtr(ST(3), (void **) &arg4, SWIGTYPE_p_Scheme_Env,0) < 0) {
                SWIG_croak("Type error in argument 4 of scheme_exptime_module_bucket. Expected _p_Scheme_Env");
            }
        }
        result = (Scheme_Bucket *)scheme_exptime_module_bucket(arg1,arg2,arg3,arg4);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Bucket, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_builtin_value) {
    {
        char *arg1 = (char *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_builtin_value(name);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        result = (Scheme_Object *)scheme_builtin_value((char const *)arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_set_global_bucket) {
    {
        char *arg1 = (char *) 0 ;
        Scheme_Bucket *arg2 = (Scheme_Bucket *) 0 ;
        Scheme_Object *arg3 = (Scheme_Object *) 0 ;
        int arg4 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: scheme_set_global_bucket(proc,var,val,set_undef);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Bucket,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_set_global_bucket. Expected _p_Scheme_Bucket");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 3 of scheme_set_global_bucket. Expected _p_Scheme_Object");
            }
        }
        arg4 = (int) SvIV(ST(3));
        scheme_set_global_bucket(arg1,arg2,arg3,arg4);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_install_macro) {
    {
        Scheme_Bucket *arg1 = (Scheme_Bucket *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_install_macro(b,v);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Bucket,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_install_macro. Expected _p_Scheme_Bucket");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_install_macro. Expected _p_Scheme_Object");
            }
        }
        scheme_install_macro(arg1,arg2);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_save_initial_module_set) {
    {
        Scheme_Env *arg1 = (Scheme_Env *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_save_initial_module_set(env);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Env,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_save_initial_module_set. Expected _p_Scheme_Env");
            }
        }
        scheme_save_initial_module_set(arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_primitive_module) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Env *arg2 = (Scheme_Env *) 0 ;
        Scheme_Env *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_primitive_module(name,for_env);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_primitive_module. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Env,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_primitive_module. Expected _p_Scheme_Env");
            }
        }
        result = (Scheme_Env *)scheme_primitive_module(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Env, 0|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_finish_primitive_module) {
    {
        Scheme_Env *arg1 = (Scheme_Env *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_finish_primitive_module(env);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Env,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_finish_primitive_module. Expected _p_Scheme_Env");
            }
        }
        scheme_finish_primitive_module(arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_modidx) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        Scheme_Object *arg3 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: scheme_make_modidx(path,base,resolved);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_make_modidx. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_make_modidx. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 3 of scheme_make_modidx. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_make_modidx(arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_declare_module) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Invoke_Proc arg2 = (Scheme_Invoke_Proc) 0 ;
        Scheme_Invoke_Proc arg3 = (Scheme_Invoke_Proc) 0 ;
        void *arg4 = (void *) 0 ;
        Scheme_Env *arg5 = (Scheme_Env *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: scheme_declare_module(shape,ivk,sivk,data,env);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_declare_module. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_f_p_struct_Scheme_Env_long_p_struct_Scheme_Object_p_void__void,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_declare_module. Expected _p_f_p_struct_Scheme_Env_long_p_struct_Scheme_Object_p_void__void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_f_p_struct_Scheme_Env_long_p_struct_Scheme_Object_p_void__void,0) < 0) {
                SWIG_croak("Type error in argument 3 of scheme_declare_module. Expected _p_f_p_struct_Scheme_Env_long_p_struct_Scheme_Object_p_void__void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(3), (void **) &arg4, 0,0) < 0) {
                SWIG_croak("Type error in argument 4 of scheme_declare_module. Expected _p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(4), (void **) &arg5, SWIGTYPE_p_Scheme_Env,0) < 0) {
                SWIG_croak("Type error in argument 5 of scheme_declare_module. Expected _p_Scheme_Env");
            }
        }
        result = (Scheme_Object *)scheme_declare_module(arg1,arg2,arg3,arg4,arg5);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_intern_symbol) {
    {
        char *arg1 = (char *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_intern_symbol(name);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        result = (Scheme_Object *)scheme_intern_symbol((char const *)arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_intern_exact_symbol) {
    {
        char *arg1 = (char *) 0 ;
        unsigned int arg2 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_intern_exact_symbol(name,len);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        arg2 = (unsigned int) SvUV(ST(1));
        result = (Scheme_Object *)scheme_intern_exact_symbol((char const *)arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_symbol) {
    {
        char *arg1 = (char *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_make_symbol(name);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        result = (Scheme_Object *)scheme_make_symbol((char const *)arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_exact_symbol) {
    {
        char *arg1 = (char *) 0 ;
        unsigned int arg2 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_make_exact_symbol(name,len);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        arg2 = (unsigned int) SvUV(ST(1));
        result = (Scheme_Object *)scheme_make_exact_symbol((char const *)arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_symbol_name) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_symbol_name(sym);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_symbol_name. Expected _p_Scheme_Object");
            }
        }
        result = (char *)scheme_symbol_name(arg1);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_symbol_name_and_size) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        unsigned int *arg2 = (unsigned int *) 0 ;
        int arg3 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: scheme_symbol_name_and_size(sym,l,flags);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_symbol_name_and_size. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_unsigned_int,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_symbol_name_and_size. Expected _p_unsigned_int");
            }
        }
        arg3 = (int) SvIV(ST(2));
        result = (char *)scheme_symbol_name_and_size(arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_symbol_val) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_symbol_val(sym);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_symbol_val. Expected _p_Scheme_Object");
            }
        }
        result = (char *)scheme_symbol_val(arg1);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_struct_values) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object **arg2 = (Scheme_Object **) 0 ;
        int arg3 ;
        int arg4 ;
        Scheme_Object **result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: scheme_make_struct_values(struct_type,names,count,flags);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_make_struct_values. Expected _p_Scheme_Object");
            }
        }
        {
            arg2 = _mzscheme_from_perl_arrayref_to_objects(ST(1));
        }
        arg3 = (int) SvIV(ST(2));
        arg4 = (int) SvIV(ST(3));
        result = (Scheme_Object **)scheme_make_struct_values(arg1,arg2,arg3,arg4);
        
        {
            ST(argvi) = newRV((SV *)_mzscheme_objects_AV((void **)result, (char *)&SWIGTYPE_p_Scheme_Object));
            sv_2mortal(ST(argvi));
            argvi++;
        }
        {
            free(arg2);
        }
        XSRETURN(argvi);
        fail:
        {
            free(arg2);
        }
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_struct_names) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        int arg3 ;
        int *arg4 = (int *) 0 ;
        Scheme_Object **result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 4) || (items > 4)) {
            SWIG_croak("Usage: scheme_make_struct_names(base,field_names,flags,count_out);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_make_struct_names. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_make_struct_names. Expected _p_Scheme_Object");
            }
        }
        arg3 = (int) SvIV(ST(2));
        {
            if (SWIG_ConvertPtr(ST(3), (void **) &arg4, SWIGTYPE_p_int,0) < 0) {
                SWIG_croak("Type error in argument 4 of scheme_make_struct_names. Expected _p_int");
            }
        }
        result = (Scheme_Object **)scheme_make_struct_names(arg1,arg2,arg3,arg4);
        
        {
            ST(argvi) = newRV((SV *)_mzscheme_objects_AV((void **)result, (char *)&SWIGTYPE_p_Scheme_Object));
            sv_2mortal(ST(argvi));
            argvi++;
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_struct_type) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        Scheme_Object *arg3 = (Scheme_Object *) 0 ;
        int arg4 ;
        int arg5 ;
        Scheme_Object *arg6 = (Scheme_Object *) 0 ;
        Scheme_Object *arg7 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 7) || (items > 7)) {
            SWIG_croak("Usage: scheme_make_struct_type(base,parent,inspector,num_fields,num_uninit_fields,uninit_val,properties);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_make_struct_type. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_make_struct_type. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 3 of scheme_make_struct_type. Expected _p_Scheme_Object");
            }
        }
        arg4 = (int) SvIV(ST(3));
        arg5 = (int) SvIV(ST(4));
        {
            if (SWIG_ConvertPtr(ST(5), (void **) &arg6, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 6 of scheme_make_struct_type. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(6), (void **) &arg7, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 7 of scheme_make_struct_type. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_make_struct_type(arg1,arg2,arg3,arg4,arg5,arg6,arg7);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_struct_instance) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int arg2 ;
        Scheme_Object **arg3 = (Scheme_Object **) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: scheme_make_struct_instance(stype,argc,argv);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_make_struct_instance. Expected _p_Scheme_Object");
            }
        }
        arg2 = (int) SvIV(ST(1));
        {
            arg3 = _mzscheme_from_perl_arrayref_to_objects(ST(2));
        }
        result = (Scheme_Object *)scheme_make_struct_instance(arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        {
            free(arg3);
        }
        XSRETURN(argvi);
        fail:
        {
            free(arg3);
        }
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_struct_exptime) {
    {
        Scheme_Object **arg1 = (Scheme_Object **) 0 ;
        int arg2 ;
        Scheme_Object *arg3 = (Scheme_Object *) 0 ;
        Scheme_Object *arg4 = (Scheme_Object *) 0 ;
        int arg5 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: scheme_make_struct_exptime(names,count,super_sym,super_exptime,flags);");
        }
        {
            arg1 = _mzscheme_from_perl_arrayref_to_objects(ST(0));
        }
        arg2 = (int) SvIV(ST(1));
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 3 of scheme_make_struct_exptime. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(3), (void **) &arg4, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 4 of scheme_make_struct_exptime. Expected _p_Scheme_Object");
            }
        }
        arg5 = (int) SvIV(ST(4));
        result = (Scheme_Object *)scheme_make_struct_exptime(arg1,arg2,arg3,arg4,arg5);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        {
            free(arg1);
        }
        XSRETURN(argvi);
        fail:
        {
            free(arg1);
        }
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_is_struct_instance) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_is_struct_instance(type,v);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_is_struct_instance. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_is_struct_instance. Expected _p_Scheme_Object");
            }
        }
        result = (int)scheme_is_struct_instance(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_struct_ref) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int arg2 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_struct_ref(s,pos);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_struct_ref. Expected _p_Scheme_Object");
            }
        }
        arg2 = (int) SvIV(ST(1));
        result = (Scheme_Object *)scheme_struct_ref(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_struct_set) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int arg2 ;
        Scheme_Object *arg3 = (Scheme_Object *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: scheme_struct_set(s,pos,v);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_struct_set. Expected _p_Scheme_Object");
            }
        }
        arg2 = (int) SvIV(ST(1));
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 3 of scheme_struct_set. Expected _p_Scheme_Object");
            }
        }
        scheme_struct_set(arg1,arg2,arg3);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_struct_type_property) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_make_struct_type_property(name);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_make_struct_type_property. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_make_struct_type_property(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_struct_type_property_w_guard) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_make_struct_type_property_w_guard(name,guard);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_make_struct_type_property_w_guard. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_make_struct_type_property_w_guard. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_make_struct_type_property_w_guard(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_struct_type_property_ref) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_struct_type_property_ref(prop,s);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_struct_type_property_ref. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_struct_type_property_ref. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_struct_type_property_ref(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_eq) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_eq(obj1,obj2);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_eq. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_eq. Expected _p_Scheme_Object");
            }
        }
        result = (int)scheme_eq(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_eqv) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_eqv(obj1,obj2);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_eqv. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_eqv. Expected _p_Scheme_Object");
            }
        }
        result = (int)scheme_eqv(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_equal) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_equal(obj1,obj2);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_equal. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_equal. Expected _p_Scheme_Object");
            }
        }
        result = (int)scheme_equal(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_equal_hash_key) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        long result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_equal_hash_key(o);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_equal_hash_key. Expected _p_Scheme_Object");
            }
        }
        result = (long)scheme_equal_hash_key(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_equal_hash_key2) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        long result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_equal_hash_key2(o);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_equal_hash_key2. Expected _p_Scheme_Object");
            }
        }
        result = (long)scheme_equal_hash_key2(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_build_list) {
    {
        int arg1 ;
        Scheme_Object **arg2 = (Scheme_Object **) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_build_list(argc,argv);");
        }
        arg1 = (int) SvIV(ST(0));
        {
            arg2 = _mzscheme_from_perl_arrayref_to_objects(ST(1));
        }
        result = (Scheme_Object *)scheme_build_list(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        {
            free(arg2);
        }
        XSRETURN(argvi);
        fail:
        {
            free(arg2);
        }
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_list_immutable) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_make_list_immutable(l);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_make_list_immutable. Expected _p_Scheme_Object");
            }
        }
        scheme_make_list_immutable(arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_list_length) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_list_length(list);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_list_length. Expected _p_Scheme_Object");
            }
        }
        result = (int)scheme_list_length(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_proper_list_length) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_proper_list_length(list);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_proper_list_length. Expected _p_Scheme_Object");
            }
        }
        result = (int)scheme_proper_list_length(arg1);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_alloc_list) {
    {
        int arg1 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_alloc_list(size);");
        }
        arg1 = (int) SvIV(ST(0));
        result = (Scheme_Object *)scheme_alloc_list(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_map_1) {
    {
        Scheme_Object *(*arg1)(Scheme_Object *) = (Scheme_Object *(*)(Scheme_Object *)) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_map_1(f,l);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_f_p_Scheme_Object__p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_map_1. Expected _p_f_p_Scheme_Object__p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_map_1. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_map_1(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_car) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_car(pair);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_car. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_car(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_cdr) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_cdr(pair);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_cdr. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_cdr(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_cadr) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_cadr(pair);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_cadr. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_cadr(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_caddr) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_caddr(pair);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_caddr. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_caddr(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_vector_to_list) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_vector_to_list(vec);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_vector_to_list. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_vector_to_list(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_list_to_vector) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_list_to_vector(list);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_list_to_vector. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_list_to_vector(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_append) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_append(lstx,lsty);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_append. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_append. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_append(arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_box) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_box(v);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_box. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_box(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_unbox) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_unbox(obj);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_unbox. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_unbox(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_set_box) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *arg2 = (Scheme_Object *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_set_box(b,v);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_set_box. Expected _p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_set_box. Expected _p_Scheme_Object");
            }
        }
        scheme_set_box(arg1,arg2);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_weak_box) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_make_weak_box(v);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_make_weak_box. Expected _p_Scheme_Object");
            }
        }
        result = (Scheme_Object *)scheme_make_weak_box(arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_load) {
    {
        char *arg1 = (char *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_load(file);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        result = (Scheme_Object *)scheme_load((char const *)arg1);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_load_extension) {
    {
        char *arg1 = (char *) 0 ;
        Scheme_Env *arg2 = (Scheme_Env *) 0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_load_extension(filename,env);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_Scheme_Env,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_load_extension. Expected _p_Scheme_Env");
            }
        }
        result = (Scheme_Object *)scheme_load_extension((char const *)arg1,arg2);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_register_extension_global) {
    {
        void *arg1 = (void *) 0 ;
        long arg2 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 2) || (items > 2)) {
            SWIG_croak("Usage: scheme_register_extension_global(ptr,size);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_register_extension_global. Expected _p_void");
            }
        }
        arg2 = (long) SvIV(ST(1));
        scheme_register_extension_global(arg1,arg2);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_get_seconds) {
    {
        long result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: scheme_get_seconds();");
        }
        result = (long)scheme_get_seconds();
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_get_milliseconds) {
    {
        long result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: scheme_get_milliseconds();");
        }
        result = (long)scheme_get_milliseconds();
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_get_inexact_milliseconds) {
    {
        double result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: scheme_get_inexact_milliseconds();");
        }
        result = (double)scheme_get_inexact_milliseconds();
        
        ST(argvi) = sv_newmortal();
        sv_setnv(ST(argvi++), (double) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_get_process_milliseconds) {
    {
        long result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: scheme_get_process_milliseconds();");
        }
        result = (long)scheme_get_process_milliseconds();
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_banner) {
    {
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: scheme_banner();");
        }
        result = (char *)scheme_banner();
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_version) {
    {
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: scheme_version();");
        }
        result = (char *)scheme_version();
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_check_proc_arity) {
    {
        char *arg1 = (char *) 0 ;
        int arg2 ;
        int arg3 ;
        int arg4 ;
        Scheme_Object **arg5 = (Scheme_Object **) 0 ;
        int result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: scheme_check_proc_arity(where,a,which,argc,argv);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        arg2 = (int) SvIV(ST(1));
        arg3 = (int) SvIV(ST(2));
        arg4 = (int) SvIV(ST(3));
        {
            arg5 = _mzscheme_from_perl_arrayref_to_objects(ST(4));
        }
        result = (int)scheme_check_proc_arity((char const *)arg1,arg2,arg3,arg4,arg5);
        
        ST(argvi) = sv_newmortal();
        sv_setiv(ST(argvi++), (IV) result);
        {
            free(arg5);
        }
        XSRETURN(argvi);
        fail:
        {
            free(arg5);
        }
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_provided_string) {
    {
        Scheme_Object *arg1 = (Scheme_Object *) 0 ;
        int arg2 ;
        int *arg3 = (int *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 3) || (items > 3)) {
            SWIG_croak("Usage: scheme_make_provided_string(o,count,len);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_make_provided_string. Expected _p_Scheme_Object");
            }
        }
        arg2 = (int) SvIV(ST(1));
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_int,0) < 0) {
                SWIG_croak("Type error in argument 3 of scheme_make_provided_string. Expected _p_int");
            }
        }
        result = (char *)scheme_make_provided_string(arg1,arg2,arg3);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_make_args_string) {
    {
        char *arg1 = (char *) 0 ;
        int arg2 ;
        int arg3 ;
        Scheme_Object **arg4 = (Scheme_Object **) 0 ;
        long *arg5 = (long *) 0 ;
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: scheme_make_args_string(s,which,argc,argv,len);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        arg2 = (int) SvIV(ST(1));
        arg3 = (int) SvIV(ST(2));
        {
            arg4 = _mzscheme_from_perl_arrayref_to_objects(ST(3));
        }
        {
            if (SWIG_ConvertPtr(ST(4), (void **) &arg5, SWIGTYPE_p_long,0) < 0) {
                SWIG_croak("Type error in argument 5 of scheme_make_args_string. Expected _p_long");
            }
        }
        result = (char *)scheme_make_args_string(arg1,arg2,arg3,arg4,arg5);
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        {
            free(arg4);
        }
        XSRETURN(argvi);
        fail:
        {
            free(arg4);
        }
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_no_dumps) {
    {
        char *arg1 = (char *) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 1) || (items > 1)) {
            SWIG_croak("Usage: scheme_no_dumps(why);");
        }
        if (!SvOK((SV*) ST(0))) arg1 = 0;
        else arg1 = (char *) SvPV(ST(0), PL_na);
        scheme_no_dumps(arg1);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_system_library_subpath) {
    {
        char *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: scheme_system_library_subpath();");
        }
        result = (char *)scheme_system_library_subpath();
        
        ST(argvi) = sv_newmortal();
        if (result) {
            sv_setpv((SV*)ST(argvi++), (char *) result);
        } else {
            sv_setsv((SV*)ST(argvi++), &PL_sv_undef);
        }
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_signal_received) {
    {
        int argvi = 0;
        dXSARGS;
        
        if ((items < 0) || (items > 0)) {
            SWIG_croak("Usage: scheme_signal_received();");
        }
        scheme_signal_received();
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_dynamic_wind__SWIG_1) {
    {
        void (*arg1)(void *) = (void (*)(void *)) 0 ;
        Scheme_Object *(*arg2)(void *) = (Scheme_Object *(*)(void *)) (Scheme_Object *(*)(void *))0 ;
        void (*arg3)(void *) = (void (*)(void *)) (void (*)(void *))0 ;
        Scheme_Object *(*arg4)(void *) = (Scheme_Object *(*)(void *)) 0 ;
        void *arg5 = (void *) (void *)0 ;
        Scheme_Object *result;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: scheme_dynamic_wind(pre,act,post,jmp_handler,data);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, SWIGTYPE_p_f_p_void__void,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_dynamic_wind. Expected _p_f_p_void__void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_f_p_void__p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_dynamic_wind. Expected _p_f_p_void__p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, SWIGTYPE_p_f_p_void__void,0) < 0) {
                SWIG_croak("Type error in argument 3 of scheme_dynamic_wind. Expected _p_f_p_void__void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(3), (void **) &arg4, SWIGTYPE_p_f_p_void__p_Scheme_Object,0) < 0) {
                SWIG_croak("Type error in argument 4 of scheme_dynamic_wind. Expected _p_f_p_void__p_Scheme_Object");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(4), (void **) &arg5, 0,0) < 0) {
                SWIG_croak("Type error in argument 5 of scheme_dynamic_wind. Expected _p_void");
            }
        }
        result = (Scheme_Object *)scheme_dynamic_wind(arg1,(Scheme_Object *(*volatile )(void *))arg2,(void (*volatile )(void *))arg3,arg4,(void *volatile )arg5);
        
        ST(argvi) = sv_newmortal();
        SWIG_MakePtr(ST(argvi++), (void *) result, SWIGTYPE_p_Scheme_Object, SWIG_SHADOW|0);
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_dynamic_wind) {
    dXSARGS;
    
    if (items == 5) {
        int _v;
        {
            void *tmp;
            if (SWIG_ConvertPtr(ST(0), (void **) &tmp, SWIGTYPE_p_f_p_void__void, 0) == -1) {
                _v = 0;
            } else {
                _v = 1;
            }
        }
        if (_v) {
            {
                void *tmp;
                if (SWIG_ConvertPtr(ST(1), (void **) &tmp, SWIGTYPE_p_f_p_void__p_Scheme_Object, 0) == -1) {
                    _v = 0;
                } else {
                    _v = 1;
                }
            }
            if (_v) {
                {
                    void *tmp;
                    if (SWIG_ConvertPtr(ST(2), (void **) &tmp, SWIGTYPE_p_f_p_void__void, 0) == -1) {
                        _v = 0;
                    } else {
                        _v = 1;
                    }
                }
                if (_v) {
                    {
                        void *tmp;
                        if (SWIG_ConvertPtr(ST(3), (void **) &tmp, SWIGTYPE_p_f_p_void__p_Scheme_Object, 0) == -1) {
                            _v = 0;
                        } else {
                            _v = 1;
                        }
                    }
                    if (_v) {
                        {
                            void *tmp;
                            if (SWIG_ConvertPtr(ST(4), (void **) &tmp, 0, 0) == -1) {
                                _v = 0;
                            } else {
                                _v = 1;
                            }
                        }
                        if (_v) {
                            (*PL_markstack_ptr++);SWIG_CALLXS(_wrap_scheme_dynamic_wind__SWIG_0); return;
                        }
                    }
                }
            }
        }
    }
    if (items == 5) {
        int _v;
        {
            void *tmp;
            if (SWIG_ConvertPtr(ST(0), (void **) &tmp, SWIGTYPE_p_f_p_void__void, 0) == -1) {
                _v = 0;
            } else {
                _v = 1;
            }
        }
        if (_v) {
            {
                void *tmp;
                if (SWIG_ConvertPtr(ST(1), (void **) &tmp, SWIGTYPE_p_f_p_void__p_Scheme_Object, 0) == -1) {
                    _v = 0;
                } else {
                    _v = 1;
                }
            }
            if (_v) {
                {
                    void *tmp;
                    if (SWIG_ConvertPtr(ST(2), (void **) &tmp, SWIGTYPE_p_f_p_void__void, 0) == -1) {
                        _v = 0;
                    } else {
                        _v = 1;
                    }
                }
                if (_v) {
                    {
                        void *tmp;
                        if (SWIG_ConvertPtr(ST(3), (void **) &tmp, SWIGTYPE_p_f_p_void__p_Scheme_Object, 0) == -1) {
                            _v = 0;
                        } else {
                            _v = 1;
                        }
                    }
                    if (_v) {
                        {
                            void *tmp;
                            if (SWIG_ConvertPtr(ST(4), (void **) &tmp, 0, 0) == -1) {
                                _v = 0;
                            } else {
                                _v = 1;
                            }
                        }
                        if (_v) {
                            (*PL_markstack_ptr++);SWIG_CALLXS(_wrap_scheme_dynamic_wind__SWIG_1); return;
                        }
                    }
                }
            }
        }
    }
    
    croak("No matching function for overloaded 'scheme_dynamic_wind'");
    XSRETURN(0);
}


XS(_wrap_scheme_register_finalizer__SWIG_1) {
    {
        void *arg1 = (void *) 0 ;
        void (*arg2)(void *,void *) = (void (*)(void *,void *)) 0 ;
        void *arg3 = (void *) 0 ;
        void (**arg4)(void *,void *) = (void (**)(void *,void *)) 0 ;
        void **arg5 = (void **) 0 ;
        int argvi = 0;
        dXSARGS;
        
        if ((items < 5) || (items > 5)) {
            SWIG_croak("Usage: scheme_register_finalizer(p,f,data,oldf,olddata);");
        }
        {
            if (SWIG_ConvertPtr(ST(0), (void **) &arg1, 0,0) < 0) {
                SWIG_croak("Type error in argument 1 of scheme_register_finalizer. Expected _p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(1), (void **) &arg2, SWIGTYPE_p_f_p_void_p_void__void,0) < 0) {
                SWIG_croak("Type error in argument 2 of scheme_register_finalizer. Expected _p_f_p_void_p_void__void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(2), (void **) &arg3, 0,0) < 0) {
                SWIG_croak("Type error in argument 3 of scheme_register_finalizer. Expected _p_void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(3), (void **) &arg4, SWIGTYPE_p_p_f_p_void_p_void__void,0) < 0) {
                SWIG_croak("Type error in argument 4 of scheme_register_finalizer. Expected _p_p_f_p_void_p_void__void");
            }
        }
        {
            if (SWIG_ConvertPtr(ST(4), (void **) &arg5, SWIGTYPE_p_p_void,0) < 0) {
                SWIG_croak("Type error in argument 5 of scheme_register_finalizer. Expected _p_p_void");
            }
        }
        scheme_register_finalizer(arg1,arg2,arg3,arg4,arg5);
        
        
        XSRETURN(argvi);
        fail:
        ;
    }
    croak(Nullch);
}


XS(_wrap_scheme_register_finalizer) {
    dXSARGS;
    
    if (items == 5) {
        int _v;
        {
            void *tmp;
            if (SWIG_ConvertPtr(ST(0), (void **) &tmp, 0, 0) == -1) {
                _v = 0;
            } else {
                _v = 1;
            }
        }
        if (_v) {
            {
                void *tmp;
                if (SWIG_ConvertPtr(ST(1), (void **) &tmp, SWIGTYPE_p_f_p_void_p_void__void, 0) == -1) {
                    _v = 0;
                } else {
                    _v = 1;
                }
            }
            if (_v) {
                {
                    void *tmp;
                    if (SWIG_ConvertPtr(ST(2), (void **) &tmp, 0, 0) == -1) {
                        _v = 0;
                    } else {
                        _v = 1;
                    }
                }
                if (_v) {
                    {
                        void *tmp;
                        if (SWIG_ConvertPtr(ST(3), (void **) &tmp, SWIGTYPE_p_p_f_p_void_p_void__void, 0) == -1) {
                            _v = 0;
                        } else {
                            _v = 1;
                        }
                    }
                    if (_v) {
                        {
                            void *tmp;
                            if (SWIG_ConvertPtr(ST(4), (void **) &tmp, SWIGTYPE_p_p_void, 0) == -1) {
                                _v = 0;
                            } else {
                                _v = 1;
                            }
                        }
                        if (_v) {
                            (*PL_markstack_ptr++);SWIG_CALLXS(_wrap_scheme_register_finalizer__SWIG_0); return;
                        }
                    }
                }
            }
        }
    }
    if (items == 5) {
        int _v;
        {
            void *tmp;
            if (SWIG_ConvertPtr(ST(0), (void **) &tmp, 0, 0) == -1) {
                _v = 0;
            } else {
                _v = 1;
            }
        }
        if (_v) {
            {
                void *tmp;
                if (SWIG_ConvertPtr(ST(1), (void **) &tmp, SWIGTYPE_p_f_p_void_p_void__void, 0) == -1) {
                    _v = 0;
                } else {
                    _v = 1;
                }
            }
            if (_v) {
                {
                    void *tmp;
                    if (SWIG_ConvertPtr(ST(2), (void **) &tmp, 0, 0) == -1) {
                        _v = 0;
                    } else {
                        _v = 1;
                    }
                }
                if (_v) {
                    {
                        void *tmp;
                        if (SWIG_ConvertPtr(ST(3), (void **) &tmp, SWIGTYPE_p_p_f_p_void_p_void__void, 0) == -1) {
                            _v = 0;
                        } else {
                            _v = 1;
                        }
                    }
                    if (_v) {
                        {
                            void *tmp;
                            if (SWIG_ConvertPtr(ST(4), (void **) &tmp, SWIGTYPE_p_p_void, 0) == -1) {
                                _v = 0;
                            } else {
                                _v = 1;
                            }
                        }
                        if (_v) {
                            (*PL_markstack_ptr++);SWIG_CALLXS(_wrap_scheme_register_finalizer__SWIG_1); return;
                        }
                    }
                }
            }
        }
    }
    
    croak("No matching function for overloaded 'scheme_register_finalizer'");
    XSRETURN(0);
}



/* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */

static swig_type_info _swigt__p_f_p_void_p_void__int[] = {{"_p_f_p_void_p_void__int", 0, "int (*)(void *,void *)", 0, 0, 0, 0},{"_p_f_p_void_p_void__int", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_Scheme_Double[] = {{"_p_Scheme_Double", 0, "Scheme_Double *", 0, 0, 0, 0},{"_p_Scheme_Double", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_Scheme_Hash_Table[] = {{"_p_Scheme_Hash_Table", 0, "struct Scheme_Hash_Table *|Scheme_Hash_Table *", 0, 0, 0, 0},{"_p_Scheme_Hash_Table", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_Scheme_Bucket_Table[] = {{"_p_Scheme_Bucket_Table", 0, "struct Scheme_Bucket_Table *|Scheme_Bucket_Table *", 0, 0, 0, 0},{"_p_Scheme_Bucket_Table", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_f_p_struct_Scheme_Env__void[] = {{"_p_f_p_struct_Scheme_Env__void", 0, "void (*)(struct Scheme_Env *)|void (*)(Scheme_Env *)", 0, 0, 0, 0},{"_p_f_p_struct_Scheme_Env__void", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_p_f_p_void_p_void__void[] = {{"_p_p_f_p_void_p_void__void", 0, "void (**)(void *,void *)", 0, 0, 0, 0},{"_p_p_f_p_void_p_void__void", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_f_p_void_p_void__void[] = {{"_p_f_p_void_p_void__void", 0, "void (*)(void *,void *)", 0, 0, 0, 0},{"_p_f_p_void_p_void__void", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_f_p_void__void[] = {{"_p_f_p_void__void", 0, "void (*)(void *)", 0, 0, 0, 0},{"_p_f_p_void__void", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_f_p_struct_Scheme_Output_Port_p_void__void[] = {{"_p_f_p_struct_Scheme_Output_Port_p_void__void", 0, "void (*)(struct Scheme_Output_Port *,void *)|Scheme_Need_Wakeup_Output_Fun", 0, 0, 0, 0},{"_p_f_p_struct_Scheme_Output_Port_p_void__void", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_f_p_struct_Scheme_Output_Port__void[] = {{"_p_f_p_struct_Scheme_Output_Port__void", 0, "void (*)(struct Scheme_Output_Port *)|Scheme_Close_Output_Fun", 0, 0, 0, 0},{"_p_f_p_struct_Scheme_Output_Port__void", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_f_p_struct_Scheme_Input_Port_p_void__void[] = {{"_p_f_p_struct_Scheme_Input_Port_p_void__void", 0, "void (*)(struct Scheme_Input_Port *,void *)|Scheme_Need_Wakeup_Input_Fun", 0, 0, 0, 0},{"_p_f_p_struct_Scheme_Input_Port_p_void__void", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_f_p_struct_Scheme_Input_Port__void[] = {{"_p_f_p_struct_Scheme_Input_Port__void", 0, "void (*)(struct Scheme_Input_Port *)|Scheme_Close_Input_Fun", 0, 0, 0, 0},{"_p_f_p_struct_Scheme_Input_Port__void", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_f_p_struct_Scheme_Object_p_void__void[] = {{"_p_f_p_struct_Scheme_Object_p_void__void", 0, "void (*)(struct Scheme_Object *,void *)|Scheme_Needs_Wakeup_Fun", 0, 0, 0, 0},{"_p_f_p_struct_Scheme_Object_p_void__void", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_Scheme_Object_u_svector_val[] = {{"_p_Scheme_Object_u_svector_val", 0, "Scheme_Object_u_svector_val *", 0, 0, 0, 0},{"_p_Scheme_Object_u_svector_val", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_Scheme_Vector[] = {{"_p_Scheme_Vector", 0, "struct Scheme_Vector *|Scheme_Vector *", 0, 0, 0, 0},{"_p_Scheme_Vector", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_Scheme_Continuation_Jump_State[] = {{"_p_Scheme_Continuation_Jump_State", 0, "struct Scheme_Continuation_Jump_State *|Scheme_Continuation_Jump_State *", 0, 0, 0, 0},{"_p_Scheme_Continuation_Jump_State", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_size_t[] = {{"_p_size_t", 0, "size_t *", 0, 0, 0, 0},{"_p_size_t", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_Scheme_Continuation_Jump_State_u[] = {{"_p_Scheme_Continuation_Jump_State_u", 0, "Scheme_Continuation_Jump_State_u *", 0, 0, 0, 0},{"_p_Scheme_Continuation_Jump_State_u", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_short[] = {{"_p_short", 0, "short *|Scheme_Type *", 0, 0, 0, 0},{"_p_short", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_f_p_struct_Scheme_Object_p_f_p_struct_Scheme_Object_p_void__void_p_void__void[] = {{"_p_f_p_struct_Scheme_Object_p_f_p_struct_Scheme_Object_p_void__void_p_void__void", 0, "void (*)(struct Scheme_Object *,void (*)(struct Scheme_Object *,void *),void *)|Scheme_Exit_Closer_Func", 0, 0, 0, 0},{"_p_f_p_struct_Scheme_Object_p_f_p_struct_Scheme_Object_p_void__void_p_void__void", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_Scheme_Object_u_two_ptr_val[] = {{"_p_Scheme_Object_u_two_ptr_val", 0, "Scheme_Object_u_two_ptr_val *", 0, 0, 0, 0},{"_p_Scheme_Object_u_two_ptr_val", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_p_Scheme_Bucket[] = {{"_p_p_Scheme_Bucket", 0, "struct Scheme_Bucket **|Scheme_Bucket **", 0, 0, 0, 0},{"_p_p_Scheme_Bucket", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_Scheme_Bucket[] = {{"_p_Scheme_Bucket", 0, "struct Scheme_Bucket *|Scheme_Bucket *", 0, 0, 0, 0},{"_p_Scheme_Bucket", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_f_p_struct_Scheme_Object__int[] = {{"_p_f_p_struct_Scheme_Object__int", 0, "int (*)(struct Scheme_Object *)|Scheme_Wait_Filter_Fun", 0, 0, 0, 0},{"_p_f_p_struct_Scheme_Object__int", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_p_void[] = {{"_p_p_void", 0, "void **", 0, 0, 0, 0},{"_p_p_void", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_f_size_t__p_void[] = {{"_p_f_size_t__p_void", 0, "void *(*)(size_t)", 0, 0, 0, 0},{"_p_f_size_t__p_void", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_void[] = {{"_p_void", 0, "void *", 0, 0, 0, 0},{"_p_void", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_int[] = {{"_p_int", 0, "int *", 0, 0, 0, 0},{"_p_int", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_f_p_void_p_long_p_long__void[] = {{"_p_f_p_void_p_long_p_long__void", 0, "void (*)(void *,long *,long *)", 0, 0, 0, 0},{"_p_f_p_void_p_long_p_long__void", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_Scheme_Primitive_Proc[] = {{"_p_Scheme_Primitive_Proc", 0, "Scheme_Primitive_Proc *", 0, 0, 0, 0},{"_p_Scheme_Primitive_Proc", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_Scheme_Closed_Primitive_Proc[] = {{"_p_Scheme_Closed_Primitive_Proc", 0, "Scheme_Closed_Primitive_Proc *", 0, 0, 0, 0},{"_p_Scheme_Closed_Primitive_Proc", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_Scheme_Closed_Case_Primitive_Proc[] = {{"_p_Scheme_Closed_Case_Primitive_Proc", 0, "Scheme_Closed_Case_Primitive_Proc *", 0, 0, 0, 0},{"_p_Scheme_Closed_Case_Primitive_Proc", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_Scheme_Escaping_Cont[] = {{"_p_Scheme_Escaping_Cont", 0, "struct Scheme_Escaping_Cont *", 0, 0, 0, 0},{"_p_Scheme_Escaping_Cont", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_Scheme_Prim_W_Result_Arity[] = {{"_p_Scheme_Prim_W_Result_Arity", 0, "Scheme_Prim_W_Result_Arity *", 0, 0, 0, 0},{"_p_Scheme_Prim_W_Result_Arity", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_Scheme_Closed_Prim_W_Result_Arity[] = {{"_p_Scheme_Closed_Prim_W_Result_Arity", 0, "Scheme_Closed_Prim_W_Result_Arity *", 0, 0, 0, 0},{"_p_Scheme_Closed_Prim_W_Result_Arity", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_f_p_struct_Scheme_Output_Port_p_q_const__char_long_long_int__long[] = {{"_p_f_p_struct_Scheme_Output_Port_p_q_const__char_long_long_int__long", 0, "long (*)(struct Scheme_Output_Port *,char const *,long,long,int)|Scheme_Write_String_Fun", 0, 0, 0, 0},{"_p_f_p_struct_Scheme_Output_Port_p_q_const__char_long_long_int__long", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_f_p_void__p_Scheme_Object[] = {{"_p_f_p_void__p_Scheme_Object", 0, "struct Scheme_Object *(*)(void *)|Scheme_Object *(*)(void *)", 0, 0, 0, 0},{"_p_f_p_void__p_Scheme_Object", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_f_p_struct_Scheme_Object__p_Scheme_Object[] = {{"_p_f_p_struct_Scheme_Object__p_Scheme_Object", 0, "struct Scheme_Object *(*)(struct Scheme_Object *)|Scheme_Closure_Func", 0, 0, 0, 0},{"_p_f_p_struct_Scheme_Object__p_Scheme_Object", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_f_p_Scheme_Object_p_int__p_Scheme_Object[] = {{"_p_f_p_Scheme_Object_p_int__p_Scheme_Object", 0, "struct Scheme_Object *(*)(Scheme_Object *,int *)|Scheme_Wait_Sema_Fun", 0, 0, 0, 0},{"_p_f_p_Scheme_Object_p_int__p_Scheme_Object", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_f_p_Scheme_Object__p_Scheme_Object[] = {{"_p_f_p_Scheme_Object__p_Scheme_Object", 0, "struct Scheme_Object *(*)(Scheme_Object *)|Scheme_Object *(*)(Scheme_Object *)", 0, 0, 0, 0},{"_p_f_p_Scheme_Object__p_Scheme_Object", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_p_Scheme_Object[] = {{"_p_p_Scheme_Object", 0, "struct Scheme_Object **|Scheme_Object **", 0, 0, 0, 0},{"_p_p_Scheme_Object", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_Scheme_Object[] = {{"_p_Scheme_Object", 0, "struct Scheme_Object *|Scheme_Object *", 0, 0, 0, 0},{"_p_Scheme_Object", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_Scheme_Small_Object[] = {{"_p_Scheme_Small_Object", 0, "Scheme_Small_Object *", 0, 0, 0, 0},{"_p_Scheme_Small_Object", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_Scheme_Object_u_ptr_long_val[] = {{"_p_Scheme_Object_u_ptr_long_val", 0, "Scheme_Object_u_ptr_long_val *", 0, 0, 0, 0},{"_p_Scheme_Object_u_ptr_long_val", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_Scheme_Config[] = {{"_p_Scheme_Config", 0, "struct Scheme_Config *|Scheme_Config *", 0, 0, 0, 0},{"_p_Scheme_Config", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_Scheme_Object_u_pair_val[] = {{"_p_Scheme_Object_u_pair_val", 0, "Scheme_Object_u_pair_val *", 0, 0, 0, 0},{"_p_Scheme_Object_u_pair_val", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_f_p_struct_Scheme_Env_long_p_struct_Scheme_Object_p_void__void[] = {{"_p_f_p_struct_Scheme_Env_long_p_struct_Scheme_Object_p_void__void", 0, "void (*)(struct Scheme_Env *,long,struct Scheme_Object *,void *)|Scheme_Invoke_Proc", 0, 0, 0, 0},{"_p_f_p_struct_Scheme_Env_long_p_struct_Scheme_Object_p_void__void", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_f_int_a___p_struct_Scheme_Object__p_Scheme_Object[] = {{"_p_f_int_a___p_struct_Scheme_Object__p_Scheme_Object", 0, "struct Scheme_Object *(*)(int,struct Scheme_Object *[])|Scheme_Prim *", 0, 0, 0, 0},{"_p_f_int_a___p_struct_Scheme_Object__p_Scheme_Object", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_long[] = {{"_p_long", 0, "long *", 0, 0, 0, 0},{"_p_long", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_Scheme_Thread[] = {{"_p_Scheme_Thread", 0, "Scheme_Thread *", 0, 0, 0, 0},{"_p_Scheme_Thread", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_f_p_struct_Scheme_Input_Port_p_char_long_long_int__long[] = {{"_p_f_p_struct_Scheme_Input_Port_p_char_long_long_int__long", 0, "long (*)(struct Scheme_Input_Port *,char *,long,long,int)|Scheme_Get_String_Fun", 0, 0, 0, 0},{"_p_f_p_struct_Scheme_Input_Port_p_char_long_long_int__long", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_char[] = {{"_p_char", 0, "char *", 0, 0, 0, 0},{"_p_char", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_Scheme_Object_u_str_val[] = {{"_p_Scheme_Object_u_str_val", 0, "Scheme_Object_u_str_val *", 0, 0, 0, 0},{"_p_Scheme_Object_u_str_val", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_f_p_struct_Scheme_Input_Port_p_char_long_long_p_struct_Scheme_Object_int__long[] = {{"_p_f_p_struct_Scheme_Input_Port_p_char_long_long_p_struct_Scheme_Object_int__long", 0, "long (*)(struct Scheme_Input_Port *,char *,long,long,struct Scheme_Object *,int)|Scheme_Peek_String_Fun", 0, 0, 0, 0},{"_p_f_p_struct_Scheme_Input_Port_p_char_long_long_p_struct_Scheme_Object_int__long", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_Scheme_Jumpup_Buf[] = {{"_p_Scheme_Jumpup_Buf", 0, "Scheme_Jumpup_Buf *", 0, 0, 0, 0},{"_p_Scheme_Jumpup_Buf", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_p_Scheme_Custodian[] = {{"_p_p_Scheme_Custodian", 0, "struct Scheme_Custodian **|Scheme_Custodian_Reference *", 0, 0, 0, 0},{"_p_p_Scheme_Custodian", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_Scheme_Custodian[] = {{"_p_Scheme_Custodian", 0, "struct Scheme_Custodian *|Scheme_Custodian *", 0, 0, 0, 0},{"_p_Scheme_Custodian", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_Scheme_Jumpup_Buf_Holder[] = {{"_p_Scheme_Jumpup_Buf_Holder", 0, "struct Scheme_Jumpup_Buf_Holder *|Scheme_Jumpup_Buf_Holder *", 0, 0, 0, 0},{"_p_Scheme_Jumpup_Buf_Holder", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_unsigned_long[] = {{"_p_unsigned_long", 0, "unsigned long *", 0, 0, 0, 0},{"_p_unsigned_long", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_Scheme_Symbol[] = {{"_p_Scheme_Symbol", 0, "struct Scheme_Symbol *|Scheme_Symbol *", 0, 0, 0, 0},{"_p_Scheme_Symbol", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_Scheme_Object_u[] = {{"_p_Scheme_Object_u", 0, "Scheme_Object_u *", 0, 0, 0, 0},{"_p_Scheme_Object_u", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_Scheme_Small_Object_u[] = {{"_p_Scheme_Small_Object_u", 0, "Scheme_Small_Object_u *", 0, 0, 0, 0},{"_p_Scheme_Small_Object_u", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_unsigned_int[] = {{"_p_unsigned_int", 0, "unsigned int *", 0, 0, 0, 0},{"_p_unsigned_int", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_unsigned_char[] = {{"_p_unsigned_char", 0, "unsigned char *", 0, 0, 0, 0},{"_p_unsigned_char", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_Scheme_Env[] = {{"_p_Scheme_Env", 0, "struct Scheme_Env *|Scheme_Env *", 0, 0, 0, 0},{"_p_Scheme_Env", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_f_p_void_int_a___p_struct_Scheme_Object__p_Scheme_Object[] = {{"_p_f_p_void_int_a___p_struct_Scheme_Object__p_Scheme_Object", 0, "struct Scheme_Object *(*)(void *,int,struct Scheme_Object *[])|Scheme_Closed_Prim *", 0, 0, 0, 0},{"_p_f_p_void_int_a___p_struct_Scheme_Object__p_Scheme_Object", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_Scheme_Cont_Frame_Data[] = {{"_p_Scheme_Cont_Frame_Data", 0, "struct Scheme_Cont_Frame_Data *|Scheme_Cont_Frame_Data *", 0, 0, 0, 0},{"_p_Scheme_Cont_Frame_Data", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_Scheme_Output_Port[] = {{"_p_Scheme_Output_Port", 0, "struct Scheme_Output_Port *|Scheme_Output_Port *", 0, 0, 0, 0},{"_p_Scheme_Output_Port", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_Scheme_Input_Port[] = {{"_p_Scheme_Input_Port", 0, "struct Scheme_Input_Port *|Scheme_Input_Port *", 0, 0, 0, 0},{"_p_Scheme_Input_Port", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_Perl_Scalar[] = {{"_p_Perl_Scalar", 0, "Perl_Scalar *", 0, 0, 0, 0},{"_p_Perl_Scalar", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_FILE[] = {{"_p_FILE", 0, "FILE *", 0, 0, 0, 0},{"_p_FILE", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_Scheme_Object_u_two_int_val[] = {{"_p_Scheme_Object_u_two_int_val", 0, "Scheme_Object_u_two_int_val *", 0, 0, 0, 0},{"_p_Scheme_Object_u_two_int_val", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_Scheme_Object_u_ptr_int_val[] = {{"_p_Scheme_Object_u_ptr_int_val", 0, "Scheme_Object_u_ptr_int_val *", 0, 0, 0, 0},{"_p_Scheme_Object_u_ptr_int_val", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_f_p_struct_Scheme_Output_Port__int[] = {{"_p_f_p_struct_Scheme_Output_Port__int", 0, "int (*)(struct Scheme_Output_Port *)|Scheme_Out_Ready_Fun", 0, 0, 0, 0},{"_p_f_p_struct_Scheme_Output_Port__int", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_f_p_struct_Scheme_Input_Port__int[] = {{"_p_f_p_struct_Scheme_Input_Port__int", 0, "int (*)(struct Scheme_Input_Port *)|Scheme_In_Ready_Fun", 0, 0, 0, 0},{"_p_f_p_struct_Scheme_Input_Port__int", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};

static swig_type_info *swig_types_initial[] = {
_swigt__p_f_p_void_p_void__int, 
_swigt__p_Scheme_Double, 
_swigt__p_Scheme_Hash_Table, 
_swigt__p_Scheme_Bucket_Table, 
_swigt__p_f_p_struct_Scheme_Env__void, 
_swigt__p_p_f_p_void_p_void__void, 
_swigt__p_f_p_void_p_void__void, 
_swigt__p_f_p_void__void, 
_swigt__p_f_p_struct_Scheme_Output_Port_p_void__void, 
_swigt__p_f_p_struct_Scheme_Output_Port__void, 
_swigt__p_f_p_struct_Scheme_Input_Port_p_void__void, 
_swigt__p_f_p_struct_Scheme_Input_Port__void, 
_swigt__p_f_p_struct_Scheme_Object_p_void__void, 
_swigt__p_Scheme_Object_u_svector_val, 
_swigt__p_Scheme_Vector, 
_swigt__p_Scheme_Continuation_Jump_State, 
_swigt__p_size_t, 
_swigt__p_Scheme_Continuation_Jump_State_u, 
_swigt__p_short, 
_swigt__p_f_p_struct_Scheme_Object_p_f_p_struct_Scheme_Object_p_void__void_p_void__void, 
_swigt__p_Scheme_Object_u_two_ptr_val, 
_swigt__p_p_Scheme_Bucket, 
_swigt__p_Scheme_Bucket, 
_swigt__p_f_p_struct_Scheme_Object__int, 
_swigt__p_p_void, 
_swigt__p_f_size_t__p_void, 
_swigt__p_void, 
_swigt__p_int, 
_swigt__p_f_p_void_p_long_p_long__void, 
_swigt__p_Scheme_Primitive_Proc, 
_swigt__p_Scheme_Closed_Primitive_Proc, 
_swigt__p_Scheme_Closed_Case_Primitive_Proc, 
_swigt__p_Scheme_Escaping_Cont, 
_swigt__p_Scheme_Prim_W_Result_Arity, 
_swigt__p_Scheme_Closed_Prim_W_Result_Arity, 
_swigt__p_f_p_struct_Scheme_Output_Port_p_q_const__char_long_long_int__long, 
_swigt__p_f_p_void__p_Scheme_Object, 
_swigt__p_f_p_struct_Scheme_Object__p_Scheme_Object, 
_swigt__p_f_p_Scheme_Object_p_int__p_Scheme_Object, 
_swigt__p_f_p_Scheme_Object__p_Scheme_Object, 
_swigt__p_p_Scheme_Object, 
_swigt__p_Scheme_Object, 
_swigt__p_Scheme_Small_Object, 
_swigt__p_Scheme_Object_u_ptr_long_val, 
_swigt__p_Scheme_Config, 
_swigt__p_Scheme_Object_u_pair_val, 
_swigt__p_f_p_struct_Scheme_Env_long_p_struct_Scheme_Object_p_void__void, 
_swigt__p_f_int_a___p_struct_Scheme_Object__p_Scheme_Object, 
_swigt__p_long, 
_swigt__p_Scheme_Thread, 
_swigt__p_f_p_struct_Scheme_Input_Port_p_char_long_long_int__long, 
_swigt__p_char, 
_swigt__p_Scheme_Object_u_str_val, 
_swigt__p_f_p_struct_Scheme_Input_Port_p_char_long_long_p_struct_Scheme_Object_int__long, 
_swigt__p_Scheme_Jumpup_Buf, 
_swigt__p_p_Scheme_Custodian, 
_swigt__p_Scheme_Custodian, 
_swigt__p_Scheme_Jumpup_Buf_Holder, 
_swigt__p_unsigned_long, 
_swigt__p_Scheme_Symbol, 
_swigt__p_Scheme_Object_u, 
_swigt__p_Scheme_Small_Object_u, 
_swigt__p_unsigned_int, 
_swigt__p_unsigned_char, 
_swigt__p_Scheme_Env, 
_swigt__p_f_p_void_int_a___p_struct_Scheme_Object__p_Scheme_Object, 
_swigt__p_Scheme_Cont_Frame_Data, 
_swigt__p_Scheme_Output_Port, 
_swigt__p_Scheme_Input_Port, 
_swigt__p_Perl_Scalar, 
_swigt__p_FILE, 
_swigt__p_Scheme_Object_u_two_int_val, 
_swigt__p_Scheme_Object_u_ptr_int_val, 
_swigt__p_f_p_struct_Scheme_Output_Port__int, 
_swigt__p_f_p_struct_Scheme_Input_Port__int, 
0
};


/* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */

static swig_constant_info swig_constants[] = {
{ SWIG_INT,     (char *) SWIG_prefix "SCHEME_STACK_SIZE", (long) 5000, 0, 0, 0},
{ SWIG_STRING,  (char *) SWIG_prefix "SYSTEM_TYPE_NAME", 0, 0, (void *)"unix", 0},
{ SWIG_INT,     (char *) SWIG_prefix "STACK_SAFETY_MARGIN", (long) 50000, 0, 0, 0},
{ SWIG_STRING,  (char *) SWIG_prefix "_MZ_SPECIAL_TAG", 0, 0, (void *)"\0", 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZSCHEME_VERSION_MAJOR", (long) 208, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZSCHEME_VERSION_MINOR", (long) 0, 0, 0, 0},
{ SWIG_STRING,  (char *) SWIG_prefix "MZSCHEME_VERSION", 0, 0, (void *)"208", 0},
{ SWIG_INT,     (char *) SWIG_prefix "SCHEME_DIRECT_EMBEDDED", (long) 1, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_toplevel_type", (long) scheme_toplevel_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_local_type", (long) scheme_local_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_local_unbox_type", (long) scheme_local_unbox_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_syntax_type", (long) scheme_syntax_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_application_type", (long) scheme_application_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_application2_type", (long) scheme_application2_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_application3_type", (long) scheme_application3_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_sequence_type", (long) scheme_sequence_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_branch_type", (long) scheme_branch_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_unclosed_procedure_type", (long) scheme_unclosed_procedure_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_let_value_type", (long) scheme_let_value_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_let_void_type", (long) scheme_let_void_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_letrec_type", (long) scheme_letrec_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_let_one_type", (long) scheme_let_one_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_with_cont_mark_type", (long) scheme_with_cont_mark_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "_scheme_values_types_", (long) _scheme_values_types_, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_compiled_unclosed_procedure_type", (long) scheme_compiled_unclosed_procedure_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_compiled_let_value_type", (long) scheme_compiled_let_value_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_compiled_let_void_type", (long) scheme_compiled_let_void_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_compiled_syntax_type", (long) scheme_compiled_syntax_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_compiled_toplevel_type", (long) scheme_compiled_toplevel_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_compiled_quote_syntax_type", (long) scheme_compiled_quote_syntax_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_quote_compilation_type", (long) scheme_quote_compilation_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_variable_type", (long) scheme_variable_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_module_variable_type", (long) scheme_module_variable_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "_scheme_compiled_values_types_", (long) _scheme_compiled_values_types_, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_prim_type", (long) scheme_prim_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_closed_prim_type", (long) scheme_closed_prim_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_closure_type", (long) scheme_closure_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_case_closure_type", (long) scheme_case_closure_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_cont_type", (long) scheme_cont_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_escaping_cont_type", (long) scheme_escaping_cont_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_proc_struct_type", (long) scheme_proc_struct_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_structure_type", (long) scheme_structure_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_char_type", (long) scheme_char_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_integer_type", (long) scheme_integer_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_bignum_type", (long) scheme_bignum_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_rational_type", (long) scheme_rational_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_float_type", (long) scheme_float_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_double_type", (long) scheme_double_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_complex_izi_type", (long) scheme_complex_izi_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_complex_type", (long) scheme_complex_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_string_type", (long) scheme_string_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_symbol_type", (long) scheme_symbol_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_null_type", (long) scheme_null_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_pair_type", (long) scheme_pair_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_vector_type", (long) scheme_vector_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_inspector_type", (long) scheme_inspector_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_input_port_type", (long) scheme_input_port_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_output_port_type", (long) scheme_output_port_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_eof_type", (long) scheme_eof_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_true_type", (long) scheme_true_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_false_type", (long) scheme_false_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_void_type", (long) scheme_void_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_syntax_compiler_type", (long) scheme_syntax_compiler_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_macro_type", (long) scheme_macro_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_box_type", (long) scheme_box_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_thread_type", (long) scheme_thread_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_stx_offset_type", (long) scheme_stx_offset_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_cont_mark_set_type", (long) scheme_cont_mark_set_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_sema_type", (long) scheme_sema_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_hash_table_type", (long) scheme_hash_table_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_c_pointer_type", (long) scheme_c_pointer_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_weak_box_type", (long) scheme_weak_box_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_struct_type_type", (long) scheme_struct_type_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_module_index_type", (long) scheme_module_index_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_set_macro_type", (long) scheme_set_macro_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_listener_type", (long) scheme_listener_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_namespace_type", (long) scheme_namespace_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_config_type", (long) scheme_config_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_stx_type", (long) scheme_stx_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_will_executor_type", (long) scheme_will_executor_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_custodian_type", (long) scheme_custodian_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_random_state_type", (long) scheme_random_state_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_regexp_type", (long) scheme_regexp_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_bucket_type", (long) scheme_bucket_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_bucket_table_type", (long) scheme_bucket_table_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_subprocess_type", (long) scheme_subprocess_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_compilation_top_type", (long) scheme_compilation_top_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_wrap_chunk_type", (long) scheme_wrap_chunk_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_eval_waiting_type", (long) scheme_eval_waiting_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_tail_call_waiting_type", (long) scheme_tail_call_waiting_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_undefined_type", (long) scheme_undefined_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_struct_property_type", (long) scheme_struct_property_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_multiple_values_type", (long) scheme_multiple_values_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_placeholder_type", (long) scheme_placeholder_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_case_lambda_sequence_type", (long) scheme_case_lambda_sequence_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_begin0_sequence_type", (long) scheme_begin0_sequence_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_rename_table_type", (long) scheme_rename_table_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_module_type", (long) scheme_module_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_svector_type", (long) scheme_svector_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_lazy_macro_type", (long) scheme_lazy_macro_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_resolve_prefix_type", (long) scheme_resolve_prefix_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_security_guard_type", (long) scheme_security_guard_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_indent_type", (long) scheme_indent_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_udp_type", (long) scheme_udp_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_udp_waitable_type", (long) scheme_udp_waitable_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_id_macro_type", (long) scheme_id_macro_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_waitable_set_type", (long) scheme_waitable_set_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_wrapped_waitable_type", (long) scheme_wrapped_waitable_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_nack_guard_waitable_type", (long) scheme_nack_guard_waitable_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_semaphore_repost_type", (long) scheme_semaphore_repost_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_channel_type", (long) scheme_channel_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_channel_put_type", (long) scheme_channel_put_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_thread_resume_type", (long) scheme_thread_resume_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_thread_suspend_type", (long) scheme_thread_suspend_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_thread_dead_type", (long) scheme_thread_dead_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_poll_waitable_type", (long) scheme_poll_waitable_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_nack_waitable_type", (long) scheme_nack_waitable_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_module_registry_type", (long) scheme_module_registry_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_thread_set_type", (long) scheme_thread_set_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_reserved1_type", (long) scheme_reserved1_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_reserved2_type", (long) scheme_reserved2_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "scheme_reserved3_type", (long) scheme_reserved3_type, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "_scheme_last_type_", (long) _scheme_last_type_, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "SCHEME_PRIM_IS_FOLDING", (long) 1, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "SCHEME_PRIM_IS_PRIMITIVE", (long) 2, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "SCHEME_PRIM_IS_STRUCT_PROC", (long) 4, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "SCHEME_PRIM_IS_STRUCT_SETTER", (long) 8, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "SCHEME_PRIM_IS_PARAMETER", (long) 16, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "SCHEME_PRIM_IS_STRUCT_GETTER", (long) 32, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "SCHEME_PRIM_IS_STRUCT_PRED", (long) 64, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "SCHEME_PRIM_IS_STRUCT_CONSTR", (long) 128, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "SCHEME_PRIM_IS_MULTI_RESULT", (long) 256, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "SCHEME_PRIM_IS_GENERIC", (long) 512, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "SCHEME_PRIM_IS_USER_PARAMETER", (long) 1024, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "SCHEME_PRIM_IS_METHOD", (long) 2048, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "SCHEME_hash_string", (long) SCHEME_hash_string, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "SCHEME_hash_ptr", (long) SCHEME_hash_ptr, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "SCHEME_hash_bound_id", (long) SCHEME_hash_bound_id, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "SCHEME_hash_weak_ptr", (long) SCHEME_hash_weak_ptr, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_ENV", (long) MZCONFIG_ENV, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_INPUT_PORT", (long) MZCONFIG_INPUT_PORT, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_OUTPUT_PORT", (long) MZCONFIG_OUTPUT_PORT, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_ERROR_PORT", (long) MZCONFIG_ERROR_PORT, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_ENABLE_BREAK", (long) MZCONFIG_ENABLE_BREAK, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_ERROR_DISPLAY_HANDLER", (long) MZCONFIG_ERROR_DISPLAY_HANDLER, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_ERROR_PRINT_VALUE_HANDLER", (long) MZCONFIG_ERROR_PRINT_VALUE_HANDLER, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_EXIT_HANDLER", (long) MZCONFIG_EXIT_HANDLER, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_EXN_HANDLER", (long) MZCONFIG_EXN_HANDLER, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_INIT_EXN_HANDLER", (long) MZCONFIG_INIT_EXN_HANDLER, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_EVAL_HANDLER", (long) MZCONFIG_EVAL_HANDLER, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_LOAD_HANDLER", (long) MZCONFIG_LOAD_HANDLER, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_PRINT_HANDLER", (long) MZCONFIG_PRINT_HANDLER, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_PROMPT_READ_HANDLER", (long) MZCONFIG_PROMPT_READ_HANDLER, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_CAN_READ_GRAPH", (long) MZCONFIG_CAN_READ_GRAPH, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_CAN_READ_COMPILED", (long) MZCONFIG_CAN_READ_COMPILED, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_CAN_READ_BOX", (long) MZCONFIG_CAN_READ_BOX, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_CAN_READ_PIPE_QUOTE", (long) MZCONFIG_CAN_READ_PIPE_QUOTE, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_CAN_READ_DOT", (long) MZCONFIG_CAN_READ_DOT, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_CAN_READ_QUASI", (long) MZCONFIG_CAN_READ_QUASI, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_READ_DECIMAL_INEXACT", (long) MZCONFIG_READ_DECIMAL_INEXACT, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_PRINT_GRAPH", (long) MZCONFIG_PRINT_GRAPH, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_PRINT_STRUCT", (long) MZCONFIG_PRINT_STRUCT, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_PRINT_BOX", (long) MZCONFIG_PRINT_BOX, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_PRINT_VEC_SHORTHAND", (long) MZCONFIG_PRINT_VEC_SHORTHAND, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_PRINT_HASH_TABLE", (long) MZCONFIG_PRINT_HASH_TABLE, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_CASE_SENS", (long) MZCONFIG_CASE_SENS, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_SQUARE_BRACKETS_ARE_PARENS", (long) MZCONFIG_SQUARE_BRACKETS_ARE_PARENS, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_CURLY_BRACES_ARE_PARENS", (long) MZCONFIG_CURLY_BRACES_ARE_PARENS, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_ERROR_PRINT_WIDTH", (long) MZCONFIG_ERROR_PRINT_WIDTH, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_ERROR_ESCAPE_HANDLER", (long) MZCONFIG_ERROR_ESCAPE_HANDLER, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_ALLOW_SET_UNDEFINED", (long) MZCONFIG_ALLOW_SET_UNDEFINED, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_CUSTODIAN", (long) MZCONFIG_CUSTODIAN, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_INSPECTOR", (long) MZCONFIG_INSPECTOR, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_USE_COMPILED_KIND", (long) MZCONFIG_USE_COMPILED_KIND, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_LOAD_DIRECTORY", (long) MZCONFIG_LOAD_DIRECTORY, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_COLLECTION_PATHS", (long) MZCONFIG_COLLECTION_PATHS, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_PORT_PRINT_HANDLER", (long) MZCONFIG_PORT_PRINT_HANDLER, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_LOAD_EXTENSION_HANDLER", (long) MZCONFIG_LOAD_EXTENSION_HANDLER, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_CURRENT_DIRECTORY", (long) MZCONFIG_CURRENT_DIRECTORY, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_RANDOM_STATE", (long) MZCONFIG_RANDOM_STATE, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_CURRENT_MODULE_RESOLVER", (long) MZCONFIG_CURRENT_MODULE_RESOLVER, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_CURRENT_MODULE_PREFIX", (long) MZCONFIG_CURRENT_MODULE_PREFIX, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_ERROR_PRINT_SRCLOC", (long) MZCONFIG_ERROR_PRINT_SRCLOC, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_CMDLINE_ARGS", (long) MZCONFIG_CMDLINE_ARGS, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_LOCALE", (long) MZCONFIG_LOCALE, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_SECURITY_GUARD", (long) MZCONFIG_SECURITY_GUARD, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_PORT_COUNT_LINES", (long) MZCONFIG_PORT_COUNT_LINES, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_SCHEDULER_RANDOM_STATE", (long) MZCONFIG_SCHEDULER_RANDOM_STATE, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZCONFIG_THREAD_SET", (long) MZCONFIG_THREAD_SET, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "__MZCONFIG_BUILTIN_COUNT__", (long) __MZCONFIG_BUILTIN_COUNT__, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "SCHEME_SPECIAL", (long) (-2), 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZEXN", (long) MZEXN, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZEXN_USER", (long) MZEXN_USER, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZEXN_VARIABLE", (long) MZEXN_VARIABLE, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZEXN_APPLICATION", (long) MZEXN_APPLICATION, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZEXN_APPLICATION_ARITY", (long) MZEXN_APPLICATION_ARITY, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZEXN_APPLICATION_TYPE", (long) MZEXN_APPLICATION_TYPE, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZEXN_APPLICATION_MISMATCH", (long) MZEXN_APPLICATION_MISMATCH, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZEXN_APPLICATION_DIVIDE_BY_ZERO", (long) MZEXN_APPLICATION_DIVIDE_BY_ZERO, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZEXN_APPLICATION_CONTINUATION", (long) MZEXN_APPLICATION_CONTINUATION, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZEXN_SYNTAX", (long) MZEXN_SYNTAX, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZEXN_READ", (long) MZEXN_READ, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZEXN_READ_EOF", (long) MZEXN_READ_EOF, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZEXN_READ_NON_CHAR", (long) MZEXN_READ_NON_CHAR, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZEXN_I_O", (long) MZEXN_I_O, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZEXN_I_O_PORT", (long) MZEXN_I_O_PORT, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZEXN_I_O_PORT_READ", (long) MZEXN_I_O_PORT_READ, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZEXN_I_O_PORT_WRITE", (long) MZEXN_I_O_PORT_WRITE, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZEXN_I_O_PORT_CLOSED", (long) MZEXN_I_O_PORT_CLOSED, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZEXN_I_O_FILESYSTEM", (long) MZEXN_I_O_FILESYSTEM, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZEXN_I_O_TCP", (long) MZEXN_I_O_TCP, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZEXN_I_O_UDP", (long) MZEXN_I_O_UDP, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZEXN_THREAD", (long) MZEXN_THREAD, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZEXN_MODULE", (long) MZEXN_MODULE, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZEXN_BREAK", (long) MZEXN_BREAK, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZEXN_SPECIAL_COMMENT", (long) MZEXN_SPECIAL_COMMENT, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZEXN_MISC", (long) MZEXN_MISC, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZEXN_MISC_UNSUPPORTED", (long) MZEXN_MISC_UNSUPPORTED, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZEXN_MISC_OUT_OF_MEMORY", (long) MZEXN_MISC_OUT_OF_MEMORY, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "MZEXN_OTHER", (long) MZEXN_OTHER, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "SCHEME_GUARD_FILE_READ", (long) 0x1, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "SCHEME_GUARD_FILE_WRITE", (long) 0x2, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "SCHEME_GUARD_FILE_EXECUTE", (long) 0x4, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "SCHEME_GUARD_FILE_DELETE", (long) 0x8, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "SCHEME_GUARD_FILE_EXISTS", (long) 0x10, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "SCHEME_SNF_FOR_TS", (long) 0x1, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "SCHEME_SNF_PIPE_QUOTE", (long) 0x2, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "SCHEME_SNF_NO_PIPE_QUOTE", (long) 0x4, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "SCHEME_SNF_NEED_CASE", (long) 0x8, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "SCHEME_STRUCT_NO_TYPE", (long) 0x01, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "SCHEME_STRUCT_NO_CONSTR", (long) 0x02, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "SCHEME_STRUCT_NO_PRED", (long) 0x04, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "SCHEME_STRUCT_NO_GET", (long) 0x08, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "SCHEME_STRUCT_NO_SET", (long) 0x10, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "SCHEME_STRUCT_GEN_GET", (long) 0x20, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "SCHEME_STRUCT_GEN_SET", (long) 0x40, 0, 0, 0},
{ SWIG_INT,     (char *) SWIG_prefix "SCHEME_STRUCT_EXPTIME", (long) 0x80, 0, 0, 0},
{0,0,0,0,0,0}
};
#ifdef __cplusplus
}
#endif
static swig_variable_info swig_variables[] = {
    { "Language::MzScheme::scheme_case_sensitive", MAGIC_CLASS _wrap_set_scheme_case_sensitive, MAGIC_CLASS _wrap_val_scheme_case_sensitive,0 },
    { "Language::MzScheme::scheme_config", MAGIC_CLASS _wrap_set_scheme_config, MAGIC_CLASS _wrap_val_scheme_config,&SWIGTYPE_p_Scheme_Config },
    { "Language::MzScheme::scheme_current_thread", MAGIC_CLASS _wrap_set_scheme_current_thread, MAGIC_CLASS _wrap_val_scheme_current_thread,&SWIGTYPE_p_Scheme_Thread },
    { "Language::MzScheme::scheme_fuel_counter", MAGIC_CLASS _wrap_set_scheme_fuel_counter, MAGIC_CLASS _wrap_val_scheme_fuel_counter,0 },
    { "Language::MzScheme::scheme_eof", MAGIC_CLASS _wrap_set_scheme_eof, MAGIC_CLASS _wrap_val_scheme_eof,&SWIGTYPE_p_Scheme_Object },
    { "Language::MzScheme::scheme_null", MAGIC_CLASS _wrap_set_scheme_null, MAGIC_CLASS _wrap_val_scheme_null,&SWIGTYPE_p_Scheme_Object },
    { "Language::MzScheme::scheme_true", MAGIC_CLASS _wrap_set_scheme_true, MAGIC_CLASS _wrap_val_scheme_true,&SWIGTYPE_p_Scheme_Object },
    { "Language::MzScheme::scheme_false", MAGIC_CLASS _wrap_set_scheme_false, MAGIC_CLASS _wrap_val_scheme_false,&SWIGTYPE_p_Scheme_Object },
    { "Language::MzScheme::scheme_void", MAGIC_CLASS _wrap_set_scheme_void, MAGIC_CLASS _wrap_val_scheme_void,&SWIGTYPE_p_Scheme_Object },
    { "Language::MzScheme::scheme_undefined", MAGIC_CLASS _wrap_set_scheme_undefined, MAGIC_CLASS _wrap_val_scheme_undefined,&SWIGTYPE_p_Scheme_Object },
    { "Language::MzScheme::scheme_tail_call_waiting", MAGIC_CLASS _wrap_set_scheme_tail_call_waiting, MAGIC_CLASS _wrap_val_scheme_tail_call_waiting,&SWIGTYPE_p_Scheme_Object },
    { "Language::MzScheme::scheme_multiple_values", MAGIC_CLASS _wrap_set_scheme_multiple_values, MAGIC_CLASS _wrap_val_scheme_multiple_values,&SWIGTYPE_p_Scheme_Object },
    { "Language::MzScheme::scheme_char_constants", MAGIC_CLASS _wrap_set_scheme_char_constants, MAGIC_CLASS _wrap_val_scheme_char_constants,&SWIGTYPE_p_p_Scheme_Object },
{0,0,0,0}
};
static swig_command_info swig_commands[] = {
{"Language::MzScheme::mzscheme_init", _wrap_mzscheme_init},
{"Language::MzScheme::mzscheme_make_perl_prim_w_arity", _wrap_mzscheme_make_perl_prim_w_arity},
{"Language::MzScheme::mzscheme_make_perl_object_w_arity", _wrap_mzscheme_make_perl_object_w_arity},
{"Language::MzScheme::mzscheme_from_perl_scalar", _wrap_mzscheme_from_perl_scalar},
{"Language::MzScheme::mzscheme_from_perl_symbol", _wrap_mzscheme_from_perl_symbol},
{"Language::MzScheme::mzscheme_from_perl_arrayref", _wrap_mzscheme_from_perl_arrayref},
{"Language::MzScheme::mzscheme_from_perl_hashref", _wrap_mzscheme_from_perl_hashref},
{"Language::MzScheme::mzscheme_to_perl_scalar", _wrap_mzscheme_to_perl_scalar},
{"Language::MzScheme::mzscheme_do_apply", _wrap_mzscheme_do_apply},
{"Language::MzScheme::mzscheme_do_eval", _wrap_mzscheme_do_eval},
{"Language::MzScheme::mzscheme_do_eval_string_all", _wrap_mzscheme_do_eval_string_all},
{"Language::MzScheme::MZSCHEME_REFADDR", _wrap_MZSCHEME_REFADDR},
{"Language::MzScheme::MZSCHEME_UNDEFP", _wrap_MZSCHEME_UNDEFP},
{"Language::MzScheme::MZSCHEME_ALISTP", _wrap_MZSCHEME_ALISTP},
{"Language::MzScheme::MZSCHEME_CODE_REFP", _wrap_MZSCHEME_CODE_REFP},
{"Language::MzScheme::MZSCHEME_HASH_REFP", _wrap_MZSCHEME_HASH_REFP},
{"Language::MzScheme::MZSCHEME_ARRAY_REFP", _wrap_MZSCHEME_ARRAY_REFP},
{"Language::MzScheme::MZSCHEME_GLOB_REFP", _wrap_MZSCHEME_GLOB_REFP},
{"Language::MzScheme::MZSCHEME_SCALAR_REFP", _wrap_MZSCHEME_SCALAR_REFP},
{"Language::MzScheme::MZSCHEME_PERLP", _wrap_MZSCHEME_PERLP},
{"Language::MzScheme::SCHEME_TYPE", _wrap_SCHEME_TYPE},
{"Language::MzScheme::SCHEME_PROCP", _wrap_SCHEME_PROCP},
{"Language::MzScheme::SCHEME_SYNTAXP", _wrap_SCHEME_SYNTAXP},
{"Language::MzScheme::SCHEME_PRIMP", _wrap_SCHEME_PRIMP},
{"Language::MzScheme::SCHEME_CLSD_PRIMP", _wrap_SCHEME_CLSD_PRIMP},
{"Language::MzScheme::SCHEME_CONTP", _wrap_SCHEME_CONTP},
{"Language::MzScheme::SCHEME_ECONTP", _wrap_SCHEME_ECONTP},
{"Language::MzScheme::SCHEME_PROC_STRUCTP", _wrap_SCHEME_PROC_STRUCTP},
{"Language::MzScheme::SCHEME_STRUCT_PROCP", _wrap_SCHEME_STRUCT_PROCP},
{"Language::MzScheme::SCHEME_GENERICP", _wrap_SCHEME_GENERICP},
{"Language::MzScheme::SCHEME_CLOSUREP", _wrap_SCHEME_CLOSUREP},
{"Language::MzScheme::SCHEME_CHARP", _wrap_SCHEME_CHARP},
{"Language::MzScheme::SCHEME_STRINGP", _wrap_SCHEME_STRINGP},
{"Language::MzScheme::SCHEME_SYMBOLP", _wrap_SCHEME_SYMBOLP},
{"Language::MzScheme::SCHEME_STRSYMP", _wrap_SCHEME_STRSYMP},
{"Language::MzScheme::SCHEME_BOOLP", _wrap_SCHEME_BOOLP},
{"Language::MzScheme::SCHEME_FALSEP", _wrap_SCHEME_FALSEP},
{"Language::MzScheme::SCHEME_TRUEP", _wrap_SCHEME_TRUEP},
{"Language::MzScheme::SCHEME_EOFP", _wrap_SCHEME_EOFP},
{"Language::MzScheme::SCHEME_VOIDP", _wrap_SCHEME_VOIDP},
{"Language::MzScheme::SCHEME_NULLP", _wrap_SCHEME_NULLP},
{"Language::MzScheme::SCHEME_PAIRP", _wrap_SCHEME_PAIRP},
{"Language::MzScheme::SCHEME_LISTP", _wrap_SCHEME_LISTP},
{"Language::MzScheme::SCHEME_VECTORP", _wrap_SCHEME_VECTORP},
{"Language::MzScheme::SCHEME_BOXP", _wrap_SCHEME_BOXP},
{"Language::MzScheme::SCHEME_BUCKTP", _wrap_SCHEME_BUCKTP},
{"Language::MzScheme::SCHEME_HASHTP", _wrap_SCHEME_HASHTP},
{"Language::MzScheme::SCHEME_INPORTP", _wrap_SCHEME_INPORTP},
{"Language::MzScheme::SCHEME_OUTPORTP", _wrap_SCHEME_OUTPORTP},
{"Language::MzScheme::SCHEME_CHAR_VAL", _wrap_SCHEME_CHAR_VAL},
{"Language::MzScheme::SCHEME_INT_VAL", _wrap_SCHEME_INT_VAL},
{"Language::MzScheme::SCHEME_DBL_VAL", _wrap_SCHEME_DBL_VAL},
{"Language::MzScheme::SCHEME_FLT_VAL", _wrap_SCHEME_FLT_VAL},
{"Language::MzScheme::SCHEME_FLOAT_VAL", _wrap_SCHEME_FLOAT_VAL},
{"Language::MzScheme::SCHEME_STR_VAL", _wrap_SCHEME_STR_VAL},
{"Language::MzScheme::SCHEME_STRTAG_VAL", _wrap_SCHEME_STRTAG_VAL},
{"Language::MzScheme::SCHEME_STRLEN_VAL", _wrap_SCHEME_STRLEN_VAL},
{"Language::MzScheme::SCHEME_SYM_VAL", _wrap_SCHEME_SYM_VAL},
{"Language::MzScheme::SCHEME_SYM_LEN", _wrap_SCHEME_SYM_LEN},
{"Language::MzScheme::SCHEME_SYMSTR_OFFSET", _wrap_SCHEME_SYMSTR_OFFSET},
{"Language::MzScheme::SCHEME_STRSYM_VAL", _wrap_SCHEME_STRSYM_VAL},
{"Language::MzScheme::SCHEME_BOX_VAL", _wrap_SCHEME_BOX_VAL},
{"Language::MzScheme::SCHEME_VEC_SIZE", _wrap_SCHEME_VEC_SIZE},
{"Language::MzScheme::SCHEME_VEC_ELS", _wrap_SCHEME_VEC_ELS},
{"Language::MzScheme::SCHEME_VEC_BASE", _wrap_SCHEME_VEC_BASE},
{"Language::MzScheme::SCHEME_CAR", _wrap_SCHEME_CAR},
{"Language::MzScheme::SCHEME_CDR", _wrap_SCHEME_CDR},
{"Language::MzScheme::SCHEME_CADR", _wrap_SCHEME_CADR},
{"Language::MzScheme::SCHEME_CAAR", _wrap_SCHEME_CAAR},
{"Language::MzScheme::SCHEME_CDDR", _wrap_SCHEME_CDDR},
{"Language::MzScheme::scheme_basic_env", _wrap_scheme_basic_env},
{"Language::MzScheme::scheme_make_integer", _wrap_scheme_make_integer},
{"Language::MzScheme::scheme_make_character", _wrap_scheme_make_character},
{"Language::MzScheme::scheme_set_param", _wrap_scheme_set_param},
{"Language::MzScheme::scheme_get_param", _wrap_scheme_get_param},
{"Language::MzScheme::scheme_alloc_object", _wrap_scheme_alloc_object},
{"Language::MzScheme::scheme_alloc_small_object", _wrap_scheme_alloc_small_object},
{"Language::MzScheme::scheme_alloc_stubborn_object", _wrap_scheme_alloc_stubborn_object},
{"Language::MzScheme::scheme_alloc_stubborn_small_object", _wrap_scheme_alloc_stubborn_small_object},
{"Language::MzScheme::scheme_alloc_eternal_object", _wrap_scheme_alloc_eternal_object},
{"Language::MzScheme::scheme_alloc_eternal_small_object", _wrap_scheme_alloc_eternal_small_object},
{"Language::MzScheme::Scheme_Object_type_set", _wrap_Scheme_Object_type_set},
{"Language::MzScheme::Scheme_Object_type_get", _wrap_Scheme_Object_type_get},
{"Language::MzScheme::Scheme_Object_keyex_set", _wrap_Scheme_Object_keyex_set},
{"Language::MzScheme::Scheme_Object_keyex_get", _wrap_Scheme_Object_keyex_get},
{"Language::MzScheme::Scheme_Object_u_get", _wrap_Scheme_Object_u_get},
{"Language::MzScheme::new_Scheme_Object", _wrap_new_Scheme_Object},
{"Language::MzScheme::delete_Scheme_Object", _wrap_delete_Scheme_Object},
{"Language::MzScheme::Scheme_Object_u_svector_val_get", _wrap_Scheme_Object_u_svector_val_get},
{"Language::MzScheme::Scheme_Object_u_pair_val_get", _wrap_Scheme_Object_u_pair_val_get},
{"Language::MzScheme::Scheme_Object_u_ptr_long_val_get", _wrap_Scheme_Object_u_ptr_long_val_get},
{"Language::MzScheme::Scheme_Object_u_ptr_int_val_get", _wrap_Scheme_Object_u_ptr_int_val_get},
{"Language::MzScheme::Scheme_Object_u_two_int_val_get", _wrap_Scheme_Object_u_two_int_val_get},
{"Language::MzScheme::Scheme_Object_u_two_ptr_val_get", _wrap_Scheme_Object_u_two_ptr_val_get},
{"Language::MzScheme::Scheme_Object_u_str_val_get", _wrap_Scheme_Object_u_str_val_get},
{"Language::MzScheme::new_Scheme_Object_u", _wrap_new_Scheme_Object_u},
{"Language::MzScheme::delete_Scheme_Object_u", _wrap_delete_Scheme_Object_u},
{"Language::MzScheme::Scheme_Object_u_svector_val_len_set", _wrap_Scheme_Object_u_svector_val_len_set},
{"Language::MzScheme::Scheme_Object_u_svector_val_len_get", _wrap_Scheme_Object_u_svector_val_len_get},
{"Language::MzScheme::Scheme_Object_u_svector_val_vec_set", _wrap_Scheme_Object_u_svector_val_vec_set},
{"Language::MzScheme::Scheme_Object_u_svector_val_vec_get", _wrap_Scheme_Object_u_svector_val_vec_get},
{"Language::MzScheme::new_Scheme_Object_u_svector_val", _wrap_new_Scheme_Object_u_svector_val},
{"Language::MzScheme::delete_Scheme_Object_u_svector_val", _wrap_delete_Scheme_Object_u_svector_val},
{"Language::MzScheme::Scheme_Object_u_pair_val_car_set", _wrap_Scheme_Object_u_pair_val_car_set},
{"Language::MzScheme::Scheme_Object_u_pair_val_car_get", _wrap_Scheme_Object_u_pair_val_car_get},
{"Language::MzScheme::Scheme_Object_u_pair_val_cdr_set", _wrap_Scheme_Object_u_pair_val_cdr_set},
{"Language::MzScheme::Scheme_Object_u_pair_val_cdr_get", _wrap_Scheme_Object_u_pair_val_cdr_get},
{"Language::MzScheme::new_Scheme_Object_u_pair_val", _wrap_new_Scheme_Object_u_pair_val},
{"Language::MzScheme::delete_Scheme_Object_u_pair_val", _wrap_delete_Scheme_Object_u_pair_val},
{"Language::MzScheme::Scheme_Object_u_ptr_long_val_ptr_set", _wrap_Scheme_Object_u_ptr_long_val_ptr_set},
{"Language::MzScheme::Scheme_Object_u_ptr_long_val_ptr_get", _wrap_Scheme_Object_u_ptr_long_val_ptr_get},
{"Language::MzScheme::Scheme_Object_u_ptr_long_val_pint_set", _wrap_Scheme_Object_u_ptr_long_val_pint_set},
{"Language::MzScheme::Scheme_Object_u_ptr_long_val_pint_get", _wrap_Scheme_Object_u_ptr_long_val_pint_get},
{"Language::MzScheme::new_Scheme_Object_u_ptr_long_val", _wrap_new_Scheme_Object_u_ptr_long_val},
{"Language::MzScheme::delete_Scheme_Object_u_ptr_long_val", _wrap_delete_Scheme_Object_u_ptr_long_val},
{"Language::MzScheme::Scheme_Object_u_ptr_int_val_ptr_set", _wrap_Scheme_Object_u_ptr_int_val_ptr_set},
{"Language::MzScheme::Scheme_Object_u_ptr_int_val_ptr_get", _wrap_Scheme_Object_u_ptr_int_val_ptr_get},
{"Language::MzScheme::Scheme_Object_u_ptr_int_val_pint_set", _wrap_Scheme_Object_u_ptr_int_val_pint_set},
{"Language::MzScheme::Scheme_Object_u_ptr_int_val_pint_get", _wrap_Scheme_Object_u_ptr_int_val_pint_get},
{"Language::MzScheme::new_Scheme_Object_u_ptr_int_val", _wrap_new_Scheme_Object_u_ptr_int_val},
{"Language::MzScheme::delete_Scheme_Object_u_ptr_int_val", _wrap_delete_Scheme_Object_u_ptr_int_val},
{"Language::MzScheme::Scheme_Object_u_two_int_val_int1_set", _wrap_Scheme_Object_u_two_int_val_int1_set},
{"Language::MzScheme::Scheme_Object_u_two_int_val_int1_get", _wrap_Scheme_Object_u_two_int_val_int1_get},
{"Language::MzScheme::Scheme_Object_u_two_int_val_int2_set", _wrap_Scheme_Object_u_two_int_val_int2_set},
{"Language::MzScheme::Scheme_Object_u_two_int_val_int2_get", _wrap_Scheme_Object_u_two_int_val_int2_get},
{"Language::MzScheme::new_Scheme_Object_u_two_int_val", _wrap_new_Scheme_Object_u_two_int_val},
{"Language::MzScheme::delete_Scheme_Object_u_two_int_val", _wrap_delete_Scheme_Object_u_two_int_val},
{"Language::MzScheme::Scheme_Object_u_two_ptr_val_ptr1_set", _wrap_Scheme_Object_u_two_ptr_val_ptr1_set},
{"Language::MzScheme::Scheme_Object_u_two_ptr_val_ptr1_get", _wrap_Scheme_Object_u_two_ptr_val_ptr1_get},
{"Language::MzScheme::Scheme_Object_u_two_ptr_val_ptr2_set", _wrap_Scheme_Object_u_two_ptr_val_ptr2_set},
{"Language::MzScheme::Scheme_Object_u_two_ptr_val_ptr2_get", _wrap_Scheme_Object_u_two_ptr_val_ptr2_get},
{"Language::MzScheme::new_Scheme_Object_u_two_ptr_val", _wrap_new_Scheme_Object_u_two_ptr_val},
{"Language::MzScheme::delete_Scheme_Object_u_two_ptr_val", _wrap_delete_Scheme_Object_u_two_ptr_val},
{"Language::MzScheme::Scheme_Object_u_str_val_string_val_set", _wrap_Scheme_Object_u_str_val_string_val_set},
{"Language::MzScheme::Scheme_Object_u_str_val_string_val_get", _wrap_Scheme_Object_u_str_val_string_val_get},
{"Language::MzScheme::Scheme_Object_u_str_val_tag_val_set", _wrap_Scheme_Object_u_str_val_tag_val_set},
{"Language::MzScheme::Scheme_Object_u_str_val_tag_val_get", _wrap_Scheme_Object_u_str_val_tag_val_get},
{"Language::MzScheme::new_Scheme_Object_u_str_val", _wrap_new_Scheme_Object_u_str_val},
{"Language::MzScheme::delete_Scheme_Object_u_str_val", _wrap_delete_Scheme_Object_u_str_val},
{"Language::MzScheme::Scheme_Small_Object_type_set", _wrap_Scheme_Small_Object_type_set},
{"Language::MzScheme::Scheme_Small_Object_type_get", _wrap_Scheme_Small_Object_type_get},
{"Language::MzScheme::Scheme_Small_Object_u_get", _wrap_Scheme_Small_Object_u_get},
{"Language::MzScheme::new_Scheme_Small_Object", _wrap_new_Scheme_Small_Object},
{"Language::MzScheme::delete_Scheme_Small_Object", _wrap_delete_Scheme_Small_Object},
{"Language::MzScheme::Scheme_Small_Object_u_char_val_set", _wrap_Scheme_Small_Object_u_char_val_set},
{"Language::MzScheme::Scheme_Small_Object_u_char_val_get", _wrap_Scheme_Small_Object_u_char_val_get},
{"Language::MzScheme::Scheme_Small_Object_u_ptr_value_set", _wrap_Scheme_Small_Object_u_ptr_value_set},
{"Language::MzScheme::Scheme_Small_Object_u_ptr_value_get", _wrap_Scheme_Small_Object_u_ptr_value_get},
{"Language::MzScheme::Scheme_Small_Object_u_int_val_set", _wrap_Scheme_Small_Object_u_int_val_set},
{"Language::MzScheme::Scheme_Small_Object_u_int_val_get", _wrap_Scheme_Small_Object_u_int_val_get},
{"Language::MzScheme::Scheme_Small_Object_u_ptr_val_set", _wrap_Scheme_Small_Object_u_ptr_val_set},
{"Language::MzScheme::Scheme_Small_Object_u_ptr_val_get", _wrap_Scheme_Small_Object_u_ptr_val_get},
{"Language::MzScheme::new_Scheme_Small_Object_u", _wrap_new_Scheme_Small_Object_u},
{"Language::MzScheme::delete_Scheme_Small_Object_u", _wrap_delete_Scheme_Small_Object_u},
{"Language::MzScheme::Scheme_Double_type_set", _wrap_Scheme_Double_type_set},
{"Language::MzScheme::Scheme_Double_type_get", _wrap_Scheme_Double_type_get},
{"Language::MzScheme::Scheme_Double_double_val_set", _wrap_Scheme_Double_double_val_set},
{"Language::MzScheme::Scheme_Double_double_val_get", _wrap_Scheme_Double_double_val_get},
{"Language::MzScheme::new_Scheme_Double", _wrap_new_Scheme_Double},
{"Language::MzScheme::delete_Scheme_Double", _wrap_delete_Scheme_Double},
{"Language::MzScheme::Scheme_Symbol_type_set", _wrap_Scheme_Symbol_type_set},
{"Language::MzScheme::Scheme_Symbol_type_get", _wrap_Scheme_Symbol_type_get},
{"Language::MzScheme::Scheme_Symbol_keyex_set", _wrap_Scheme_Symbol_keyex_set},
{"Language::MzScheme::Scheme_Symbol_keyex_get", _wrap_Scheme_Symbol_keyex_get},
{"Language::MzScheme::Scheme_Symbol_len_set", _wrap_Scheme_Symbol_len_set},
{"Language::MzScheme::Scheme_Symbol_len_get", _wrap_Scheme_Symbol_len_get},
{"Language::MzScheme::Scheme_Symbol_s_set", _wrap_Scheme_Symbol_s_set},
{"Language::MzScheme::Scheme_Symbol_s_get", _wrap_Scheme_Symbol_s_get},
{"Language::MzScheme::new_Scheme_Symbol", _wrap_new_Scheme_Symbol},
{"Language::MzScheme::delete_Scheme_Symbol", _wrap_delete_Scheme_Symbol},
{"Language::MzScheme::Scheme_Vector_type_set", _wrap_Scheme_Vector_type_set},
{"Language::MzScheme::Scheme_Vector_type_get", _wrap_Scheme_Vector_type_get},
{"Language::MzScheme::Scheme_Vector_keyex_set", _wrap_Scheme_Vector_keyex_set},
{"Language::MzScheme::Scheme_Vector_keyex_get", _wrap_Scheme_Vector_keyex_get},
{"Language::MzScheme::Scheme_Vector_size_set", _wrap_Scheme_Vector_size_set},
{"Language::MzScheme::Scheme_Vector_size_get", _wrap_Scheme_Vector_size_get},
{"Language::MzScheme::Scheme_Vector_els_set", _wrap_Scheme_Vector_els_set},
{"Language::MzScheme::Scheme_Vector_els_get", _wrap_Scheme_Vector_els_get},
{"Language::MzScheme::new_Scheme_Vector", _wrap_new_Scheme_Vector},
{"Language::MzScheme::delete_Scheme_Vector", _wrap_delete_Scheme_Vector},
{"Language::MzScheme::Scheme_Primitive_Proc_type_set", _wrap_Scheme_Primitive_Proc_type_set},
{"Language::MzScheme::Scheme_Primitive_Proc_type_get", _wrap_Scheme_Primitive_Proc_type_get},
{"Language::MzScheme::Scheme_Primitive_Proc_flags_set", _wrap_Scheme_Primitive_Proc_flags_set},
{"Language::MzScheme::Scheme_Primitive_Proc_flags_get", _wrap_Scheme_Primitive_Proc_flags_get},
{"Language::MzScheme::Scheme_Primitive_Proc_prim_val_set", _wrap_Scheme_Primitive_Proc_prim_val_set},
{"Language::MzScheme::Scheme_Primitive_Proc_prim_val_get", _wrap_Scheme_Primitive_Proc_prim_val_get},
{"Language::MzScheme::Scheme_Primitive_Proc_name_set", _wrap_Scheme_Primitive_Proc_name_set},
{"Language::MzScheme::Scheme_Primitive_Proc_name_get", _wrap_Scheme_Primitive_Proc_name_get},
{"Language::MzScheme::Scheme_Primitive_Proc_mina_set", _wrap_Scheme_Primitive_Proc_mina_set},
{"Language::MzScheme::Scheme_Primitive_Proc_mina_get", _wrap_Scheme_Primitive_Proc_mina_get},
{"Language::MzScheme::Scheme_Primitive_Proc_maxa_set", _wrap_Scheme_Primitive_Proc_maxa_set},
{"Language::MzScheme::Scheme_Primitive_Proc_maxa_get", _wrap_Scheme_Primitive_Proc_maxa_get},
{"Language::MzScheme::new_Scheme_Primitive_Proc", _wrap_new_Scheme_Primitive_Proc},
{"Language::MzScheme::delete_Scheme_Primitive_Proc", _wrap_delete_Scheme_Primitive_Proc},
{"Language::MzScheme::Scheme_Prim_W_Result_Arity_p_set", _wrap_Scheme_Prim_W_Result_Arity_p_set},
{"Language::MzScheme::Scheme_Prim_W_Result_Arity_p_get", _wrap_Scheme_Prim_W_Result_Arity_p_get},
{"Language::MzScheme::Scheme_Prim_W_Result_Arity_minr_set", _wrap_Scheme_Prim_W_Result_Arity_minr_set},
{"Language::MzScheme::Scheme_Prim_W_Result_Arity_minr_get", _wrap_Scheme_Prim_W_Result_Arity_minr_get},
{"Language::MzScheme::Scheme_Prim_W_Result_Arity_maxr_set", _wrap_Scheme_Prim_W_Result_Arity_maxr_set},
{"Language::MzScheme::Scheme_Prim_W_Result_Arity_maxr_get", _wrap_Scheme_Prim_W_Result_Arity_maxr_get},
{"Language::MzScheme::new_Scheme_Prim_W_Result_Arity", _wrap_new_Scheme_Prim_W_Result_Arity},
{"Language::MzScheme::delete_Scheme_Prim_W_Result_Arity", _wrap_delete_Scheme_Prim_W_Result_Arity},
{"Language::MzScheme::Scheme_Closed_Primitive_Proc_type_set", _wrap_Scheme_Closed_Primitive_Proc_type_set},
{"Language::MzScheme::Scheme_Closed_Primitive_Proc_type_get", _wrap_Scheme_Closed_Primitive_Proc_type_get},
{"Language::MzScheme::Scheme_Closed_Primitive_Proc_flags_set", _wrap_Scheme_Closed_Primitive_Proc_flags_set},
{"Language::MzScheme::Scheme_Closed_Primitive_Proc_flags_get", _wrap_Scheme_Closed_Primitive_Proc_flags_get},
{"Language::MzScheme::Scheme_Closed_Primitive_Proc_prim_val_set", _wrap_Scheme_Closed_Primitive_Proc_prim_val_set},
{"Language::MzScheme::Scheme_Closed_Primitive_Proc_prim_val_get", _wrap_Scheme_Closed_Primitive_Proc_prim_val_get},
{"Language::MzScheme::Scheme_Closed_Primitive_Proc_data_set", _wrap_Scheme_Closed_Primitive_Proc_data_set},
{"Language::MzScheme::Scheme_Closed_Primitive_Proc_data_get", _wrap_Scheme_Closed_Primitive_Proc_data_get},
{"Language::MzScheme::Scheme_Closed_Primitive_Proc_name_set", _wrap_Scheme_Closed_Primitive_Proc_name_set},
{"Language::MzScheme::Scheme_Closed_Primitive_Proc_name_get", _wrap_Scheme_Closed_Primitive_Proc_name_get},
{"Language::MzScheme::Scheme_Closed_Primitive_Proc_mina_set", _wrap_Scheme_Closed_Primitive_Proc_mina_set},
{"Language::MzScheme::Scheme_Closed_Primitive_Proc_mina_get", _wrap_Scheme_Closed_Primitive_Proc_mina_get},
{"Language::MzScheme::Scheme_Closed_Primitive_Proc_maxa_set", _wrap_Scheme_Closed_Primitive_Proc_maxa_set},
{"Language::MzScheme::Scheme_Closed_Primitive_Proc_maxa_get", _wrap_Scheme_Closed_Primitive_Proc_maxa_get},
{"Language::MzScheme::new_Scheme_Closed_Primitive_Proc", _wrap_new_Scheme_Closed_Primitive_Proc},
{"Language::MzScheme::delete_Scheme_Closed_Primitive_Proc", _wrap_delete_Scheme_Closed_Primitive_Proc},
{"Language::MzScheme::Scheme_Closed_Prim_W_Result_Arity_p_set", _wrap_Scheme_Closed_Prim_W_Result_Arity_p_set},
{"Language::MzScheme::Scheme_Closed_Prim_W_Result_Arity_p_get", _wrap_Scheme_Closed_Prim_W_Result_Arity_p_get},
{"Language::MzScheme::Scheme_Closed_Prim_W_Result_Arity_minr_set", _wrap_Scheme_Closed_Prim_W_Result_Arity_minr_set},
{"Language::MzScheme::Scheme_Closed_Prim_W_Result_Arity_minr_get", _wrap_Scheme_Closed_Prim_W_Result_Arity_minr_get},
{"Language::MzScheme::Scheme_Closed_Prim_W_Result_Arity_maxr_set", _wrap_Scheme_Closed_Prim_W_Result_Arity_maxr_set},
{"Language::MzScheme::Scheme_Closed_Prim_W_Result_Arity_maxr_get", _wrap_Scheme_Closed_Prim_W_Result_Arity_maxr_get},
{"Language::MzScheme::new_Scheme_Closed_Prim_W_Result_Arity", _wrap_new_Scheme_Closed_Prim_W_Result_Arity},
{"Language::MzScheme::delete_Scheme_Closed_Prim_W_Result_Arity", _wrap_delete_Scheme_Closed_Prim_W_Result_Arity},
{"Language::MzScheme::Scheme_Closed_Case_Primitive_Proc_p_set", _wrap_Scheme_Closed_Case_Primitive_Proc_p_set},
{"Language::MzScheme::Scheme_Closed_Case_Primitive_Proc_p_get", _wrap_Scheme_Closed_Case_Primitive_Proc_p_get},
{"Language::MzScheme::Scheme_Closed_Case_Primitive_Proc_cases_set", _wrap_Scheme_Closed_Case_Primitive_Proc_cases_set},
{"Language::MzScheme::Scheme_Closed_Case_Primitive_Proc_cases_get", _wrap_Scheme_Closed_Case_Primitive_Proc_cases_get},
{"Language::MzScheme::new_Scheme_Closed_Case_Primitive_Proc", _wrap_new_Scheme_Closed_Case_Primitive_Proc},
{"Language::MzScheme::delete_Scheme_Closed_Case_Primitive_Proc", _wrap_delete_Scheme_Closed_Case_Primitive_Proc},
{"Language::MzScheme::Scheme_Hash_Table_type_set", _wrap_Scheme_Hash_Table_type_set},
{"Language::MzScheme::Scheme_Hash_Table_type_get", _wrap_Scheme_Hash_Table_type_get},
{"Language::MzScheme::Scheme_Hash_Table_keyex_set", _wrap_Scheme_Hash_Table_keyex_set},
{"Language::MzScheme::Scheme_Hash_Table_keyex_get", _wrap_Scheme_Hash_Table_keyex_get},
{"Language::MzScheme::Scheme_Hash_Table_size_set", _wrap_Scheme_Hash_Table_size_set},
{"Language::MzScheme::Scheme_Hash_Table_size_get", _wrap_Scheme_Hash_Table_size_get},
{"Language::MzScheme::Scheme_Hash_Table_count_set", _wrap_Scheme_Hash_Table_count_set},
{"Language::MzScheme::Scheme_Hash_Table_count_get", _wrap_Scheme_Hash_Table_count_get},
{"Language::MzScheme::Scheme_Hash_Table_step_set", _wrap_Scheme_Hash_Table_step_set},
{"Language::MzScheme::Scheme_Hash_Table_step_get", _wrap_Scheme_Hash_Table_step_get},
{"Language::MzScheme::Scheme_Hash_Table_keys_set", _wrap_Scheme_Hash_Table_keys_set},
{"Language::MzScheme::Scheme_Hash_Table_keys_get", _wrap_Scheme_Hash_Table_keys_get},
{"Language::MzScheme::Scheme_Hash_Table_vals_set", _wrap_Scheme_Hash_Table_vals_set},
{"Language::MzScheme::Scheme_Hash_Table_vals_get", _wrap_Scheme_Hash_Table_vals_get},
{"Language::MzScheme::Scheme_Hash_Table_make_hash_indices_set", _wrap_Scheme_Hash_Table_make_hash_indices_set},
{"Language::MzScheme::Scheme_Hash_Table_make_hash_indices_get", _wrap_Scheme_Hash_Table_make_hash_indices_get},
{"Language::MzScheme::Scheme_Hash_Table_compare_set", _wrap_Scheme_Hash_Table_compare_set},
{"Language::MzScheme::Scheme_Hash_Table_compare_get", _wrap_Scheme_Hash_Table_compare_get},
{"Language::MzScheme::Scheme_Hash_Table_mutex_set", _wrap_Scheme_Hash_Table_mutex_set},
{"Language::MzScheme::Scheme_Hash_Table_mutex_get", _wrap_Scheme_Hash_Table_mutex_get},
{"Language::MzScheme::Scheme_Hash_Table_mcount_set", _wrap_Scheme_Hash_Table_mcount_set},
{"Language::MzScheme::Scheme_Hash_Table_mcount_get", _wrap_Scheme_Hash_Table_mcount_get},
{"Language::MzScheme::new_Scheme_Hash_Table", _wrap_new_Scheme_Hash_Table},
{"Language::MzScheme::delete_Scheme_Hash_Table", _wrap_delete_Scheme_Hash_Table},
{"Language::MzScheme::Scheme_Bucket_type_set", _wrap_Scheme_Bucket_type_set},
{"Language::MzScheme::Scheme_Bucket_type_get", _wrap_Scheme_Bucket_type_get},
{"Language::MzScheme::Scheme_Bucket_val_set", _wrap_Scheme_Bucket_val_set},
{"Language::MzScheme::Scheme_Bucket_val_get", _wrap_Scheme_Bucket_val_get},
{"Language::MzScheme::Scheme_Bucket_key_set", _wrap_Scheme_Bucket_key_set},
{"Language::MzScheme::Scheme_Bucket_key_get", _wrap_Scheme_Bucket_key_get},
{"Language::MzScheme::new_Scheme_Bucket", _wrap_new_Scheme_Bucket},
{"Language::MzScheme::delete_Scheme_Bucket", _wrap_delete_Scheme_Bucket},
{"Language::MzScheme::Scheme_Bucket_Table_type_set", _wrap_Scheme_Bucket_Table_type_set},
{"Language::MzScheme::Scheme_Bucket_Table_type_get", _wrap_Scheme_Bucket_Table_type_get},
{"Language::MzScheme::Scheme_Bucket_Table_size_set", _wrap_Scheme_Bucket_Table_size_set},
{"Language::MzScheme::Scheme_Bucket_Table_size_get", _wrap_Scheme_Bucket_Table_size_get},
{"Language::MzScheme::Scheme_Bucket_Table_count_set", _wrap_Scheme_Bucket_Table_count_set},
{"Language::MzScheme::Scheme_Bucket_Table_count_get", _wrap_Scheme_Bucket_Table_count_get},
{"Language::MzScheme::Scheme_Bucket_Table_step_set", _wrap_Scheme_Bucket_Table_step_set},
{"Language::MzScheme::Scheme_Bucket_Table_step_get", _wrap_Scheme_Bucket_Table_step_get},
{"Language::MzScheme::Scheme_Bucket_Table_buckets_set", _wrap_Scheme_Bucket_Table_buckets_set},
{"Language::MzScheme::Scheme_Bucket_Table_buckets_get", _wrap_Scheme_Bucket_Table_buckets_get},
{"Language::MzScheme::Scheme_Bucket_Table_weak_set", _wrap_Scheme_Bucket_Table_weak_set},
{"Language::MzScheme::Scheme_Bucket_Table_weak_get", _wrap_Scheme_Bucket_Table_weak_get},
{"Language::MzScheme::Scheme_Bucket_Table_with_home_set", _wrap_Scheme_Bucket_Table_with_home_set},
{"Language::MzScheme::Scheme_Bucket_Table_with_home_get", _wrap_Scheme_Bucket_Table_with_home_get},
{"Language::MzScheme::Scheme_Bucket_Table_make_hash_indices_set", _wrap_Scheme_Bucket_Table_make_hash_indices_set},
{"Language::MzScheme::Scheme_Bucket_Table_make_hash_indices_get", _wrap_Scheme_Bucket_Table_make_hash_indices_get},
{"Language::MzScheme::Scheme_Bucket_Table_compare_set", _wrap_Scheme_Bucket_Table_compare_set},
{"Language::MzScheme::Scheme_Bucket_Table_compare_get", _wrap_Scheme_Bucket_Table_compare_get},
{"Language::MzScheme::Scheme_Bucket_Table_mutex_set", _wrap_Scheme_Bucket_Table_mutex_set},
{"Language::MzScheme::Scheme_Bucket_Table_mutex_get", _wrap_Scheme_Bucket_Table_mutex_get},
{"Language::MzScheme::new_Scheme_Bucket_Table", _wrap_new_Scheme_Bucket_Table},
{"Language::MzScheme::delete_Scheme_Bucket_Table", _wrap_delete_Scheme_Bucket_Table},
{"Language::MzScheme::Scheme_Jumpup_Buf_Holder_type_set", _wrap_Scheme_Jumpup_Buf_Holder_type_set},
{"Language::MzScheme::Scheme_Jumpup_Buf_Holder_type_get", _wrap_Scheme_Jumpup_Buf_Holder_type_get},
{"Language::MzScheme::Scheme_Jumpup_Buf_Holder_buf_set", _wrap_Scheme_Jumpup_Buf_Holder_buf_set},
{"Language::MzScheme::Scheme_Jumpup_Buf_Holder_buf_get", _wrap_Scheme_Jumpup_Buf_Holder_buf_get},
{"Language::MzScheme::new_Scheme_Jumpup_Buf_Holder", _wrap_new_Scheme_Jumpup_Buf_Holder},
{"Language::MzScheme::delete_Scheme_Jumpup_Buf_Holder", _wrap_delete_Scheme_Jumpup_Buf_Holder},
{"Language::MzScheme::Scheme_Continuation_Jump_State_jumping_to_continuation_set", _wrap_Scheme_Continuation_Jump_State_jumping_to_continuation_set},
{"Language::MzScheme::Scheme_Continuation_Jump_State_jumping_to_continuation_get", _wrap_Scheme_Continuation_Jump_State_jumping_to_continuation_get},
{"Language::MzScheme::Scheme_Continuation_Jump_State_num_vals_set", _wrap_Scheme_Continuation_Jump_State_num_vals_set},
{"Language::MzScheme::Scheme_Continuation_Jump_State_num_vals_get", _wrap_Scheme_Continuation_Jump_State_num_vals_get},
{"Language::MzScheme::Scheme_Continuation_Jump_State_is_kill_set", _wrap_Scheme_Continuation_Jump_State_is_kill_set},
{"Language::MzScheme::Scheme_Continuation_Jump_State_is_kill_get", _wrap_Scheme_Continuation_Jump_State_is_kill_get},
{"Language::MzScheme::Scheme_Continuation_Jump_State_u_get", _wrap_Scheme_Continuation_Jump_State_u_get},
{"Language::MzScheme::new_Scheme_Continuation_Jump_State", _wrap_new_Scheme_Continuation_Jump_State},
{"Language::MzScheme::delete_Scheme_Continuation_Jump_State", _wrap_delete_Scheme_Continuation_Jump_State},
{"Language::MzScheme::Scheme_Continuation_Jump_State_u_vals_set", _wrap_Scheme_Continuation_Jump_State_u_vals_set},
{"Language::MzScheme::Scheme_Continuation_Jump_State_u_vals_get", _wrap_Scheme_Continuation_Jump_State_u_vals_get},
{"Language::MzScheme::Scheme_Continuation_Jump_State_u_val_set", _wrap_Scheme_Continuation_Jump_State_u_val_set},
{"Language::MzScheme::Scheme_Continuation_Jump_State_u_val_get", _wrap_Scheme_Continuation_Jump_State_u_val_get},
{"Language::MzScheme::new_Scheme_Continuation_Jump_State_u", _wrap_new_Scheme_Continuation_Jump_State_u},
{"Language::MzScheme::delete_Scheme_Continuation_Jump_State_u", _wrap_delete_Scheme_Continuation_Jump_State_u},
{"Language::MzScheme::Scheme_Cont_Frame_Data_cont_mark_pos_set", _wrap_Scheme_Cont_Frame_Data_cont_mark_pos_set},
{"Language::MzScheme::Scheme_Cont_Frame_Data_cont_mark_pos_get", _wrap_Scheme_Cont_Frame_Data_cont_mark_pos_get},
{"Language::MzScheme::Scheme_Cont_Frame_Data_cont_mark_stack_set", _wrap_Scheme_Cont_Frame_Data_cont_mark_stack_set},
{"Language::MzScheme::Scheme_Cont_Frame_Data_cont_mark_stack_get", _wrap_Scheme_Cont_Frame_Data_cont_mark_stack_get},
{"Language::MzScheme::new_Scheme_Cont_Frame_Data", _wrap_new_Scheme_Cont_Frame_Data},
{"Language::MzScheme::delete_Scheme_Cont_Frame_Data", _wrap_delete_Scheme_Cont_Frame_Data},
{"Language::MzScheme::Scheme_Config_type_set", _wrap_Scheme_Config_type_set},
{"Language::MzScheme::Scheme_Config_type_get", _wrap_Scheme_Config_type_get},
{"Language::MzScheme::Scheme_Config_use_count_set", _wrap_Scheme_Config_use_count_set},
{"Language::MzScheme::Scheme_Config_use_count_get", _wrap_Scheme_Config_use_count_get},
{"Language::MzScheme::Scheme_Config_extensions_set", _wrap_Scheme_Config_extensions_set},
{"Language::MzScheme::Scheme_Config_extensions_get", _wrap_Scheme_Config_extensions_get},
{"Language::MzScheme::Scheme_Config_configs_set", _wrap_Scheme_Config_configs_set},
{"Language::MzScheme::Scheme_Config_configs_get", _wrap_Scheme_Config_configs_get},
{"Language::MzScheme::new_Scheme_Config", _wrap_new_Scheme_Config},
{"Language::MzScheme::delete_Scheme_Config", _wrap_delete_Scheme_Config},
{"Language::MzScheme::Scheme_Input_Port_type_set", _wrap_Scheme_Input_Port_type_set},
{"Language::MzScheme::Scheme_Input_Port_type_get", _wrap_Scheme_Input_Port_type_get},
{"Language::MzScheme::Scheme_Input_Port_closed_set", _wrap_Scheme_Input_Port_closed_set},
{"Language::MzScheme::Scheme_Input_Port_closed_get", _wrap_Scheme_Input_Port_closed_get},
{"Language::MzScheme::Scheme_Input_Port_pending_eof_set", _wrap_Scheme_Input_Port_pending_eof_set},
{"Language::MzScheme::Scheme_Input_Port_pending_eof_get", _wrap_Scheme_Input_Port_pending_eof_get},
{"Language::MzScheme::Scheme_Input_Port_sub_type_set", _wrap_Scheme_Input_Port_sub_type_set},
{"Language::MzScheme::Scheme_Input_Port_sub_type_get", _wrap_Scheme_Input_Port_sub_type_get},
{"Language::MzScheme::Scheme_Input_Port_mref_set", _wrap_Scheme_Input_Port_mref_set},
{"Language::MzScheme::Scheme_Input_Port_mref_get", _wrap_Scheme_Input_Port_mref_get},
{"Language::MzScheme::Scheme_Input_Port_port_data_set", _wrap_Scheme_Input_Port_port_data_set},
{"Language::MzScheme::Scheme_Input_Port_port_data_get", _wrap_Scheme_Input_Port_port_data_get},
{"Language::MzScheme::Scheme_Input_Port_get_string_fun_set", _wrap_Scheme_Input_Port_get_string_fun_set},
{"Language::MzScheme::Scheme_Input_Port_get_string_fun_get", _wrap_Scheme_Input_Port_get_string_fun_get},
{"Language::MzScheme::Scheme_Input_Port_peek_string_fun_set", _wrap_Scheme_Input_Port_peek_string_fun_set},
{"Language::MzScheme::Scheme_Input_Port_peek_string_fun_get", _wrap_Scheme_Input_Port_peek_string_fun_get},
{"Language::MzScheme::Scheme_Input_Port_char_ready_fun_set", _wrap_Scheme_Input_Port_char_ready_fun_set},
{"Language::MzScheme::Scheme_Input_Port_char_ready_fun_get", _wrap_Scheme_Input_Port_char_ready_fun_get},
{"Language::MzScheme::Scheme_Input_Port_close_fun_set", _wrap_Scheme_Input_Port_close_fun_set},
{"Language::MzScheme::Scheme_Input_Port_close_fun_get", _wrap_Scheme_Input_Port_close_fun_get},
{"Language::MzScheme::Scheme_Input_Port_need_wakeup_fun_set", _wrap_Scheme_Input_Port_need_wakeup_fun_set},
{"Language::MzScheme::Scheme_Input_Port_need_wakeup_fun_get", _wrap_Scheme_Input_Port_need_wakeup_fun_get},
{"Language::MzScheme::Scheme_Input_Port_read_handler_set", _wrap_Scheme_Input_Port_read_handler_set},
{"Language::MzScheme::Scheme_Input_Port_read_handler_get", _wrap_Scheme_Input_Port_read_handler_get},
{"Language::MzScheme::Scheme_Input_Port_name_set", _wrap_Scheme_Input_Port_name_set},
{"Language::MzScheme::Scheme_Input_Port_name_get", _wrap_Scheme_Input_Port_name_get},
{"Language::MzScheme::Scheme_Input_Port_peeked_read_set", _wrap_Scheme_Input_Port_peeked_read_set},
{"Language::MzScheme::Scheme_Input_Port_peeked_read_get", _wrap_Scheme_Input_Port_peeked_read_get},
{"Language::MzScheme::Scheme_Input_Port_peeked_write_set", _wrap_Scheme_Input_Port_peeked_write_set},
{"Language::MzScheme::Scheme_Input_Port_peeked_write_get", _wrap_Scheme_Input_Port_peeked_write_get},
{"Language::MzScheme::Scheme_Input_Port_ungotten_set", _wrap_Scheme_Input_Port_ungotten_set},
{"Language::MzScheme::Scheme_Input_Port_ungotten_get", _wrap_Scheme_Input_Port_ungotten_get},
{"Language::MzScheme::Scheme_Input_Port_ungotten_count_set", _wrap_Scheme_Input_Port_ungotten_count_set},
{"Language::MzScheme::Scheme_Input_Port_ungotten_count_get", _wrap_Scheme_Input_Port_ungotten_count_get},
{"Language::MzScheme::Scheme_Input_Port_special_set", _wrap_Scheme_Input_Port_special_set},
{"Language::MzScheme::Scheme_Input_Port_special_get", _wrap_Scheme_Input_Port_special_get},
{"Language::MzScheme::Scheme_Input_Port_ungotten_special_set", _wrap_Scheme_Input_Port_ungotten_special_set},
{"Language::MzScheme::Scheme_Input_Port_ungotten_special_get", _wrap_Scheme_Input_Port_ungotten_special_get},
{"Language::MzScheme::Scheme_Input_Port_position_set", _wrap_Scheme_Input_Port_position_set},
{"Language::MzScheme::Scheme_Input_Port_position_get", _wrap_Scheme_Input_Port_position_get},
{"Language::MzScheme::Scheme_Input_Port_readpos_set", _wrap_Scheme_Input_Port_readpos_set},
{"Language::MzScheme::Scheme_Input_Port_readpos_get", _wrap_Scheme_Input_Port_readpos_get},
{"Language::MzScheme::Scheme_Input_Port_lineNumber_set", _wrap_Scheme_Input_Port_lineNumber_set},
{"Language::MzScheme::Scheme_Input_Port_lineNumber_get", _wrap_Scheme_Input_Port_lineNumber_get},
{"Language::MzScheme::Scheme_Input_Port_charsSinceNewline_set", _wrap_Scheme_Input_Port_charsSinceNewline_set},
{"Language::MzScheme::Scheme_Input_Port_charsSinceNewline_get", _wrap_Scheme_Input_Port_charsSinceNewline_get},
{"Language::MzScheme::Scheme_Input_Port_column_set", _wrap_Scheme_Input_Port_column_set},
{"Language::MzScheme::Scheme_Input_Port_column_get", _wrap_Scheme_Input_Port_column_get},
{"Language::MzScheme::Scheme_Input_Port_oldColumn_set", _wrap_Scheme_Input_Port_oldColumn_set},
{"Language::MzScheme::Scheme_Input_Port_oldColumn_get", _wrap_Scheme_Input_Port_oldColumn_get},
{"Language::MzScheme::Scheme_Input_Port_count_lines_set", _wrap_Scheme_Input_Port_count_lines_set},
{"Language::MzScheme::Scheme_Input_Port_count_lines_get", _wrap_Scheme_Input_Port_count_lines_get},
{"Language::MzScheme::Scheme_Input_Port_was_cr_set", _wrap_Scheme_Input_Port_was_cr_set},
{"Language::MzScheme::Scheme_Input_Port_was_cr_get", _wrap_Scheme_Input_Port_was_cr_get},
{"Language::MzScheme::Scheme_Input_Port_output_half_set", _wrap_Scheme_Input_Port_output_half_set},
{"Language::MzScheme::Scheme_Input_Port_output_half_get", _wrap_Scheme_Input_Port_output_half_get},
{"Language::MzScheme::new_Scheme_Input_Port", _wrap_new_Scheme_Input_Port},
{"Language::MzScheme::delete_Scheme_Input_Port", _wrap_delete_Scheme_Input_Port},
{"Language::MzScheme::Scheme_Output_Port_type_set", _wrap_Scheme_Output_Port_type_set},
{"Language::MzScheme::Scheme_Output_Port_type_get", _wrap_Scheme_Output_Port_type_get},
{"Language::MzScheme::Scheme_Output_Port_closed_set", _wrap_Scheme_Output_Port_closed_set},
{"Language::MzScheme::Scheme_Output_Port_closed_get", _wrap_Scheme_Output_Port_closed_get},
{"Language::MzScheme::Scheme_Output_Port_sub_type_set", _wrap_Scheme_Output_Port_sub_type_set},
{"Language::MzScheme::Scheme_Output_Port_sub_type_get", _wrap_Scheme_Output_Port_sub_type_get},
{"Language::MzScheme::Scheme_Output_Port_mref_set", _wrap_Scheme_Output_Port_mref_set},
{"Language::MzScheme::Scheme_Output_Port_mref_get", _wrap_Scheme_Output_Port_mref_get},
{"Language::MzScheme::Scheme_Output_Port_port_data_set", _wrap_Scheme_Output_Port_port_data_set},
{"Language::MzScheme::Scheme_Output_Port_port_data_get", _wrap_Scheme_Output_Port_port_data_get},
{"Language::MzScheme::Scheme_Output_Port_write_string_fun_set", _wrap_Scheme_Output_Port_write_string_fun_set},
{"Language::MzScheme::Scheme_Output_Port_write_string_fun_get", _wrap_Scheme_Output_Port_write_string_fun_get},
{"Language::MzScheme::Scheme_Output_Port_close_fun_set", _wrap_Scheme_Output_Port_close_fun_set},
{"Language::MzScheme::Scheme_Output_Port_close_fun_get", _wrap_Scheme_Output_Port_close_fun_get},
{"Language::MzScheme::Scheme_Output_Port_ready_fun_set", _wrap_Scheme_Output_Port_ready_fun_set},
{"Language::MzScheme::Scheme_Output_Port_ready_fun_get", _wrap_Scheme_Output_Port_ready_fun_get},
{"Language::MzScheme::Scheme_Output_Port_need_wakeup_fun_set", _wrap_Scheme_Output_Port_need_wakeup_fun_set},
{"Language::MzScheme::Scheme_Output_Port_need_wakeup_fun_get", _wrap_Scheme_Output_Port_need_wakeup_fun_get},
{"Language::MzScheme::Scheme_Output_Port_pos_set", _wrap_Scheme_Output_Port_pos_set},
{"Language::MzScheme::Scheme_Output_Port_pos_get", _wrap_Scheme_Output_Port_pos_get},
{"Language::MzScheme::Scheme_Output_Port_display_handler_set", _wrap_Scheme_Output_Port_display_handler_set},
{"Language::MzScheme::Scheme_Output_Port_display_handler_get", _wrap_Scheme_Output_Port_display_handler_get},
{"Language::MzScheme::Scheme_Output_Port_write_handler_set", _wrap_Scheme_Output_Port_write_handler_set},
{"Language::MzScheme::Scheme_Output_Port_write_handler_get", _wrap_Scheme_Output_Port_write_handler_get},
{"Language::MzScheme::Scheme_Output_Port_print_handler_set", _wrap_Scheme_Output_Port_print_handler_set},
{"Language::MzScheme::Scheme_Output_Port_print_handler_get", _wrap_Scheme_Output_Port_print_handler_get},
{"Language::MzScheme::Scheme_Output_Port_input_half_set", _wrap_Scheme_Output_Port_input_half_set},
{"Language::MzScheme::Scheme_Output_Port_input_half_get", _wrap_Scheme_Output_Port_input_half_get},
{"Language::MzScheme::new_Scheme_Output_Port", _wrap_new_Scheme_Output_Port},
{"Language::MzScheme::delete_Scheme_Output_Port", _wrap_delete_Scheme_Output_Port},
{"Language::MzScheme::scheme_init_jmpup_buf", _wrap_scheme_init_jmpup_buf},
{"Language::MzScheme::scheme_setjmpup_relative", _wrap_scheme_setjmpup_relative},
{"Language::MzScheme::scheme_longjmpup", _wrap_scheme_longjmpup},
{"Language::MzScheme::scheme_reset_jmpup_buf", _wrap_scheme_reset_jmpup_buf},
{"Language::MzScheme::scheme_clear_escape", _wrap_scheme_clear_escape},
{"Language::MzScheme::scheme_new_jmpupbuf_holder", _wrap_scheme_new_jmpupbuf_holder},
{"Language::MzScheme::scheme_make_config", _wrap_scheme_make_config},
{"Language::MzScheme::scheme_branch_config", _wrap_scheme_branch_config},
{"Language::MzScheme::scheme_new_param", _wrap_scheme_new_param},
{"Language::MzScheme::scheme_param_config", _wrap_scheme_param_config},
{"Language::MzScheme::scheme_register_parameter", _wrap_scheme_register_parameter},
{"Language::MzScheme::scheme_get_env", _wrap_scheme_get_env},
{"Language::MzScheme::scheme_out_of_fuel", _wrap_scheme_out_of_fuel},
{"Language::MzScheme::scheme_thread", _wrap_scheme_thread},
{"Language::MzScheme::scheme_thread_w_custodian", _wrap_scheme_thread_w_custodian},
{"Language::MzScheme::scheme_thread_w_custodian_killkind", _wrap_scheme_thread_w_custodian_killkind},
{"Language::MzScheme::scheme_kill_thread", _wrap_scheme_kill_thread},
{"Language::MzScheme::scheme_break_thread", _wrap_scheme_break_thread},
{"Language::MzScheme::scheme_thread_block", _wrap_scheme_thread_block},
{"Language::MzScheme::scheme_swap_thread", _wrap_scheme_swap_thread},
{"Language::MzScheme::scheme_making_progress", _wrap_scheme_making_progress},
{"Language::MzScheme::scheme_weak_suspend_thread", _wrap_scheme_weak_suspend_thread},
{"Language::MzScheme::scheme_weak_resume_thread", _wrap_scheme_weak_resume_thread},
{"Language::MzScheme::scheme_block_until", _wrap_scheme_block_until},
{"Language::MzScheme::scheme_in_main_thread", _wrap_scheme_in_main_thread},
{"Language::MzScheme::scheme_cancel_sleep", _wrap_scheme_cancel_sleep},
{"Language::MzScheme::scheme_tls_allocate", _wrap_scheme_tls_allocate},
{"Language::MzScheme::scheme_tls_set", _wrap_scheme_tls_set},
{"Language::MzScheme::scheme_tls_get", _wrap_scheme_tls_get},
{"Language::MzScheme::scheme_make_custodian", _wrap_scheme_make_custodian},
{"Language::MzScheme::scheme_add_managed", _wrap_scheme_add_managed},
{"Language::MzScheme::scheme_custodian_check_available", _wrap_scheme_custodian_check_available},
{"Language::MzScheme::scheme_remove_managed", _wrap_scheme_remove_managed},
{"Language::MzScheme::scheme_close_managed", _wrap_scheme_close_managed},
{"Language::MzScheme::scheme_schedule_custodian_close", _wrap_scheme_schedule_custodian_close},
{"Language::MzScheme::scheme_add_custodian_extractor", _wrap_scheme_add_custodian_extractor},
{"Language::MzScheme::scheme_add_atexit_closer", _wrap_scheme_add_atexit_closer},
{"Language::MzScheme::scheme_add_waitable", _wrap_scheme_add_waitable},
{"Language::MzScheme::scheme_add_waitable_through_sema", _wrap_scheme_add_waitable_through_sema},
{"Language::MzScheme::scheme_is_waitable", _wrap_scheme_is_waitable},
{"Language::MzScheme::scheme_object_wait_multiple", _wrap_scheme_object_wait_multiple},
{"Language::MzScheme::scheme_object_wait_multiple_enable_break", _wrap_scheme_object_wait_multiple_enable_break},
{"Language::MzScheme::scheme_make_waitable_set", _wrap_scheme_make_waitable_set},
{"Language::MzScheme::scheme_add_swap_callback", _wrap_scheme_add_swap_callback},
{"Language::MzScheme::scheme_call_enable_break", _wrap_scheme_call_enable_break},
{"Language::MzScheme::scheme_close_should_force_port_closed", _wrap_scheme_close_should_force_port_closed},
{"Language::MzScheme::scheme_push_kill_action", _wrap_scheme_push_kill_action},
{"Language::MzScheme::scheme_pop_kill_action", _wrap_scheme_pop_kill_action},
{"Language::MzScheme::scheme_signal_error", _wrap_scheme_signal_error},
{"Language::MzScheme::scheme_raise_exn", _wrap_scheme_raise_exn},
{"Language::MzScheme::scheme_warning", _wrap_scheme_warning},
{"Language::MzScheme::scheme_raise", _wrap_scheme_raise},
{"Language::MzScheme::scheme_wrong_count", _wrap_scheme_wrong_count},
{"Language::MzScheme::scheme_wrong_count_m", _wrap_scheme_wrong_count_m},
{"Language::MzScheme::scheme_case_lambda_wrong_count", _wrap_scheme_case_lambda_wrong_count},
{"Language::MzScheme::scheme_wrong_type", _wrap_scheme_wrong_type},
{"Language::MzScheme::scheme_arg_mismatch", _wrap_scheme_arg_mismatch},
{"Language::MzScheme::scheme_wrong_return_arity", _wrap_scheme_wrong_return_arity},
{"Language::MzScheme::scheme_unbound_global", _wrap_scheme_unbound_global},
{"Language::MzScheme::scheme_make_type", _wrap_scheme_make_type},
{"Language::MzScheme::scheme_get_type_name", _wrap_scheme_get_type_name},
{"Language::MzScheme::scheme_make_eof", _wrap_scheme_make_eof},
{"Language::MzScheme::scheme_make_null", _wrap_scheme_make_null},
{"Language::MzScheme::scheme_make_true", _wrap_scheme_make_true},
{"Language::MzScheme::scheme_make_false", _wrap_scheme_make_false},
{"Language::MzScheme::scheme_make_void", _wrap_scheme_make_void},
{"Language::MzScheme::scheme_eval", _wrap_scheme_eval},
{"Language::MzScheme::scheme_eval_multi", _wrap_scheme_eval_multi},
{"Language::MzScheme::scheme_eval_compiled", _wrap_scheme_eval_compiled},
{"Language::MzScheme::scheme_eval_compiled_multi", _wrap_scheme_eval_compiled_multi},
{"Language::MzScheme::_scheme_eval_compiled", _wrap__scheme_eval_compiled},
{"Language::MzScheme::_scheme_eval_compiled_multi", _wrap__scheme_eval_compiled_multi},
{"Language::MzScheme::scheme_apply", _wrap_scheme_apply},
{"Language::MzScheme::scheme_apply_multi", _wrap_scheme_apply_multi},
{"Language::MzScheme::scheme_apply_eb", _wrap_scheme_apply_eb},
{"Language::MzScheme::scheme_apply_multi_eb", _wrap_scheme_apply_multi_eb},
{"Language::MzScheme::scheme_apply_to_list", _wrap_scheme_apply_to_list},
{"Language::MzScheme::scheme_eval_string", _wrap_scheme_eval_string},
{"Language::MzScheme::scheme_eval_string_multi", _wrap_scheme_eval_string_multi},
{"Language::MzScheme::scheme_eval_string_all", _wrap_scheme_eval_string_all},
{"Language::MzScheme::_scheme_apply_known_closed_prim", _wrap__scheme_apply_known_closed_prim},
{"Language::MzScheme::_scheme_apply_known_closed_prim_multi", _wrap__scheme_apply_known_closed_prim_multi},
{"Language::MzScheme::_scheme_apply_closed_prim", _wrap__scheme_apply_closed_prim},
{"Language::MzScheme::_scheme_apply_closed_prim_multi", _wrap__scheme_apply_closed_prim_multi},
{"Language::MzScheme::scheme_values", _wrap_scheme_values},
{"Language::MzScheme::scheme_check_one_value", _wrap_scheme_check_one_value},
{"Language::MzScheme::scheme_tail_apply", _wrap_scheme_tail_apply},
{"Language::MzScheme::scheme_tail_apply_no_copy", _wrap_scheme_tail_apply_no_copy},
{"Language::MzScheme::scheme_tail_apply_to_list", _wrap_scheme_tail_apply_to_list},
{"Language::MzScheme::scheme_tail_eval_expr", _wrap_scheme_tail_eval_expr},
{"Language::MzScheme::scheme_set_tail_buffer_size", _wrap_scheme_set_tail_buffer_size},
{"Language::MzScheme::scheme_force_value", _wrap_scheme_force_value},
{"Language::MzScheme::scheme_set_cont_mark", _wrap_scheme_set_cont_mark},
{"Language::MzScheme::scheme_push_continuation_frame", _wrap_scheme_push_continuation_frame},
{"Language::MzScheme::scheme_pop_continuation_frame", _wrap_scheme_pop_continuation_frame},
{"Language::MzScheme::scheme_temp_dec_mark_depth", _wrap_scheme_temp_dec_mark_depth},
{"Language::MzScheme::scheme_temp_inc_mark_depth", _wrap_scheme_temp_inc_mark_depth},
{"Language::MzScheme::scheme_current_continuation_marks", _wrap_scheme_current_continuation_marks},
{"Language::MzScheme::scheme_do_eval", _wrap_scheme_do_eval},
{"Language::MzScheme::scheme_eval_compiled_stx_string", _wrap_scheme_eval_compiled_stx_string},
{"Language::MzScheme::scheme_load_compiled_stx_string", _wrap_scheme_load_compiled_stx_string},
{"Language::MzScheme::scheme_compiled_stx_symbol", _wrap_scheme_compiled_stx_symbol},
{"Language::MzScheme::scheme_eval_compiled_sized_string", _wrap_scheme_eval_compiled_sized_string},
{"Language::MzScheme::GC_malloc", _wrap_GC_malloc},
{"Language::MzScheme::GC_malloc_atomic", _wrap_GC_malloc_atomic},
{"Language::MzScheme::GC_malloc_stubborn", _wrap_GC_malloc_stubborn},
{"Language::MzScheme::GC_malloc_uncollectable", _wrap_GC_malloc_uncollectable},
{"Language::MzScheme::scheme_malloc_eternal", _wrap_scheme_malloc_eternal},
{"Language::MzScheme::scheme_end_stubborn_change", _wrap_scheme_end_stubborn_change},
{"Language::MzScheme::scheme_calloc", _wrap_scheme_calloc},
{"Language::MzScheme::scheme_strdup", _wrap_scheme_strdup},
{"Language::MzScheme::scheme_strdup_eternal", _wrap_scheme_strdup_eternal},
{"Language::MzScheme::scheme_malloc_fail_ok", _wrap_scheme_malloc_fail_ok},
{"Language::MzScheme::scheme_weak_reference", _wrap_scheme_weak_reference},
{"Language::MzScheme::scheme_weak_reference_indirect", _wrap_scheme_weak_reference_indirect},
{"Language::MzScheme::scheme_unweak_reference", _wrap_scheme_unweak_reference},
{"Language::MzScheme::scheme_add_finalizer", _wrap_scheme_add_finalizer},
{"Language::MzScheme::scheme_add_finalizer_once", _wrap_scheme_add_finalizer_once},
{"Language::MzScheme::scheme_add_scheme_finalizer", _wrap_scheme_add_scheme_finalizer},
{"Language::MzScheme::scheme_add_scheme_finalizer_once", _wrap_scheme_add_scheme_finalizer_once},
{"Language::MzScheme::scheme_remove_all_finalization", _wrap_scheme_remove_all_finalization},
{"Language::MzScheme::scheme_dont_gc_ptr", _wrap_scheme_dont_gc_ptr},
{"Language::MzScheme::scheme_gc_ptr_ok", _wrap_scheme_gc_ptr_ok},
{"Language::MzScheme::scheme_collect_garbage", _wrap_scheme_collect_garbage},
{"Language::MzScheme::scheme_make_bucket_table", _wrap_scheme_make_bucket_table},
{"Language::MzScheme::scheme_add_to_table", _wrap_scheme_add_to_table},
{"Language::MzScheme::scheme_change_in_table", _wrap_scheme_change_in_table},
{"Language::MzScheme::scheme_lookup_in_table", _wrap_scheme_lookup_in_table},
{"Language::MzScheme::scheme_bucket_from_table", _wrap_scheme_bucket_from_table},
{"Language::MzScheme::scheme_bucket_table_equal", _wrap_scheme_bucket_table_equal},
{"Language::MzScheme::scheme_make_hash_table", _wrap_scheme_make_hash_table},
{"Language::MzScheme::scheme_make_hash_table_equal", _wrap_scheme_make_hash_table_equal},
{"Language::MzScheme::scheme_hash_set", _wrap_scheme_hash_set},
{"Language::MzScheme::scheme_hash_get", _wrap_scheme_hash_get},
{"Language::MzScheme::scheme_hash_table_equal", _wrap_scheme_hash_table_equal},
{"Language::MzScheme::scheme_is_hash_table_equal", _wrap_scheme_is_hash_table_equal},
{"Language::MzScheme::scheme_make_prim", _wrap_scheme_make_prim},
{"Language::MzScheme::scheme_make_noneternal_prim", _wrap_scheme_make_noneternal_prim},
{"Language::MzScheme::scheme_make_closed_prim", _wrap_scheme_make_closed_prim},
{"Language::MzScheme::scheme_make_prim_w_arity", _wrap_scheme_make_prim_w_arity},
{"Language::MzScheme::scheme_make_folding_prim", _wrap_scheme_make_folding_prim},
{"Language::MzScheme::scheme_make_noneternal_prim_w_arity", _wrap_scheme_make_noneternal_prim_w_arity},
{"Language::MzScheme::scheme_make_closed_prim_w_arity", _wrap_scheme_make_closed_prim_w_arity},
{"Language::MzScheme::scheme_make_folding_closed_prim", _wrap_scheme_make_folding_closed_prim},
{"Language::MzScheme::scheme_make_prim_w_everything", _wrap_scheme_make_prim_w_everything},
{"Language::MzScheme::scheme_make_closed_prim_w_everything", _wrap_scheme_make_closed_prim_w_everything},
{"Language::MzScheme::scheme_prim_is_method", _wrap_scheme_prim_is_method},
{"Language::MzScheme::scheme_make_pair", _wrap_scheme_make_pair},
{"Language::MzScheme::scheme_make_immutable_pair", _wrap_scheme_make_immutable_pair},
{"Language::MzScheme::scheme_make_string", _wrap_scheme_make_string},
{"Language::MzScheme::scheme_make_sized_string", _wrap_scheme_make_sized_string},
{"Language::MzScheme::scheme_make_sized_offset_string", _wrap_scheme_make_sized_offset_string},
{"Language::MzScheme::scheme_make_immutable_sized_string", _wrap_scheme_make_immutable_sized_string},
{"Language::MzScheme::scheme_make_string_without_copying", _wrap_scheme_make_string_without_copying},
{"Language::MzScheme::scheme_alloc_string", _wrap_scheme_alloc_string},
{"Language::MzScheme::scheme_append_string", _wrap_scheme_append_string},
{"Language::MzScheme::scheme_make_vector", _wrap_scheme_make_vector},
{"Language::MzScheme::scheme_make_integer_value", _wrap_scheme_make_integer_value},
{"Language::MzScheme::scheme_make_integer_value_from_unsigned", _wrap_scheme_make_integer_value_from_unsigned},
{"Language::MzScheme::scheme_make_integer_value_from_long_long", _wrap_scheme_make_integer_value_from_long_long},
{"Language::MzScheme::scheme_make_integer_value_from_unsigned_long_long", _wrap_scheme_make_integer_value_from_unsigned_long_long},
{"Language::MzScheme::scheme_make_double", _wrap_scheme_make_double},
{"Language::MzScheme::scheme_make_char", _wrap_scheme_make_char},
{"Language::MzScheme::scheme_make_sema", _wrap_scheme_make_sema},
{"Language::MzScheme::scheme_post_sema", _wrap_scheme_post_sema},
{"Language::MzScheme::scheme_post_sema_all", _wrap_scheme_post_sema_all},
{"Language::MzScheme::scheme_wait_sema", _wrap_scheme_wait_sema},
{"Language::MzScheme::scheme_make_channel", _wrap_scheme_make_channel},
{"Language::MzScheme::scheme_get_int_val", _wrap_scheme_get_int_val},
{"Language::MzScheme::scheme_get_unsigned_int_val", _wrap_scheme_get_unsigned_int_val},
{"Language::MzScheme::scheme_real_to_double", _wrap_scheme_real_to_double},
{"Language::MzScheme::scheme_make_cptr", _wrap_scheme_make_cptr},
{"Language::MzScheme::scheme_get_proc_name", _wrap_scheme_get_proc_name},
{"Language::MzScheme::scheme_make_bignum", _wrap_scheme_make_bignum},
{"Language::MzScheme::scheme_make_bignum_from_unsigned", _wrap_scheme_make_bignum_from_unsigned},
{"Language::MzScheme::scheme_bignum_to_double", _wrap_scheme_bignum_to_double},
{"Language::MzScheme::scheme_bignum_from_double", _wrap_scheme_bignum_from_double},
{"Language::MzScheme::scheme_bignum_to_string", _wrap_scheme_bignum_to_string},
{"Language::MzScheme::scheme_bignum_to_allocated_string", _wrap_scheme_bignum_to_allocated_string},
{"Language::MzScheme::scheme_read_bignum", _wrap_scheme_read_bignum},
{"Language::MzScheme::scheme_bignum_normalize", _wrap_scheme_bignum_normalize},
{"Language::MzScheme::scheme_make_rational", _wrap_scheme_make_rational},
{"Language::MzScheme::scheme_rational_to_double", _wrap_scheme_rational_to_double},
{"Language::MzScheme::scheme_rational_from_double", _wrap_scheme_rational_from_double},
{"Language::MzScheme::scheme_rational_normalize", _wrap_scheme_rational_normalize},
{"Language::MzScheme::scheme_rational_numerator", _wrap_scheme_rational_numerator},
{"Language::MzScheme::scheme_rational_denominator", _wrap_scheme_rational_denominator},
{"Language::MzScheme::scheme_make_complex", _wrap_scheme_make_complex},
{"Language::MzScheme::scheme_complex_normalize", _wrap_scheme_complex_normalize},
{"Language::MzScheme::scheme_complex_real_part", _wrap_scheme_complex_real_part},
{"Language::MzScheme::scheme_complex_imaginary_part", _wrap_scheme_complex_imaginary_part},
{"Language::MzScheme::scheme_is_exact", _wrap_scheme_is_exact},
{"Language::MzScheme::scheme_is_inexact", _wrap_scheme_is_inexact},
{"Language::MzScheme::scheme_expand", _wrap_scheme_expand},
{"Language::MzScheme::scheme_compile", _wrap_scheme_compile},
{"Language::MzScheme::scheme_read", _wrap_scheme_read},
{"Language::MzScheme::scheme_read_syntax", _wrap_scheme_read_syntax},
{"Language::MzScheme::scheme_write", _wrap_scheme_write},
{"Language::MzScheme::scheme_display", _wrap_scheme_display},
{"Language::MzScheme::scheme_write_w_max", _wrap_scheme_write_w_max},
{"Language::MzScheme::scheme_display_w_max", _wrap_scheme_display_w_max},
{"Language::MzScheme::scheme_write_string", _wrap_scheme_write_string},
{"Language::MzScheme::scheme_put_string", _wrap_scheme_put_string},
{"Language::MzScheme::scheme_write_to_string", _wrap_scheme_write_to_string},
{"Language::MzScheme::scheme_display_to_string", _wrap_scheme_display_to_string},
{"Language::MzScheme::scheme_write_to_string_w_max", _wrap_scheme_write_to_string_w_max},
{"Language::MzScheme::scheme_display_to_string_w_max", _wrap_scheme_display_to_string_w_max},
{"Language::MzScheme::scheme_debug_print", _wrap_scheme_debug_print},
{"Language::MzScheme::scheme_flush_output", _wrap_scheme_flush_output},
{"Language::MzScheme::scheme_format", _wrap_scheme_format},
{"Language::MzScheme::scheme_printf", _wrap_scheme_printf},
{"Language::MzScheme::scheme_getc", _wrap_scheme_getc},
{"Language::MzScheme::scheme_peekc", _wrap_scheme_peekc},
{"Language::MzScheme::scheme_peekc_skip", _wrap_scheme_peekc_skip},
{"Language::MzScheme::scheme_getc_special_ok", _wrap_scheme_getc_special_ok},
{"Language::MzScheme::scheme_peekc_special_ok", _wrap_scheme_peekc_special_ok},
{"Language::MzScheme::scheme_peekc_special_ok_skip", _wrap_scheme_peekc_special_ok_skip},
{"Language::MzScheme::scheme_ungetc", _wrap_scheme_ungetc},
{"Language::MzScheme::scheme_char_ready", _wrap_scheme_char_ready},
{"Language::MzScheme::scheme_peekc_is_ungetc", _wrap_scheme_peekc_is_ungetc},
{"Language::MzScheme::scheme_need_wakeup", _wrap_scheme_need_wakeup},
{"Language::MzScheme::scheme_get_string", _wrap_scheme_get_string},
{"Language::MzScheme::scheme_get_chars", _wrap_scheme_get_chars},
{"Language::MzScheme::scheme_tell", _wrap_scheme_tell},
{"Language::MzScheme::scheme_output_tell", _wrap_scheme_output_tell},
{"Language::MzScheme::scheme_tell_line", _wrap_scheme_tell_line},
{"Language::MzScheme::scheme_tell_column", _wrap_scheme_tell_column},
{"Language::MzScheme::scheme_count_lines", _wrap_scheme_count_lines},
{"Language::MzScheme::scheme_close_input_port", _wrap_scheme_close_input_port},
{"Language::MzScheme::scheme_close_output_port", _wrap_scheme_close_output_port},
{"Language::MzScheme::scheme_make_port_type", _wrap_scheme_make_port_type},
{"Language::MzScheme::scheme_make_input_port", _wrap_scheme_make_input_port},
{"Language::MzScheme::scheme_make_output_port", _wrap_scheme_make_output_port},
{"Language::MzScheme::scheme_open_input_file", _wrap_scheme_open_input_file},
{"Language::MzScheme::scheme_open_output_file", _wrap_scheme_open_output_file},
{"Language::MzScheme::scheme_make_file_input_port", _wrap_scheme_make_file_input_port},
{"Language::MzScheme::scheme_make_named_file_input_port", _wrap_scheme_make_named_file_input_port},
{"Language::MzScheme::scheme_make_file_output_port", _wrap_scheme_make_file_output_port},
{"Language::MzScheme::scheme_make_string_input_port", _wrap_scheme_make_string_input_port},
{"Language::MzScheme::scheme_make_sized_string_input_port", _wrap_scheme_make_sized_string_input_port},
{"Language::MzScheme::scheme_make_string_output_port", _wrap_scheme_make_string_output_port},
{"Language::MzScheme::scheme_get_string_output", _wrap_scheme_get_string_output},
{"Language::MzScheme::scheme_get_sized_string_output", _wrap_scheme_get_sized_string_output},
{"Language::MzScheme::scheme_pipe", _wrap_scheme_pipe},
{"Language::MzScheme::scheme_pipe_with_limit", _wrap_scheme_pipe_with_limit},
{"Language::MzScheme::scheme_set_file_position", _wrap_scheme_set_file_position},
{"Language::MzScheme::scheme_file_exists", _wrap_scheme_file_exists},
{"Language::MzScheme::scheme_directory_exists", _wrap_scheme_directory_exists},
{"Language::MzScheme::scheme_expand_filename", _wrap_scheme_expand_filename},
{"Language::MzScheme::scheme_os_getcwd", _wrap_scheme_os_getcwd},
{"Language::MzScheme::scheme_os_setcwd", _wrap_scheme_os_setcwd},
{"Language::MzScheme::scheme_getdrive", _wrap_scheme_getdrive},
{"Language::MzScheme::scheme_split_pathname", _wrap_scheme_split_pathname},
{"Language::MzScheme::scheme_build_pathname", _wrap_scheme_build_pathname},
{"Language::MzScheme::scheme_alloc_fdset_array", _wrap_scheme_alloc_fdset_array},
{"Language::MzScheme::scheme_init_fdset_array", _wrap_scheme_init_fdset_array},
{"Language::MzScheme::scheme_get_fdset", _wrap_scheme_get_fdset},
{"Language::MzScheme::scheme_fdzero", _wrap_scheme_fdzero},
{"Language::MzScheme::scheme_fdset", _wrap_scheme_fdset},
{"Language::MzScheme::scheme_fdclr", _wrap_scheme_fdclr},
{"Language::MzScheme::scheme_fdisset", _wrap_scheme_fdisset},
{"Language::MzScheme::scheme_add_fd_handle", _wrap_scheme_add_fd_handle},
{"Language::MzScheme::scheme_add_fd_eventmask", _wrap_scheme_add_fd_eventmask},
{"Language::MzScheme::scheme_security_check_file", _wrap_scheme_security_check_file},
{"Language::MzScheme::scheme_security_check_network", _wrap_scheme_security_check_network},
{"Language::MzScheme::scheme_get_host_address", _wrap_scheme_get_host_address},
{"Language::MzScheme::scheme_make_namespace", _wrap_scheme_make_namespace},
{"Language::MzScheme::scheme_add_namespace_option", _wrap_scheme_add_namespace_option},
{"Language::MzScheme::scheme_require_from_original_env", _wrap_scheme_require_from_original_env},
{"Language::MzScheme::scheme_add_global", _wrap_scheme_add_global},
{"Language::MzScheme::scheme_add_global_symbol", _wrap_scheme_add_global_symbol},
{"Language::MzScheme::scheme_make_envunbox", _wrap_scheme_make_envunbox},
{"Language::MzScheme::scheme_lookup_global", _wrap_scheme_lookup_global},
{"Language::MzScheme::scheme_global_bucket", _wrap_scheme_global_bucket},
{"Language::MzScheme::scheme_global_keyword_bucket", _wrap_scheme_global_keyword_bucket},
{"Language::MzScheme::scheme_module_bucket", _wrap_scheme_module_bucket},
{"Language::MzScheme::scheme_exptime_global_bucket", _wrap_scheme_exptime_global_bucket},
{"Language::MzScheme::scheme_exptime_module_bucket", _wrap_scheme_exptime_module_bucket},
{"Language::MzScheme::scheme_builtin_value", _wrap_scheme_builtin_value},
{"Language::MzScheme::scheme_set_global_bucket", _wrap_scheme_set_global_bucket},
{"Language::MzScheme::scheme_install_macro", _wrap_scheme_install_macro},
{"Language::MzScheme::scheme_save_initial_module_set", _wrap_scheme_save_initial_module_set},
{"Language::MzScheme::scheme_primitive_module", _wrap_scheme_primitive_module},
{"Language::MzScheme::scheme_finish_primitive_module", _wrap_scheme_finish_primitive_module},
{"Language::MzScheme::scheme_make_modidx", _wrap_scheme_make_modidx},
{"Language::MzScheme::scheme_declare_module", _wrap_scheme_declare_module},
{"Language::MzScheme::scheme_intern_symbol", _wrap_scheme_intern_symbol},
{"Language::MzScheme::scheme_intern_exact_symbol", _wrap_scheme_intern_exact_symbol},
{"Language::MzScheme::scheme_make_symbol", _wrap_scheme_make_symbol},
{"Language::MzScheme::scheme_make_exact_symbol", _wrap_scheme_make_exact_symbol},
{"Language::MzScheme::scheme_symbol_name", _wrap_scheme_symbol_name},
{"Language::MzScheme::scheme_symbol_name_and_size", _wrap_scheme_symbol_name_and_size},
{"Language::MzScheme::scheme_symbol_val", _wrap_scheme_symbol_val},
{"Language::MzScheme::scheme_make_struct_values", _wrap_scheme_make_struct_values},
{"Language::MzScheme::scheme_make_struct_names", _wrap_scheme_make_struct_names},
{"Language::MzScheme::scheme_make_struct_type", _wrap_scheme_make_struct_type},
{"Language::MzScheme::scheme_make_struct_instance", _wrap_scheme_make_struct_instance},
{"Language::MzScheme::scheme_make_struct_exptime", _wrap_scheme_make_struct_exptime},
{"Language::MzScheme::scheme_is_struct_instance", _wrap_scheme_is_struct_instance},
{"Language::MzScheme::scheme_struct_ref", _wrap_scheme_struct_ref},
{"Language::MzScheme::scheme_struct_set", _wrap_scheme_struct_set},
{"Language::MzScheme::scheme_make_struct_type_property", _wrap_scheme_make_struct_type_property},
{"Language::MzScheme::scheme_make_struct_type_property_w_guard", _wrap_scheme_make_struct_type_property_w_guard},
{"Language::MzScheme::scheme_struct_type_property_ref", _wrap_scheme_struct_type_property_ref},
{"Language::MzScheme::scheme_eq", _wrap_scheme_eq},
{"Language::MzScheme::scheme_eqv", _wrap_scheme_eqv},
{"Language::MzScheme::scheme_equal", _wrap_scheme_equal},
{"Language::MzScheme::scheme_equal_hash_key", _wrap_scheme_equal_hash_key},
{"Language::MzScheme::scheme_equal_hash_key2", _wrap_scheme_equal_hash_key2},
{"Language::MzScheme::scheme_build_list", _wrap_scheme_build_list},
{"Language::MzScheme::scheme_make_list_immutable", _wrap_scheme_make_list_immutable},
{"Language::MzScheme::scheme_list_length", _wrap_scheme_list_length},
{"Language::MzScheme::scheme_proper_list_length", _wrap_scheme_proper_list_length},
{"Language::MzScheme::scheme_alloc_list", _wrap_scheme_alloc_list},
{"Language::MzScheme::scheme_map_1", _wrap_scheme_map_1},
{"Language::MzScheme::scheme_car", _wrap_scheme_car},
{"Language::MzScheme::scheme_cdr", _wrap_scheme_cdr},
{"Language::MzScheme::scheme_cadr", _wrap_scheme_cadr},
{"Language::MzScheme::scheme_caddr", _wrap_scheme_caddr},
{"Language::MzScheme::scheme_vector_to_list", _wrap_scheme_vector_to_list},
{"Language::MzScheme::scheme_list_to_vector", _wrap_scheme_list_to_vector},
{"Language::MzScheme::scheme_append", _wrap_scheme_append},
{"Language::MzScheme::scheme_box", _wrap_scheme_box},
{"Language::MzScheme::scheme_unbox", _wrap_scheme_unbox},
{"Language::MzScheme::scheme_set_box", _wrap_scheme_set_box},
{"Language::MzScheme::scheme_make_weak_box", _wrap_scheme_make_weak_box},
{"Language::MzScheme::scheme_load", _wrap_scheme_load},
{"Language::MzScheme::scheme_load_extension", _wrap_scheme_load_extension},
{"Language::MzScheme::scheme_register_extension_global", _wrap_scheme_register_extension_global},
{"Language::MzScheme::scheme_get_seconds", _wrap_scheme_get_seconds},
{"Language::MzScheme::scheme_get_milliseconds", _wrap_scheme_get_milliseconds},
{"Language::MzScheme::scheme_get_inexact_milliseconds", _wrap_scheme_get_inexact_milliseconds},
{"Language::MzScheme::scheme_get_process_milliseconds", _wrap_scheme_get_process_milliseconds},
{"Language::MzScheme::scheme_banner", _wrap_scheme_banner},
{"Language::MzScheme::scheme_version", _wrap_scheme_version},
{"Language::MzScheme::scheme_check_proc_arity", _wrap_scheme_check_proc_arity},
{"Language::MzScheme::scheme_make_provided_string", _wrap_scheme_make_provided_string},
{"Language::MzScheme::scheme_make_args_string", _wrap_scheme_make_args_string},
{"Language::MzScheme::scheme_no_dumps", _wrap_scheme_no_dumps},
{"Language::MzScheme::scheme_system_library_subpath", _wrap_scheme_system_library_subpath},
{"Language::MzScheme::scheme_signal_received", _wrap_scheme_signal_received},
{"Language::MzScheme::scheme_dynamic_wind", _wrap_scheme_dynamic_wind},
{"Language::MzScheme::scheme_register_finalizer", _wrap_scheme_register_finalizer},
{0,0}
};


static void SWIG_Perl_SetTypeListHandle(swig_type_info **handle) {
    SV *pointer;
    
    /* create a new pointer */
    pointer = get_sv("swig_runtime_data::type_pointer" SWIG_RUNTIME_VERSION SWIG_TYPE_TABLE_NAME, TRUE);
    sv_setiv(pointer, PTR2IV(swig_type_list_handle));
}

static swig_type_info **
SWIG_Perl_LookupTypePointer(swig_type_info **type_list_handle) {
    swig_type_info **type_pointer;
    
    /* first check if module already created */
    type_pointer = SWIG_Perl_GetTypeListHandle();
    if (type_pointer) {
        return type_pointer;
    } else {
        /* create a new module and variable */
        SWIG_Perl_SetTypeListHandle(type_list_handle);
        return type_list_handle;
    }
}


#ifdef __cplusplus
extern "C"
#endif

XS(SWIG_init) {
    dXSARGS;
    int i;
    static int _init = 0;
    if (!_init) {
        swig_type_list_handle = SWIG_Perl_LookupTypePointer(swig_type_list_handle);
        for (i = 0; swig_types_initial[i]; i++) {
            swig_types[i] = SWIG_TypeRegister(swig_types_initial[i]);
        }	
        _init = 1;
    }
    
    /* Install commands */
    for (i = 0; swig_commands[i].name; i++) {
        newXS((char*) swig_commands[i].name,swig_commands[i].wrapper, (char*)__FILE__);
    }
    
    /* Install variables */
    for (i = 0; swig_variables[i].name; i++) {
        SV *sv;
        sv = perl_get_sv((char*) swig_variables[i].name, TRUE | 0x2);
        if (swig_variables[i].type) {
            SWIG_MakePtr(sv,(void *)1, *swig_variables[i].type,0);
        } else {
            sv_setiv(sv,(IV) 0);
        }
        swig_create_magic(sv, (char *) swig_variables[i].name, swig_variables[i].set, swig_variables[i].get); 
    }
    
    /* Install constant */
    for (i = 0; swig_constants[i].type; i++) {
        SV *sv;
        sv = perl_get_sv((char*)swig_constants[i].name, TRUE | 0x2);
        switch(swig_constants[i].type) {
            case SWIG_INT:
            sv_setiv(sv, (IV) swig_constants[i].lvalue);
            break;
            case SWIG_FLOAT:
            sv_setnv(sv, (double) swig_constants[i].dvalue);
            break;
            case SWIG_STRING:
            sv_setpv(sv, (char *) swig_constants[i].pvalue);
            break;
            case SWIG_POINTER:
            SWIG_MakePtr(sv, swig_constants[i].pvalue, *(swig_constants[i].ptype),0);
            break;
            case SWIG_BINARY:
            SWIG_MakePackedObj(sv, swig_constants[i].pvalue, swig_constants[i].lvalue, *(swig_constants[i].ptype));
            break;
            default:
            break;
        }
        SvREADONLY_on(sv);
    }
    
    ST(0) = &PL_sv_yes;
    XSRETURN(1);
}

