/* Compiler: ECL 26.3.27                                                      */
/* Source: /build/ecl/src/ecl-26.3.27/src/cmp/cmptype-arith.lsp               */
#include <ecl/ecl-cmp.h>
#include "cmp/cmptype-arith.eclh"
/* function definition for MEMBER-TYPE                                        */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L3077member_type(cl_object v1type, cl_object v2disjoint_supertypes)
{
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 {
  cl_object v3;
  {
   cl_object v4;
   v4 = ecl_make_cfun_va((cl_objectfn)LC3076__lambda16_va,ECL_NIL,Cblock,2);
   v3 = v4;
  }
  {
   cl_object v4;
   v4 = v2disjoint_supertypes;
   goto L6;
L5:;
   {
    cl_object v5;
    cl_object v6;
    {
     cl_object v7;
     v7 = v4;
     if (ecl_unlikely(ECL_ATOM(v7))) FEtype_error_cons(v7);
     value0 = ECL_NIL;
     cl_env_copy->nvalues = 0;
     v5 = v7;
    }
    v6 = ECL_CONS_CAR(v5);
    if (Null(cl_subtypep(3, v1type, v6, ecl_cmp_symbol_value(cl_env_copy,VV[3])))){
     goto L8;
    }
    value0 = v5;
    cl_env_copy->nvalues = 1;
    return value0;
   }
L8:;
   v4 = ECL_CONS_CDR(v4);
L6:;
   if (v4==ECL_NIL) {
    goto L16;
   }
   goto L5;
L16:;
   value0 = ECL_NIL;
   cl_env_copy->nvalues = 1;
   return value0;
  }
 }
}
static cl_object L3077member_type_va(cl_narg narg, cl_object v5type, cl_object v6disjoint_supertypes, ...)
{
 if (ecl_unlikely(narg!=2)) FEwrong_num_arguments(VV[1]);
 {
  return L3077member_type(v5type, v6disjoint_supertypes);
 }
}
/* function definition for OBJECT-TYPE                                        */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L3078object_type(cl_object v1thing)
{
 cl_object T0;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 if (!(ECL_FIXNUMP(v1thing))){
  goto L2;
 }
 value0 = ECL_SYM("FIXNUM",374);
 cl_env_copy->nvalues = 1;
 return value0;
L2:;
 if (!(ECL_SINGLE_FLOAT_P(v1thing))){
  goto L4;
 }
 value0 = ECL_SYM("SHORT-FLOAT",759);
 cl_env_copy->nvalues = 1;
 return value0;
L4:;
 if (!(ECL_SINGLE_FLOAT_P(v1thing))){
  goto L6;
 }
 value0 = ECL_SYM("SINGLE-FLOAT",781);
 cl_env_copy->nvalues = 1;
 return value0;
L6:;
 if (!(ECL_DOUBLE_FLOAT_P(v1thing))){
  goto L8;
 }
 value0 = ECL_SYM("DOUBLE-FLOAT",317);
 cl_env_copy->nvalues = 1;
 return value0;
L8:;
 if (!(ECL_LONG_FLOAT_P(v1thing))){
  goto L10;
 }
 value0 = ECL_SYM("LONG-FLOAT",510);
 cl_env_copy->nvalues = 1;
 return value0;
L10:;
 if (!(v1thing==ECL_NIL)){
  goto L12;
 }
 value0 = ECL_SYM("NULL",607);
 cl_env_copy->nvalues = 1;
 return value0;
L12:;
 if (!(ECL_SYMBOLP(v1thing))){
  goto L14;
 }
 value0 = ECL_SYM("SYMBOL",843);
 cl_env_copy->nvalues = 1;
 return value0;
L14:;
 if (!(ECL_CHARACTERP(v1thing))){
  goto L16;
 }
 value0 = ECL_SYM("CHARACTER",224);
 cl_env_copy->nvalues = 1;
 return value0;
L16:;
 if (!(ECL_BASE_STRING_P(v1thing))){
  goto L18;
 }
 value0 = ECL_SYM("BASE-STRING",123);
 cl_env_copy->nvalues = 1;
 return value0;
L18:;
 if (!(ECL_STRINGP(v1thing))){
  goto L20;
 }
 value0 = ECL_SYM("STRING",808);
 cl_env_copy->nvalues = 1;
 return value0;
L20:;
 if (!(ECL_BIT_VECTOR_P(v1thing))){
  goto L22;
 }
 value0 = ECL_SYM("BIT-VECTOR",136);
 cl_env_copy->nvalues = 1;
 return value0;
L22:;
 if (!(ECL_VECTORP(v1thing))){
  goto L24;
 }
 T0 = cl_array_element_type(v1thing);
 value0 = cl_list(2, ECL_SYM("VECTOR",902), T0);
 return value0;
L24:;
 if (!(ECL_ARRAYP(v1thing))){
  goto L26;
 }
 T0 = cl_array_element_type(v1thing);
 value0 = cl_list(2, ECL_SYM("ARRAY",98), T0);
 return value0;
L26:;
 if (Null(si_of_class_p(2, v1thing, ECL_SYM("STANDARD-OBJECT",980)))){
  goto L28;
 }
 value0 = ECL_SYM("STANDARD-OBJECT",980);
 cl_env_copy->nvalues = 1;
 return value0;
L28:;
 if (Null(si_of_class_p(2, v1thing, ECL_SYM("STRUCTURE-OBJECT",982)))){
  goto L30;
 }
 value0 = ECL_SYM("STRUCTURE-OBJECT",982);
 cl_env_copy->nvalues = 1;
 return value0;
L30:;
 value0 = ECL_T;
 cl_env_copy->nvalues = 1;
 return value0;
}
static cl_object L3078object_type_va(cl_narg narg, cl_object v2thing, ...)
{
 if (ecl_unlikely(narg!=1)) FEwrong_num_arguments(VV[8]);
 {
  return L3078object_type(v2thing);
 }
}
/* function definition for VALID-TYPE-SPECIFIER                               */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L3080valid_type_specifier(cl_object volatile v1type)
{
 cl_object T0, T1, T2, T3;
 cl_object volatile env0 = ECL_NIL;
 cl_object volatile CLV0;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object volatile value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 env0 = ECL_NIL;
 CLV0 = env0 = CONS(ECL_NEW_FRAME_ID(cl_env_copy),env0); /*  TAGBODY          */
 {
  ecl_frs_push(cl_env_copy,ECL_CONS_CAR(CLV0));
  if (__ecl_frs_push_result!=0) {
  if (cl_env_copy->values[0]==ecl_make_int8_t(0)) {
   goto L2;
  }
  ecl_internal_error("GO found an inexistent tag");
  } else {
  {
   cl_object v2;
   v2 = ecl_make_cclosure_va((cl_objectfn)LC3079__lambda28,env0,Cblock,1);
   T0 = v2;
  }
  T1 = CONS(ECL_SYM("ERROR",339),T0);
  T2 = ecl_list1(T1);
  T3 = CONS(T2,ecl_cmp_symbol_value(cl_env_copy,ECL_SYM("*HANDLER-CLUSTERS*",6)));
  ecl_bds_bind(cl_env_copy,ECL_SYM("*HANDLER-CLUSTERS*",6),T3); /*  *HANDLER-CLUSTERS* */
  if (Null(cl_subtypep(3, v1type, ECL_T, ecl_cmp_symbol_value(cl_env_copy,VV[3])))){
   goto L5;
  }
  cl_env_copy->nvalues = 2;
  cl_env_copy->values[1] = v1type;
  cl_env_copy->values[0] = ECL_T;
  ecl_frs_pop_n(cl_env_copy, 1);
  ecl_bds_unwind1(cl_env_copy);
  return cl_env_copy->values[0];
L5:;
  cl_env_copy->nvalues = 2;
  cl_env_copy->values[1] = ECL_NIL;
  cl_env_copy->values[0] = ECL_NIL;
  ecl_frs_pop_n(cl_env_copy, 1);
  ecl_bds_unwind1(cl_env_copy);
  return cl_env_copy->values[0];
L2:;
  cl_env_copy->nvalues = 2;
  cl_env_copy->values[1] = ECL_NIL;
  cl_env_copy->values[0] = ECL_NIL;
  ecl_frs_pop_n(cl_env_copy, 1);
  return cl_env_copy->values[0];
  }
 }
}
static cl_object L3080valid_type_specifier_va(cl_narg narg, cl_object v2type, ...)
{
 if (ecl_unlikely(narg!=1)) FEwrong_num_arguments(VV[10]);
 {
  return L3080valid_type_specifier(v2type);
 }
}
/* function definition for KNOWN-TYPE-P                                       */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L3081known_type_p(cl_object v1type)
{
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 value0 = cl_subtypep(3, v1type, ECL_T, ecl_cmp_symbol_value(cl_env_copy,VV[3]));
 return value0;
}
static cl_object L3081known_type_p_va(cl_narg narg, cl_object v2type, ...)
{
 if (ecl_unlikely(narg!=1)) FEwrong_num_arguments(VV[14]);
 {
  return L3081known_type_p(v2type);
 }
}
/* function definition for TRIVIAL-TYPE-P                                     */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L3082trivial_type_p(cl_object v1type)
{
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 value0 = cl_subtypep(3, ECL_T, v1type, ecl_cmp_symbol_value(cl_env_copy,VV[3]));
 return value0;
}
static cl_object L3082trivial_type_p_va(cl_narg narg, cl_object v2type, ...)
{
 if (ecl_unlikely(narg!=1)) FEwrong_num_arguments(VV[16]);
 {
  return L3082trivial_type_p(v2type);
 }
}
/* function definition for TYPE-AND-EMPTY-CACHE                               */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L3083type_and_empty_cache()
{
 cl_object T0;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 T0 = si_make_vector(ECL_T, ecl_make_fixnum(1024), ECL_NIL, ECL_NIL, ECL_NIL, ecl_make_int8_t(0));
 ecl_cmp_setq(cl_env_copy,VV[18],T0);
 value0 = ecl_cmp_symbol_value(cl_env_copy,VV[18]);
 cl_env_copy->nvalues = 1;
 return value0;
}
static cl_object L3083type_and_empty_cache_va(cl_narg narg, ...)
{
 if (ecl_unlikely(narg!=0)) FEwrong_num_arguments(VV[19]);
 {
  return L3083type_and_empty_cache();
 }
}
/* function definition for TYPE-AND                                           */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L3085type_and(cl_object v1t1, cl_object v2t2)
{
 cl_object T0, T1, T2;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 {
  cl_fixnum v3hash;
  cl_object v4cache;
  cl_object v5elt;
  {
   cl_object v6;
   T0 = si_hash_equal(2, v1t1, v2t2);
   v6 = ecl_boole(ECL_BOOLAND,(T0),(ecl_make_fixnum(1023)));
   {
    cl_fixnum v7;
    v7 = (cl_fixnum)(0);
    if (!(ECL_FIXNUMP(v6))){
     goto L8;
    }
    v7 = ecl_fixnum(v6);
    if (!((v7)<=(1023))){
     goto L13;
    }
    T0 = ecl_make_bool((v7)>=((cl_fixnum)(0)));
    goto L5;
L13:;
    T0 = ECL_NIL;
    goto L5;
L8:;
    T0 = ECL_NIL;
    goto L5;
   }
L5:;
   if (ecl_unlikely(!((T0)!=ECL_NIL)))
         FEwrong_type_argument(VV[32],v6);
   value0 = ECL_NIL;
   cl_env_copy->nvalues = 0;
   v3hash = ecl_fixnum(v6);
  }
  {
   cl_object v6;
   v6 = ecl_cmp_symbol_value(cl_env_copy,VV[18]);
   T0 = cl_typep(2, v6, VV[33]);
   if (ecl_unlikely(!((T0)!=ECL_NIL)))
         FEwrong_type_argument(VV[33],v6);
   value0 = ECL_NIL;
   cl_env_copy->nvalues = 0;
   v4cache = v6;
  }
  {
   cl_object v6;
   v6 = v4cache;
   T0 = v6;
   {
    cl_fixnum v7;
    v7 = v3hash;
    if (ecl_unlikely((v7)>=(v6)->vector.dim))
           FEwrong_index(ECL_NIL,v6,-1,ecl_make_fixnum(v7),(v6)->vector.dim);
    value0 = ECL_NIL;
    cl_env_copy->nvalues = 0;
    T1 = ecl_make_fixnum(v7);
   }
   v5elt = ecl_aref_unsafe(T0,ecl_fixnum(T1));
  }
  if (Null(v5elt)){
   goto L25;
  }
  {
   cl_object v6;
   {
    cl_object v7;
    v7 = v5elt;
    if (ecl_unlikely(ECL_ATOM(v7))) FEtype_error_cons(v7);
    value0 = ECL_NIL;
    cl_env_copy->nvalues = 0;
    v6 = v7;
   }
   {
    cl_object v7;
    v7 = v6;
    {
     bool v8;
     v8 = ECL_LISTP(v7);
     if (ecl_unlikely(!(v8)))
         FEwrong_type_argument(VV[37],v7);
     value0 = ECL_NIL;
     cl_env_copy->nvalues = 0;
    }
   }
   if (Null(v6)){
    goto L36;
   }
   {
    cl_object v7;
    v7 = ECL_CONS_CDR(v6);
    {
     cl_object v8;
     v8 = v7;
     if (ecl_unlikely(ECL_ATOM(v8))) FEtype_error_cons(v8);
     value0 = ECL_NIL;
     cl_env_copy->nvalues = 0;
     v5elt = v8;
    }
    v6 = ECL_CONS_CAR(v6);
   }
L36:;
   T0 = v6;
  }
  if (Null((cl_env_copy->function=ecl_fdefinition(VV[36]))->cfun.entry(2, T0, v1t1) /*  TYPE-SPECIFIER= */)){
   goto L25;
  }
  {
   cl_object v6;
   {
    cl_object v7;
    v7 = v5elt;
    if (ecl_unlikely(ECL_ATOM(v7))) FEtype_error_cons(v7);
    value0 = ECL_NIL;
    cl_env_copy->nvalues = 0;
    v6 = v7;
   }
   {
    cl_object v7;
    v7 = v6;
    {
     bool v8;
     v8 = ECL_LISTP(v7);
     if (ecl_unlikely(!(v8)))
         FEwrong_type_argument(VV[37],v7);
     value0 = ECL_NIL;
     cl_env_copy->nvalues = 0;
    }
   }
   if (Null(v6)){
    goto L51;
   }
   {
    cl_object v7;
    v7 = ECL_CONS_CDR(v6);
    {
     cl_object v8;
     v8 = v7;
     if (ecl_unlikely(ECL_ATOM(v8))) FEtype_error_cons(v8);
     value0 = ECL_NIL;
     cl_env_copy->nvalues = 0;
     v5elt = v8;
    }
    v6 = ECL_CONS_CAR(v6);
   }
L51:;
   T0 = v6;
  }
  if (Null((cl_env_copy->function=ecl_fdefinition(VV[36]))->cfun.entry(2, T0, v2t2) /*  TYPE-SPECIFIER= */)){
   goto L25;
  }
  value0 = ecl_car(v5elt);
  cl_env_copy->nvalues = 1;
  return value0;
L25:;
  {
   cl_object v6output;
   v6output = LC3084type_and(v1t1, v2t2);
   {
    cl_object v7;
    v7 = ecl_cmp_symbol_value(cl_env_copy,VV[18]);
    T0 = v7;
    {
     cl_fixnum v8;
     v8 = v3hash;
     if (ecl_unlikely((v8)>=(v7)->vector.dim))
           FEwrong_index(ECL_NIL,v7,-1,ecl_make_fixnum(v8),(v7)->vector.dim);
     value0 = ECL_NIL;
     cl_env_copy->nvalues = 0;
     T1 = ecl_make_fixnum(v8);
    }
    T2 = cl_list(3, v1t1, v2t2, v6output);
    ecl_aset_unsafe(T0,ecl_fixnum(T1),T2);
   }
   value0 = v6output;
   cl_env_copy->nvalues = 1;
   return value0;
  }
 }
}
static cl_object L3085type_and_va(cl_narg narg, cl_object v7t1, cl_object v8t2, ...)
{
 if (ecl_unlikely(narg!=2)) FEwrong_num_arguments(VV[21]);
 {
  return L3085type_and(v7t1, v8t2);
 }
}
/* function definition for VALUES-NUMBER-FROM-TYPE                            */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L3086values_number_from_type(cl_object v1type)
{
 cl_object T0;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 if ((v1type)==(ECL_T)) {
  goto L4;
 }
 if (!((v1type)==(ECL_SYM("*",20)))){
  goto L2;
 }
 goto L3;
L4:;
L3:;
 cl_env_copy->nvalues = 2;
 cl_env_copy->values[1] = ecl_cmp_symbol_value(cl_env_copy,ECL_SYM("MULTIPLE-VALUES-LIMIT",579));
 cl_env_copy->values[0] = ecl_make_int8_t(0);
 return cl_env_copy->values[0];
L2:;
 if (ECL_ATOM(v1type)) {
  goto L8;
 }
 T0 = ecl_car(v1type);
 if ((T0)==(ECL_SYM("VALUES",899))) {
  goto L6;
 }
 goto L7;
L8:;
L7:;
 cl_env_copy->nvalues = 2;
 cl_env_copy->values[1] = ecl_make_int8_t(1);
 cl_env_copy->values[0] = ecl_make_int8_t(1);
 return cl_env_copy->values[0];
L6:;
 {
  cl_object v2;
  cl_object v3;
  v2 = ECL_SYM("&REST",14);
  v3 = v1type;
  if (ecl_memql(v2,v3)!=ECL_NIL) {
   goto L12;
  }
 }
 {
  cl_object v2;
  cl_object v3;
  v2 = ECL_SYM("&OPTIONAL",13);
  v3 = v1type;
  if (Null(ecl_memql(v2,v3))){
   goto L10;
  }
  goto L11;
 }
L12:;
L11:;
 cl_env_copy->nvalues = 2;
 cl_env_copy->values[1] = ecl_cmp_symbol_value(cl_env_copy,ECL_SYM("MULTIPLE-VALUES-LIMIT",579));
 cl_env_copy->values[0] = ecl_make_int8_t(0);
 return cl_env_copy->values[0];
L10:;
 {
  cl_object v2l;
  {
   cl_fixnum v3;
   v3 = ecl_length(v1type);
   v2l = ecl_make_integer((v3)-1);
  }
  cl_env_copy->nvalues = 2;
  cl_env_copy->values[1] = v2l;
  cl_env_copy->values[0] = v2l;
  return cl_env_copy->values[0];
 }
}
static cl_object L3086values_number_from_type_va(cl_narg narg, cl_object v3type, ...)
{
 if (ecl_unlikely(narg!=1)) FEwrong_num_arguments(VV[39]);
 {
  return L3086values_number_from_type(v3type);
 }
}
/* function definition for VALUES-TYPE-PRIMARY-TYPE-EMPTY-CACHE               */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L3087values_type_primary_type_empty_cache()
{
 cl_object T0;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 T0 = si_make_vector(ECL_T, ecl_make_fixnum(1024), ECL_NIL, ECL_NIL, ECL_NIL, ecl_make_int8_t(0));
 ecl_cmp_setq(cl_env_copy,VV[41],T0);
 value0 = ecl_cmp_symbol_value(cl_env_copy,VV[41]);
 cl_env_copy->nvalues = 1;
 return value0;
}
static cl_object L3087values_type_primary_type_empty_cache_va(cl_narg narg, ...)
{
 if (ecl_unlikely(narg!=0)) FEwrong_num_arguments(VV[42]);
 {
  return L3087values_type_primary_type_empty_cache();
 }
}
/* function definition for VALUES-TYPE-PRIMARY-TYPE                           */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L3089values_type_primary_type(cl_object v1type)
{
 cl_object T0, T1, T2;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 {
  cl_fixnum v2hash;
  cl_object v3cache;
  cl_object v4elt;
  {
   cl_object v5;
   T0 = si_hash_equal(1, v1type);
   v5 = ecl_boole(ECL_BOOLAND,(T0),(ecl_make_fixnum(1023)));
   {
    cl_fixnum v6;
    v6 = (cl_fixnum)(0);
    if (!(ECL_FIXNUMP(v5))){
     goto L8;
    }
    v6 = ecl_fixnum(v5);
    if (!((v6)<=(1023))){
     goto L13;
    }
    T0 = ecl_make_bool((v6)>=((cl_fixnum)(0)));
    goto L5;
L13:;
    T0 = ECL_NIL;
    goto L5;
L8:;
    T0 = ECL_NIL;
    goto L5;
   }
L5:;
   if (ecl_unlikely(!((T0)!=ECL_NIL)))
         FEwrong_type_argument(VV[32],v5);
   value0 = ECL_NIL;
   cl_env_copy->nvalues = 0;
   v2hash = ecl_fixnum(v5);
  }
  {
   cl_object v5;
   v5 = ecl_cmp_symbol_value(cl_env_copy,VV[41]);
   T0 = cl_typep(2, v5, VV[33]);
   if (ecl_unlikely(!((T0)!=ECL_NIL)))
         FEwrong_type_argument(VV[33],v5);
   value0 = ECL_NIL;
   cl_env_copy->nvalues = 0;
   v3cache = v5;
  }
  {
   cl_object v5;
   v5 = v3cache;
   T0 = v5;
   {
    cl_fixnum v6;
    v6 = v2hash;
    if (ecl_unlikely((v6)>=(v5)->vector.dim))
           FEwrong_index(ECL_NIL,v5,-1,ecl_make_fixnum(v6),(v5)->vector.dim);
    value0 = ECL_NIL;
    cl_env_copy->nvalues = 0;
    T1 = ecl_make_fixnum(v6);
   }
   v4elt = ecl_aref_unsafe(T0,ecl_fixnum(T1));
  }
  if (Null(v4elt)){
   goto L25;
  }
  {
   cl_object v5;
   {
    cl_object v6;
    v6 = v4elt;
    if (ecl_unlikely(ECL_ATOM(v6))) FEtype_error_cons(v6);
    value0 = ECL_NIL;
    cl_env_copy->nvalues = 0;
    v5 = v6;
   }
   {
    cl_object v6;
    v6 = v5;
    {
     bool v7;
     v7 = ECL_LISTP(v6);
     if (ecl_unlikely(!(v7)))
         FEwrong_type_argument(VV[37],v6);
     value0 = ECL_NIL;
     cl_env_copy->nvalues = 0;
    }
   }
   if (Null(v5)){
    goto L35;
   }
   {
    cl_object v6;
    v6 = ECL_CONS_CDR(v5);
    {
     cl_object v7;
     v7 = v6;
     if (ecl_unlikely(ECL_ATOM(v7))) FEtype_error_cons(v7);
     value0 = ECL_NIL;
     cl_env_copy->nvalues = 0;
     v4elt = v7;
    }
    v5 = ECL_CONS_CAR(v5);
   }
L35:;
   T0 = v5;
  }
  if (Null((cl_env_copy->function=ecl_fdefinition(VV[36]))->cfun.entry(2, T0, v1type) /*  TYPE-SPECIFIER= */)){
   goto L25;
  }
  value0 = ecl_car(v4elt);
  cl_env_copy->nvalues = 1;
  return value0;
L25:;
  {
   cl_object v5output;
   v5output = LC3088values_type_primary_type(v1type);
   {
    cl_object v6;
    v6 = ecl_cmp_symbol_value(cl_env_copy,VV[41]);
    T0 = v6;
    {
     cl_fixnum v7;
     v7 = v2hash;
     if (ecl_unlikely((v7)>=(v6)->vector.dim))
           FEwrong_index(ECL_NIL,v6,-1,ecl_make_fixnum(v7),(v6)->vector.dim);
     value0 = ECL_NIL;
     cl_env_copy->nvalues = 0;
     T1 = ecl_make_fixnum(v7);
    }
    T2 = cl_list(2, v1type, v5output);
    ecl_aset_unsafe(T0,ecl_fixnum(T1),T2);
   }
   value0 = v5output;
   cl_env_copy->nvalues = 1;
   return value0;
  }
 }
}
static cl_object L3089values_type_primary_type_va(cl_narg narg, cl_object v6type, ...)
{
 if (ecl_unlikely(narg!=1)) FEwrong_num_arguments(VV[44]);
 {
  return L3089values_type_primary_type(v6type);
 }
}
/* function definition for VALUES-TYPE-TO-N-TYPES-EMPTY-CACHE                 */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L3090values_type_to_n_types_empty_cache()
{
 cl_object T0;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 T0 = si_make_vector(ECL_T, ecl_make_fixnum(1024), ECL_NIL, ECL_NIL, ECL_NIL, ecl_make_int8_t(0));
 ecl_cmp_setq(cl_env_copy,VV[50],T0);
 value0 = ecl_cmp_symbol_value(cl_env_copy,VV[50]);
 cl_env_copy->nvalues = 1;
 return value0;
}
static cl_object L3090values_type_to_n_types_empty_cache_va(cl_narg narg, ...)
{
 if (ecl_unlikely(narg!=0)) FEwrong_num_arguments(VV[51]);
 {
  return L3090values_type_to_n_types_empty_cache();
 }
}
/* function definition for VALUES-TYPE-TO-N-TYPES                             */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L3092values_type_to_n_types(cl_object v1type, cl_object v2length)
{
 cl_object T0, T1, T2;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 {
  cl_fixnum v3hash;
  cl_object v4cache;
  cl_object v5elt;
  {
   cl_object v6;
   T0 = si_hash_equal(2, v1type, v2length);
   v6 = ecl_boole(ECL_BOOLAND,(T0),(ecl_make_fixnum(1023)));
   {
    cl_fixnum v7;
    v7 = (cl_fixnum)(0);
    if (!(ECL_FIXNUMP(v6))){
     goto L8;
    }
    v7 = ecl_fixnum(v6);
    if (!((v7)<=(1023))){
     goto L13;
    }
    T0 = ecl_make_bool((v7)>=((cl_fixnum)(0)));
    goto L5;
L13:;
    T0 = ECL_NIL;
    goto L5;
L8:;
    T0 = ECL_NIL;
    goto L5;
   }
L5:;
   if (ecl_unlikely(!((T0)!=ECL_NIL)))
         FEwrong_type_argument(VV[32],v6);
   value0 = ECL_NIL;
   cl_env_copy->nvalues = 0;
   v3hash = ecl_fixnum(v6);
  }
  {
   cl_object v6;
   v6 = ecl_cmp_symbol_value(cl_env_copy,VV[50]);
   T0 = cl_typep(2, v6, VV[33]);
   if (ecl_unlikely(!((T0)!=ECL_NIL)))
         FEwrong_type_argument(VV[33],v6);
   value0 = ECL_NIL;
   cl_env_copy->nvalues = 0;
   v4cache = v6;
  }
  {
   cl_object v6;
   v6 = v4cache;
   T0 = v6;
   {
    cl_fixnum v7;
    v7 = v3hash;
    if (ecl_unlikely((v7)>=(v6)->vector.dim))
           FEwrong_index(ECL_NIL,v6,-1,ecl_make_fixnum(v7),(v6)->vector.dim);
    value0 = ECL_NIL;
    cl_env_copy->nvalues = 0;
    T1 = ecl_make_fixnum(v7);
   }
   v5elt = ecl_aref_unsafe(T0,ecl_fixnum(T1));
  }
  if (Null(v5elt)){
   goto L25;
  }
  {
   cl_object v6;
   {
    cl_object v7;
    v7 = v5elt;
    if (ecl_unlikely(ECL_ATOM(v7))) FEtype_error_cons(v7);
    value0 = ECL_NIL;
    cl_env_copy->nvalues = 0;
    v6 = v7;
   }
   {
    cl_object v7;
    v7 = v6;
    {
     bool v8;
     v8 = ECL_LISTP(v7);
     if (ecl_unlikely(!(v8)))
         FEwrong_type_argument(VV[37],v7);
     value0 = ECL_NIL;
     cl_env_copy->nvalues = 0;
    }
   }
   if (Null(v6)){
    goto L36;
   }
   {
    cl_object v7;
    v7 = ECL_CONS_CDR(v6);
    {
     cl_object v8;
     v8 = v7;
     if (ecl_unlikely(ECL_ATOM(v8))) FEtype_error_cons(v8);
     value0 = ECL_NIL;
     cl_env_copy->nvalues = 0;
     v5elt = v8;
    }
    v6 = ECL_CONS_CAR(v6);
   }
L36:;
   T0 = v6;
  }
  if (Null((cl_env_copy->function=ecl_fdefinition(VV[36]))->cfun.entry(2, T0, v1type) /*  TYPE-SPECIFIER= */)){
   goto L25;
  }
  {
   cl_object v6;
   {
    cl_object v7;
    v7 = v5elt;
    if (ecl_unlikely(ECL_ATOM(v7))) FEtype_error_cons(v7);
    value0 = ECL_NIL;
    cl_env_copy->nvalues = 0;
    v6 = v7;
   }
   {
    cl_object v7;
    v7 = v6;
    {
     bool v8;
     v8 = ECL_LISTP(v7);
     if (ecl_unlikely(!(v8)))
         FEwrong_type_argument(VV[37],v7);
     value0 = ECL_NIL;
     cl_env_copy->nvalues = 0;
    }
   }
   if (Null(v6)){
    goto L51;
   }
   {
    cl_object v7;
    v7 = ECL_CONS_CDR(v6);
    {
     cl_object v8;
     v8 = v7;
     if (ecl_unlikely(ECL_ATOM(v8))) FEtype_error_cons(v8);
     value0 = ECL_NIL;
     cl_env_copy->nvalues = 0;
     v5elt = v8;
    }
    v6 = ECL_CONS_CAR(v6);
   }
L51:;
   T0 = v6;
  }
  if (Null((cl_env_copy->function=ecl_fdefinition(VV[36]))->cfun.entry(2, T0, v2length) /*  TYPE-SPECIFIER= */)){
   goto L25;
  }
  value0 = ecl_car(v5elt);
  cl_env_copy->nvalues = 1;
  return value0;
L25:;
  {
   cl_object v6output;
   v6output = LC3091values_type_to_n_types(v1type, v2length);
   {
    cl_object v7;
    v7 = ecl_cmp_symbol_value(cl_env_copy,VV[50]);
    T0 = v7;
    {
     cl_fixnum v8;
     v8 = v3hash;
     if (ecl_unlikely((v8)>=(v7)->vector.dim))
           FEwrong_index(ECL_NIL,v7,-1,ecl_make_fixnum(v8),(v7)->vector.dim);
     value0 = ECL_NIL;
     cl_env_copy->nvalues = 0;
     T1 = ecl_make_fixnum(v8);
    }
    T2 = cl_list(3, v1type, v2length, v6output);
    ecl_aset_unsafe(T0,ecl_fixnum(T1),T2);
   }
   value0 = v6output;
   cl_env_copy->nvalues = 1;
   return value0;
  }
 }
}
static cl_object L3092values_type_to_n_types_va(cl_narg narg, cl_object v7type, cl_object v8length, ...)
{
 if (ecl_unlikely(narg!=2)) FEwrong_num_arguments(VV[53]);
 {
  return L3092values_type_to_n_types(v7type, v8length);
 }
}
/* function definition for DO-VALUES-TYPE-TO-N-TYPES                          */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L3093do_values_type_to_n_types(cl_object v1type, cl_object v2length)
{
 cl_object T0, T1, T2;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 {
  cl_object v3;                                   /*  REQUIRED                */
  cl_object v4;                                   /*  OPTIONAL                */
  cl_object v5;                                   /*  REST                    */
  value0 = L3094split_values_type(v1type);
  {
   const int v6 = cl_env_copy->nvalues;
   v3 = value0;
   cl_object v7;
   v7 = (v6<=1)? ECL_NIL : cl_env_copy->values[1];
   v4 = v7;
   v7 = (v6<=2)? ECL_NIL : cl_env_copy->values[2];
   v5 = v7;
  }
  {
   cl_object v6optional;
   cl_object v7output;
   cl_object v8l;
   {
    cl_object v9;
    cl_object v10i;
    cl_object v11;
    {
     cl_object v12;
     v12 = v4;
     if (ecl_unlikely(!ECL_LISTP(v12))) FEtype_error_list(v12);
     value0 = ECL_NIL;
     cl_env_copy->nvalues = 0;
     v9 = v12;
    }
    v10i = ECL_NIL;
    v11 = v9;
    {
     cl_object v12;
     cl_object v13;
     v12 = ecl_list1(ECL_NIL);
     v13 = v12;
L11:;
     if (!(ecl_endp(v11))){
      goto L13;
     }
     goto L12;
L13:;
     v10i = ECL_CONS_CAR(v11);
     {
      cl_object v14;
      v14 = ECL_CONS_CDR(v11);
      if (ecl_unlikely(!ECL_LISTP(v14))) FEtype_error_list(v14);
      value0 = ECL_NIL;
      cl_env_copy->nvalues = 0;
      v11 = v14;
     }
     {
      cl_object v14;
      v14 = v13;
      if (ecl_unlikely(ECL_ATOM(v14))) FEtype_error_cons(v14);
      value0 = ECL_NIL;
      cl_env_copy->nvalues = 0;
      T0 = v14;
     }
     if (!((v10i)==(ECL_T))){
      goto L27;
     }
     T1 = v10i;
     goto L26;
L27:;
     T1 = cl_list(3, ECL_SYM("OR",616), ECL_SYM("NULL",607), v10i);
L26:;
     v13 = ecl_list1(T1);
     (ECL_CONS_CDR(T0)=v13,T0);
     goto L11;
L12:;
     v6optional = ecl_cdr(v12);
     goto L3;
    }
   }
L3:;
   v7output = ecl_nconc(v3,v6optional);
   v8l = ecl_make_fixnum(ecl_length(v7output));
   if (!(ecl_lower(v8l,v2length))){
    goto L33;
   }
   T0 = ecl_minus(v2length,v8l);
   if (Null(v5)){
    goto L36;
   }
   T1 = ecl_car(v5);
   goto L35;
L36:;
   T1 = ECL_T;
L35:;
   T2 = cl_make_list(3, T0, ECL_SYM("INITIAL-ELEMENT",1286), T1);
   value0 = ecl_nconc(v7output,T2);
   cl_env_copy->nvalues = 1;
   return value0;
L33:;
   value0 = cl_subseq(3, v7output, ecl_make_int8_t(0), v2length);
   return value0;
  }
 }
}
/* function definition for SPLIT-VALUES-TYPE                                  */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L3094split_values_type(cl_object v1type)
{
 cl_object T0, T1;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 if (ECL_ATOM(v1type)) {
  goto L4;
 }
 T0 = ecl_car(v1type);
 if ((T0)==(ECL_SYM("VALUES",899))) {
  goto L2;
 }
 goto L3;
L4:;
L3:;
 T0 = ecl_list1(v1type);
 cl_env_copy->nvalues = 4;
 cl_env_copy->values[3] = ECL_NIL;
 cl_env_copy->values[2] = ECL_NIL;
 cl_env_copy->values[1] = ECL_NIL;
 cl_env_copy->values[0] = T0;
 return cl_env_copy->values[0];
L2:;
 {
  cl_object v2required;
  v2required = ECL_NIL;
  {
   cl_object v3optional_flag;
   v3optional_flag = ECL_NIL;
   {
    cl_object v4optional;
    v4optional = ECL_NIL;
    {
     cl_object v5rest;
     v5rest = ECL_NIL;
     {
      cl_object v6a_o_k;
      v6a_o_k = ECL_NIL;
      {
       cl_object v7l;
       v7l = ecl_cdr(v1type);
L12:;
       if (v7l!=ECL_NIL) {
        goto L14;
       }
       goto L13;
L14:;
       {
        cl_object v8typespec;
        {
         cl_object v9;
         v9 = v7l;
         {
          cl_object v10;
          v10 = v9;
          {
          bool v11;
          v11 = ECL_LISTP(v10);
          if (ecl_unlikely(!(v11)))
         FEwrong_type_argument(VV[37],v10);
          value0 = ECL_NIL;
          cl_env_copy->nvalues = 0;
          }
         }
         if (Null(v9)){
          goto L22;
         }
         {
          cl_object v10;
          v10 = ECL_CONS_CDR(v9);
          v7l = v10;
          v9 = ECL_CONS_CAR(v9);
         }
L22:;
         v8typespec = v9;
        }
        if (!((v8typespec)==(ECL_SYM("&ALLOW-OTHER-KEYS",8)))){
         goto L28;
        }
        v6a_o_k = ECL_T;
        if (Null(v7l)){
         goto L16;
        }
        (cl_env_copy->function=ecl_fdefinition(VV[61]))->cfun.entry(2, VV[62], v1type) /*  CMPERR */;
        goto L16;
L28:;
        if (!((v8typespec)==(ECL_SYM("&OPTIONAL",13)))){
         goto L33;
        }
        if (Null(v3optional_flag)){
         goto L35;
        }
        v4optional = CONS(v8typespec,v4optional);
        goto L16;
L35:;
        v3optional_flag = ECL_T;
        goto L16;
L33:;
        if (!((v8typespec)==(ECL_SYM("&REST",14)))){
         goto L39;
        }
        if (v7l==ECL_NIL) {
         goto L43;
        }
        {
         cl_object v9;
         cl_object v10;
         v9 = ecl_cdr(v7l);
         v10 = (ECL_SYM("EQUAL",337)->symbol.gfdef);
         if (!(ecl_equal(v9,ECL_NIL))){
          goto L49;
         }
         goto L41;
L49:;
         goto L47;
L47:;
         if (!(ecl_equal(v9,VV[47]))){
          goto L52;
         }
         goto L41;
L52:;
         goto L42;
        }
L43:;
L42:;
        (cl_env_copy->function=ecl_fdefinition(VV[61]))->cfun.entry(2, VV[62], v1type) /*  CMPERR */;
L41:;
        T0 = ecl_car(v7l);
        v5rest = ecl_list1(T0);
        goto L16;
L39:;
        if (Null(v3optional_flag)){
         goto L55;
        }
        v4optional = CONS(v8typespec,v4optional);
        goto L16;
L55:;
        v2required = CONS(v8typespec,v2required);
       }
L16:;
       goto L12;
L13:;
       T0 = cl_nreverse(v2required);
       T1 = cl_nreverse(v4optional);
       cl_env_copy->nvalues = 4;
       cl_env_copy->values[3] = v6a_o_k;
       cl_env_copy->values[2] = v5rest;
       cl_env_copy->values[1] = T1;
       cl_env_copy->values[0] = T0;
       return cl_env_copy->values[0];
      }
     }
    }
   }
  }
 }
}
static cl_object L3094split_values_type_va(cl_narg narg, cl_object v8type, ...)
{
 if (ecl_unlikely(narg!=1)) FEwrong_num_arguments(VV[55]);
 {
  return L3094split_values_type(v8type);
 }
}
/* function definition for VALUES-TYPE-OR-EMPTY-CACHE                         */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L3095values_type_or_empty_cache()
{
 cl_object T0;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 T0 = si_make_vector(ECL_T, ecl_make_fixnum(1024), ECL_NIL, ECL_NIL, ECL_NIL, ecl_make_int8_t(0));
 ecl_cmp_setq(cl_env_copy,VV[66],T0);
 value0 = ecl_cmp_symbol_value(cl_env_copy,VV[66]);
 cl_env_copy->nvalues = 1;
 return value0;
}
static cl_object L3095values_type_or_empty_cache_va(cl_narg narg, ...)
{
 if (ecl_unlikely(narg!=0)) FEwrong_num_arguments(VV[67]);
 {
  return L3095values_type_or_empty_cache();
 }
}
/* function definition for VALUES-TYPE-OR                                     */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L3097values_type_or(cl_object v1t1, cl_object v2t2)
{
 cl_object T0, T1, T2;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 {
  cl_fixnum v3hash;
  cl_object v4cache;
  cl_object v5elt;
  {
   cl_object v6;
   T0 = si_hash_equal(2, v1t1, v2t2);
   v6 = ecl_boole(ECL_BOOLAND,(T0),(ecl_make_fixnum(1023)));
   {
    cl_fixnum v7;
    v7 = (cl_fixnum)(0);
    if (!(ECL_FIXNUMP(v6))){
     goto L8;
    }
    v7 = ecl_fixnum(v6);
    if (!((v7)<=(1023))){
     goto L13;
    }
    T0 = ecl_make_bool((v7)>=((cl_fixnum)(0)));
    goto L5;
L13:;
    T0 = ECL_NIL;
    goto L5;
L8:;
    T0 = ECL_NIL;
    goto L5;
   }
L5:;
   if (ecl_unlikely(!((T0)!=ECL_NIL)))
         FEwrong_type_argument(VV[32],v6);
   value0 = ECL_NIL;
   cl_env_copy->nvalues = 0;
   v3hash = ecl_fixnum(v6);
  }
  {
   cl_object v6;
   v6 = ecl_cmp_symbol_value(cl_env_copy,VV[66]);
   T0 = cl_typep(2, v6, VV[33]);
   if (ecl_unlikely(!((T0)!=ECL_NIL)))
         FEwrong_type_argument(VV[33],v6);
   value0 = ECL_NIL;
   cl_env_copy->nvalues = 0;
   v4cache = v6;
  }
  {
   cl_object v6;
   v6 = v4cache;
   T0 = v6;
   {
    cl_fixnum v7;
    v7 = v3hash;
    if (ecl_unlikely((v7)>=(v6)->vector.dim))
           FEwrong_index(ECL_NIL,v6,-1,ecl_make_fixnum(v7),(v6)->vector.dim);
    value0 = ECL_NIL;
    cl_env_copy->nvalues = 0;
    T1 = ecl_make_fixnum(v7);
   }
   v5elt = ecl_aref_unsafe(T0,ecl_fixnum(T1));
  }
  if (Null(v5elt)){
   goto L25;
  }
  {
   cl_object v6;
   {
    cl_object v7;
    v7 = v5elt;
    if (ecl_unlikely(ECL_ATOM(v7))) FEtype_error_cons(v7);
    value0 = ECL_NIL;
    cl_env_copy->nvalues = 0;
    v6 = v7;
   }
   {
    cl_object v7;
    v7 = v6;
    {
     bool v8;
     v8 = ECL_LISTP(v7);
     if (ecl_unlikely(!(v8)))
         FEwrong_type_argument(VV[37],v7);
     value0 = ECL_NIL;
     cl_env_copy->nvalues = 0;
    }
   }
   if (Null(v6)){
    goto L36;
   }
   {
    cl_object v7;
    v7 = ECL_CONS_CDR(v6);
    {
     cl_object v8;
     v8 = v7;
     if (ecl_unlikely(ECL_ATOM(v8))) FEtype_error_cons(v8);
     value0 = ECL_NIL;
     cl_env_copy->nvalues = 0;
     v5elt = v8;
    }
    v6 = ECL_CONS_CAR(v6);
   }
L36:;
   T0 = v6;
  }
  if (Null((cl_env_copy->function=ecl_fdefinition(VV[36]))->cfun.entry(2, T0, v1t1) /*  TYPE-SPECIFIER= */)){
   goto L25;
  }
  {
   cl_object v6;
   {
    cl_object v7;
    v7 = v5elt;
    if (ecl_unlikely(ECL_ATOM(v7))) FEtype_error_cons(v7);
    value0 = ECL_NIL;
    cl_env_copy->nvalues = 0;
    v6 = v7;
   }
   {
    cl_object v7;
    v7 = v6;
    {
     bool v8;
     v8 = ECL_LISTP(v7);
     if (ecl_unlikely(!(v8)))
         FEwrong_type_argument(VV[37],v7);
     value0 = ECL_NIL;
     cl_env_copy->nvalues = 0;
    }
   }
   if (Null(v6)){
    goto L51;
   }
   {
    cl_object v7;
    v7 = ECL_CONS_CDR(v6);
    {
     cl_object v8;
     v8 = v7;
     if (ecl_unlikely(ECL_ATOM(v8))) FEtype_error_cons(v8);
     value0 = ECL_NIL;
     cl_env_copy->nvalues = 0;
     v5elt = v8;
    }
    v6 = ECL_CONS_CAR(v6);
   }
L51:;
   T0 = v6;
  }
  if (Null((cl_env_copy->function=ecl_fdefinition(VV[36]))->cfun.entry(2, T0, v2t2) /*  TYPE-SPECIFIER= */)){
   goto L25;
  }
  value0 = ecl_car(v5elt);
  cl_env_copy->nvalues = 1;
  return value0;
L25:;
  {
   cl_object v6output;
   v6output = LC3096values_type_or(v1t1, v2t2);
   {
    cl_object v7;
    v7 = ecl_cmp_symbol_value(cl_env_copy,VV[66]);
    T0 = v7;
    {
     cl_fixnum v8;
     v8 = v3hash;
     if (ecl_unlikely((v8)>=(v7)->vector.dim))
           FEwrong_index(ECL_NIL,v7,-1,ecl_make_fixnum(v8),(v7)->vector.dim);
     value0 = ECL_NIL;
     cl_env_copy->nvalues = 0;
     T1 = ecl_make_fixnum(v8);
    }
    T2 = cl_list(3, v1t1, v2t2, v6output);
    ecl_aset_unsafe(T0,ecl_fixnum(T1),T2);
   }
   value0 = v6output;
   cl_env_copy->nvalues = 1;
   return value0;
  }
 }
}
static cl_object L3097values_type_or_va(cl_narg narg, cl_object v7t1, cl_object v8t2, ...)
{
 if (ecl_unlikely(narg!=2)) FEwrong_num_arguments(VV[69]);
 {
  return L3097values_type_or(v7t1, v8t2);
 }
}
/* function definition for VALUES-TYPE-AND-EMPTY-CACHE                        */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L3098values_type_and_empty_cache()
{
 cl_object T0;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 T0 = si_make_vector(ECL_T, ecl_make_fixnum(1024), ECL_NIL, ECL_NIL, ECL_NIL, ecl_make_int8_t(0));
 ecl_cmp_setq(cl_env_copy,VV[73],T0);
 value0 = ecl_cmp_symbol_value(cl_env_copy,VV[73]);
 cl_env_copy->nvalues = 1;
 return value0;
}
static cl_object L3098values_type_and_empty_cache_va(cl_narg narg, ...)
{
 if (ecl_unlikely(narg!=0)) FEwrong_num_arguments(VV[74]);
 {
  return L3098values_type_and_empty_cache();
 }
}
/* function definition for VALUES-TYPE-AND                                    */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L3100values_type_and(cl_object v1t1, cl_object v2t2)
{
 cl_object T0, T1, T2;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 {
  cl_fixnum v3hash;
  cl_object v4cache;
  cl_object v5elt;
  {
   cl_object v6;
   T0 = si_hash_equal(2, v1t1, v2t2);
   v6 = ecl_boole(ECL_BOOLAND,(T0),(ecl_make_fixnum(1023)));
   {
    cl_fixnum v7;
    v7 = (cl_fixnum)(0);
    if (!(ECL_FIXNUMP(v6))){
     goto L8;
    }
    v7 = ecl_fixnum(v6);
    if (!((v7)<=(1023))){
     goto L13;
    }
    T0 = ecl_make_bool((v7)>=((cl_fixnum)(0)));
    goto L5;
L13:;
    T0 = ECL_NIL;
    goto L5;
L8:;
    T0 = ECL_NIL;
    goto L5;
   }
L5:;
   if (ecl_unlikely(!((T0)!=ECL_NIL)))
         FEwrong_type_argument(VV[32],v6);
   value0 = ECL_NIL;
   cl_env_copy->nvalues = 0;
   v3hash = ecl_fixnum(v6);
  }
  {
   cl_object v6;
   v6 = ecl_cmp_symbol_value(cl_env_copy,VV[73]);
   T0 = cl_typep(2, v6, VV[33]);
   if (ecl_unlikely(!((T0)!=ECL_NIL)))
         FEwrong_type_argument(VV[33],v6);
   value0 = ECL_NIL;
   cl_env_copy->nvalues = 0;
   v4cache = v6;
  }
  {
   cl_object v6;
   v6 = v4cache;
   T0 = v6;
   {
    cl_fixnum v7;
    v7 = v3hash;
    if (ecl_unlikely((v7)>=(v6)->vector.dim))
           FEwrong_index(ECL_NIL,v6,-1,ecl_make_fixnum(v7),(v6)->vector.dim);
    value0 = ECL_NIL;
    cl_env_copy->nvalues = 0;
    T1 = ecl_make_fixnum(v7);
   }
   v5elt = ecl_aref_unsafe(T0,ecl_fixnum(T1));
  }
  if (Null(v5elt)){
   goto L25;
  }
  {
   cl_object v6;
   {
    cl_object v7;
    v7 = v5elt;
    if (ecl_unlikely(ECL_ATOM(v7))) FEtype_error_cons(v7);
    value0 = ECL_NIL;
    cl_env_copy->nvalues = 0;
    v6 = v7;
   }
   {
    cl_object v7;
    v7 = v6;
    {
     bool v8;
     v8 = ECL_LISTP(v7);
     if (ecl_unlikely(!(v8)))
         FEwrong_type_argument(VV[37],v7);
     value0 = ECL_NIL;
     cl_env_copy->nvalues = 0;
    }
   }
   if (Null(v6)){
    goto L36;
   }
   {
    cl_object v7;
    v7 = ECL_CONS_CDR(v6);
    {
     cl_object v8;
     v8 = v7;
     if (ecl_unlikely(ECL_ATOM(v8))) FEtype_error_cons(v8);
     value0 = ECL_NIL;
     cl_env_copy->nvalues = 0;
     v5elt = v8;
    }
    v6 = ECL_CONS_CAR(v6);
   }
L36:;
   T0 = v6;
  }
  if (Null((cl_env_copy->function=ecl_fdefinition(VV[36]))->cfun.entry(2, T0, v1t1) /*  TYPE-SPECIFIER= */)){
   goto L25;
  }
  {
   cl_object v6;
   {
    cl_object v7;
    v7 = v5elt;
    if (ecl_unlikely(ECL_ATOM(v7))) FEtype_error_cons(v7);
    value0 = ECL_NIL;
    cl_env_copy->nvalues = 0;
    v6 = v7;
   }
   {
    cl_object v7;
    v7 = v6;
    {
     bool v8;
     v8 = ECL_LISTP(v7);
     if (ecl_unlikely(!(v8)))
         FEwrong_type_argument(VV[37],v7);
     value0 = ECL_NIL;
     cl_env_copy->nvalues = 0;
    }
   }
   if (Null(v6)){
    goto L51;
   }
   {
    cl_object v7;
    v7 = ECL_CONS_CDR(v6);
    {
     cl_object v8;
     v8 = v7;
     if (ecl_unlikely(ECL_ATOM(v8))) FEtype_error_cons(v8);
     value0 = ECL_NIL;
     cl_env_copy->nvalues = 0;
     v5elt = v8;
    }
    v6 = ECL_CONS_CAR(v6);
   }
L51:;
   T0 = v6;
  }
  if (Null((cl_env_copy->function=ecl_fdefinition(VV[36]))->cfun.entry(2, T0, v2t2) /*  TYPE-SPECIFIER= */)){
   goto L25;
  }
  value0 = ecl_car(v5elt);
  cl_env_copy->nvalues = 1;
  return value0;
L25:;
  {
   cl_object v6output;
   v6output = LC3099values_type_and(v1t1, v2t2);
   {
    cl_object v7;
    v7 = ecl_cmp_symbol_value(cl_env_copy,VV[73]);
    T0 = v7;
    {
     cl_fixnum v8;
     v8 = v3hash;
     if (ecl_unlikely((v8)>=(v7)->vector.dim))
           FEwrong_index(ECL_NIL,v7,-1,ecl_make_fixnum(v8),(v7)->vector.dim);
     value0 = ECL_NIL;
     cl_env_copy->nvalues = 0;
     T1 = ecl_make_fixnum(v8);
    }
    T2 = cl_list(3, v1t1, v2t2, v6output);
    ecl_aset_unsafe(T0,ecl_fixnum(T1),T2);
   }
   value0 = v6output;
   cl_env_copy->nvalues = 1;
   return value0;
  }
 }
}
static cl_object L3100values_type_and_va(cl_narg narg, cl_object v7t1, cl_object v8t2, ...)
{
 if (ecl_unlikely(narg!=2)) FEwrong_num_arguments(VV[76]);
 {
  return L3100values_type_and(v7t1, v8t2);
 }
}
/* function definition for TYPE-OR-EMPTY-CACHE                                */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L3101type_or_empty_cache()
{
 cl_object T0;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 T0 = si_make_vector(ECL_T, ecl_make_fixnum(1024), ECL_NIL, ECL_NIL, ECL_NIL, ecl_make_int8_t(0));
 ecl_cmp_setq(cl_env_copy,VV[78],T0);
 value0 = ecl_cmp_symbol_value(cl_env_copy,VV[78]);
 cl_env_copy->nvalues = 1;
 return value0;
}
static cl_object L3101type_or_empty_cache_va(cl_narg narg, ...)
{
 if (ecl_unlikely(narg!=0)) FEwrong_num_arguments(VV[79]);
 {
  return L3101type_or_empty_cache();
 }
}
/* function definition for TYPE-OR                                            */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L3103type_or(cl_object v1t1, cl_object v2t2)
{
 cl_object T0, T1, T2;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 {
  cl_fixnum v3hash;
  cl_object v4cache;
  cl_object v5elt;
  {
   cl_object v6;
   T0 = si_hash_equal(2, v1t1, v2t2);
   v6 = ecl_boole(ECL_BOOLAND,(T0),(ecl_make_fixnum(1023)));
   {
    cl_fixnum v7;
    v7 = (cl_fixnum)(0);
    if (!(ECL_FIXNUMP(v6))){
     goto L8;
    }
    v7 = ecl_fixnum(v6);
    if (!((v7)<=(1023))){
     goto L13;
    }
    T0 = ecl_make_bool((v7)>=((cl_fixnum)(0)));
    goto L5;
L13:;
    T0 = ECL_NIL;
    goto L5;
L8:;
    T0 = ECL_NIL;
    goto L5;
   }
L5:;
   if (ecl_unlikely(!((T0)!=ECL_NIL)))
         FEwrong_type_argument(VV[32],v6);
   value0 = ECL_NIL;
   cl_env_copy->nvalues = 0;
   v3hash = ecl_fixnum(v6);
  }
  {
   cl_object v6;
   v6 = ecl_cmp_symbol_value(cl_env_copy,VV[78]);
   T0 = cl_typep(2, v6, VV[33]);
   if (ecl_unlikely(!((T0)!=ECL_NIL)))
         FEwrong_type_argument(VV[33],v6);
   value0 = ECL_NIL;
   cl_env_copy->nvalues = 0;
   v4cache = v6;
  }
  {
   cl_object v6;
   v6 = v4cache;
   T0 = v6;
   {
    cl_fixnum v7;
    v7 = v3hash;
    if (ecl_unlikely((v7)>=(v6)->vector.dim))
           FEwrong_index(ECL_NIL,v6,-1,ecl_make_fixnum(v7),(v6)->vector.dim);
    value0 = ECL_NIL;
    cl_env_copy->nvalues = 0;
    T1 = ecl_make_fixnum(v7);
   }
   v5elt = ecl_aref_unsafe(T0,ecl_fixnum(T1));
  }
  if (Null(v5elt)){
   goto L25;
  }
  {
   cl_object v6;
   {
    cl_object v7;
    v7 = v5elt;
    if (ecl_unlikely(ECL_ATOM(v7))) FEtype_error_cons(v7);
    value0 = ECL_NIL;
    cl_env_copy->nvalues = 0;
    v6 = v7;
   }
   {
    cl_object v7;
    v7 = v6;
    {
     bool v8;
     v8 = ECL_LISTP(v7);
     if (ecl_unlikely(!(v8)))
         FEwrong_type_argument(VV[37],v7);
     value0 = ECL_NIL;
     cl_env_copy->nvalues = 0;
    }
   }
   if (Null(v6)){
    goto L36;
   }
   {
    cl_object v7;
    v7 = ECL_CONS_CDR(v6);
    {
     cl_object v8;
     v8 = v7;
     if (ecl_unlikely(ECL_ATOM(v8))) FEtype_error_cons(v8);
     value0 = ECL_NIL;
     cl_env_copy->nvalues = 0;
     v5elt = v8;
    }
    v6 = ECL_CONS_CAR(v6);
   }
L36:;
   T0 = v6;
  }
  if (Null((cl_env_copy->function=ecl_fdefinition(VV[36]))->cfun.entry(2, T0, v1t1) /*  TYPE-SPECIFIER= */)){
   goto L25;
  }
  {
   cl_object v6;
   {
    cl_object v7;
    v7 = v5elt;
    if (ecl_unlikely(ECL_ATOM(v7))) FEtype_error_cons(v7);
    value0 = ECL_NIL;
    cl_env_copy->nvalues = 0;
    v6 = v7;
   }
   {
    cl_object v7;
    v7 = v6;
    {
     bool v8;
     v8 = ECL_LISTP(v7);
     if (ecl_unlikely(!(v8)))
         FEwrong_type_argument(VV[37],v7);
     value0 = ECL_NIL;
     cl_env_copy->nvalues = 0;
    }
   }
   if (Null(v6)){
    goto L51;
   }
   {
    cl_object v7;
    v7 = ECL_CONS_CDR(v6);
    {
     cl_object v8;
     v8 = v7;
     if (ecl_unlikely(ECL_ATOM(v8))) FEtype_error_cons(v8);
     value0 = ECL_NIL;
     cl_env_copy->nvalues = 0;
     v5elt = v8;
    }
    v6 = ECL_CONS_CAR(v6);
   }
L51:;
   T0 = v6;
  }
  if (Null((cl_env_copy->function=ecl_fdefinition(VV[36]))->cfun.entry(2, T0, v2t2) /*  TYPE-SPECIFIER= */)){
   goto L25;
  }
  value0 = ecl_car(v5elt);
  cl_env_copy->nvalues = 1;
  return value0;
L25:;
  {
   cl_object v6output;
   v6output = LC3102type_or(v1t1, v2t2);
   {
    cl_object v7;
    v7 = ecl_cmp_symbol_value(cl_env_copy,VV[78]);
    T0 = v7;
    {
     cl_fixnum v8;
     v8 = v3hash;
     if (ecl_unlikely((v8)>=(v7)->vector.dim))
           FEwrong_index(ECL_NIL,v7,-1,ecl_make_fixnum(v8),(v7)->vector.dim);
     value0 = ECL_NIL;
     cl_env_copy->nvalues = 0;
     T1 = ecl_make_fixnum(v8);
    }
    T2 = cl_list(3, v1t1, v2t2, v6output);
    ecl_aset_unsafe(T0,ecl_fixnum(T1),T2);
   }
   value0 = v6output;
   cl_env_copy->nvalues = 1;
   return value0;
  }
 }
}
static cl_object L3103type_or_va(cl_narg narg, cl_object v7t1, cl_object v8t2, ...)
{
 if (ecl_unlikely(narg!=2)) FEwrong_num_arguments(VV[71]);
 {
  return L3103type_or(v7t1, v8t2);
 }
}
/* function definition for TYPE>=                                             */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L3104type__(cl_narg narg, cl_object v1type1, cl_object v2type2, ...)
{
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
 if (ecl_unlikely(narg<2)) FEwrong_num_arguments(VV[83]);
 if (ecl_unlikely(narg>3)) FEwrong_num_arguments(VV[83]);
 {
  cl_object v3env;
  va_list args; va_start(args,v2type2);
  {
   int i = 2;
   if (i >= narg) {
    v3env = ECL_NIL;
   } else {
    i++;
    v3env = va_arg(args,cl_object);
   }
  }
  va_end(args);
  value0 = cl_subtypep(3, v2type2, v1type1, v3env);
  return value0;
 }
}
/* function definition for TYPE-FALSE-P                                       */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L3105type_false_p(cl_narg narg, cl_object v1type, ...)
{
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
 if (ecl_unlikely(narg<1)) FEwrong_num_arguments(VV[85]);
 if (ecl_unlikely(narg>2)) FEwrong_num_arguments(VV[85]);
 {
  cl_object v2env;
  va_list args; va_start(args,v1type);
  {
   int i = 1;
   if (i >= narg) {
    v2env = ECL_NIL;
   } else {
    i++;
    v2env = va_arg(args,cl_object);
   }
  }
  va_end(args);
  value0 = cl_subtypep(3, v1type, ECL_SYM("NULL",607), v2env);
  return value0;
 }
}
/* function definition for TYPE-TRUE-P                                        */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object L3106type_true_p(cl_narg narg, cl_object v1type, ...)
{
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
 if (ecl_unlikely(narg<1)) FEwrong_num_arguments(VV[87]);
 if (ecl_unlikely(narg>2)) FEwrong_num_arguments(VV[87]);
 {
  cl_object v2env;
  va_list args; va_start(args,v1type);
  {
   int i = 1;
   if (i >= narg) {
    v2env = ECL_NIL;
   } else {
    i++;
    v2env = va_arg(args,cl_object);
   }
  }
  va_end(args);
  value0 = cl_subtypep(3, v1type, VV[88], v2env);
  return value0;
 }
}
/* local function LAMBDA16                                                    */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object LC3076__lambda16(cl_object v1t1, cl_object v2t2)
{
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 value0 = cl_subtypep(3, v1t1, v2t2, ecl_cmp_symbol_value(cl_env_copy,VV[3]));
 return value0;
}
static cl_object LC3076__lambda16_va(cl_narg narg, cl_object v3t1, cl_object v4t2, ...)
{
 if (ecl_unlikely(narg!=2)) FEwrong_num_arguments(VV[2]);
 {
  return LC3076__lambda16(v3t1, v4t2);
 }
}
/* closure LAMBDA28                                                           */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object LC3079__lambda28(cl_narg narg, cl_object v1si__temp, ...)
{
 cl_object CLV0;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object env0 = cl_env_copy->function->cclosure.env;
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
 /* Scanning closure data ... */
 CLV0 = env0;                                     /*  TAGBODY                 */
 { /* ... closure scanning finished */
 if (ecl_unlikely(narg!=1)) FEwrong_num_arguments(VV[12]);
 {
L1:;
  cl_go(ECL_CONS_CAR(CLV0),ecl_make_fixnum(0));
 }
 }
}
/* local function TYPE-AND                                                    */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object LC3084type_and(cl_object v1t1, cl_object v2t2)
{
 cl_object T0;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 if ((v1t1)==(v2t2)) {
  goto L4;
 }
 if (!((v2t2)==(ECL_SYM("*",20)))){
  goto L2;
 }
 goto L3;
L4:;
L3:;
 value0 = v1t1;
 cl_env_copy->nvalues = 1;
 return value0;
L2:;
 if (!((v1t1)==(ECL_SYM("*",20)))){
  goto L6;
 }
 value0 = v2t2;
 cl_env_copy->nvalues = 1;
 return value0;
L6:;
 {
  cl_object v3;
  cl_object v4;
  cl_object v5;
  v3 = ecl_cmp_symbol_value(cl_env_copy,VV[23]);
  v4 = ecl_cmp_symbol_value(cl_env_copy,VV[24]);
  v5 = ecl_cmp_symbol_value(cl_env_copy,VV[25]);
  ecl_bds_bind(cl_env_copy,VV[23],v3);            /*  *HIGHEST-TYPE-TAG*      */
  ecl_bds_bind(cl_env_copy,VV[26],ECL_T);         /*  *SAVE-TYPES-DATABASE*   */
  ecl_bds_bind(cl_env_copy,VV[24],v4);            /*  *MEMBER-TYPES*          */
  ecl_bds_bind(cl_env_copy,VV[25],v5);            /*  *ELEMENTARY-TYPES*      */
  {
   cl_object v6;
   cl_object v7;
   cl_object v8tag1;
   cl_object v9tag2;
   v6 = (cl_env_copy->function=(VV[27]->symbol.gfdef))->cfun.entry(2, v1t1, ecl_cmp_symbol_value(cl_env_copy,VV[3])) /*  SAFE-CANONICAL-TYPE */;
   v7 = (cl_env_copy->function=(VV[27]->symbol.gfdef))->cfun.entry(2, v2t2, ecl_cmp_symbol_value(cl_env_copy,VV[3])) /*  SAFE-CANONICAL-TYPE */;
   v8tag1 = v6;
   v9tag2 = v7;
   if (!(ecl_numberp(v8tag1))){
    goto L15;
   }
   if (!(ecl_numberp(v9tag2))){
    goto L15;
   }
   v8tag1 = (cl_env_copy->function=(VV[27]->symbol.gfdef))->cfun.entry(2, v1t1, ecl_cmp_symbol_value(cl_env_copy,VV[3])) /*  SAFE-CANONICAL-TYPE */;
   v9tag2 = (cl_env_copy->function=(VV[27]->symbol.gfdef))->cfun.entry(2, v2t2, ecl_cmp_symbol_value(cl_env_copy,VV[3])) /*  SAFE-CANONICAL-TYPE */;
   T0 = ecl_boole(ECL_BOOLAND,(v8tag1),(v9tag2));
   if (!(ecl_zerop(T0))){
    goto L22;
   }
   value0 = ECL_NIL;
   cl_env_copy->nvalues = 1;
   ecl_bds_unwind_n(cl_env_copy,4);
   return value0;
L22:;
   T0 = ecl_boole(ECL_BOOLANDC2,(v8tag1),(v9tag2));
   if (!(ecl_zerop(T0))){
    goto L24;
   }
   value0 = v1t1;
   cl_env_copy->nvalues = 1;
   ecl_bds_unwind_n(cl_env_copy,4);
   return value0;
L24:;
   T0 = ecl_boole(ECL_BOOLANDC2,(v9tag2),(v8tag1));
   if (!(ecl_zerop(T0))){
    goto L26;
   }
   value0 = v2t2;
   cl_env_copy->nvalues = 1;
   ecl_bds_unwind_n(cl_env_copy,4);
   return value0;
L26:;
   value0 = cl_list(3, ECL_SYM("AND",89), v1t1, v2t2);
   ecl_bds_unwind_n(cl_env_copy,4);
   return value0;
L15:;
   if (!((v8tag1)==(ECL_SYM("CONS",253)))){
    goto L28;
   }
   (cl_env_copy->function=ecl_fdefinition(VV[28]))->cfun.entry(2, VV[29], v1t1) /*  CMPWARN */;
   value0 = v2t2;
   cl_env_copy->nvalues = 1;
   ecl_bds_unwind_n(cl_env_copy,4);
   return value0;
L28:;
   if (!((v9tag2)==(ECL_SYM("CONS",253)))){
    goto L31;
   }
   (cl_env_copy->function=ecl_fdefinition(VV[28]))->cfun.entry(2, VV[29], v2t2) /*  CMPWARN */;
   value0 = v1t1;
   cl_env_copy->nvalues = 1;
   ecl_bds_unwind_n(cl_env_copy,4);
   return value0;
L31:;
   if (!(v8tag1==ECL_NIL)){
    goto L34;
   }
   (cl_env_copy->function=ecl_fdefinition(VV[30]))->cfun.entry(2, VV[31], v1t1) /*  CMPNOTE */;
   value0 = v2t2;
   cl_env_copy->nvalues = 1;
   ecl_bds_unwind_n(cl_env_copy,4);
   return value0;
L34:;
   (cl_env_copy->function=ecl_fdefinition(VV[30]))->cfun.entry(2, VV[31], v2t2) /*  CMPNOTE */;
   value0 = v1t1;
   cl_env_copy->nvalues = 1;
   ecl_bds_unwind_n(cl_env_copy,4);
   return value0;
  }
 }
}
static cl_object LC3084type_and_va(cl_narg narg, cl_object v10t1, cl_object v11t2, ...)
{
 if (ecl_unlikely(narg!=2)) FEwrong_num_arguments(VV[21]);
 {
  return LC3084type_and(v10t1, v11t2);
 }
}
/* local function VALUES-TYPE-PRIMARY-TYPE                                    */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object LC3088values_type_primary_type(cl_object v1type)
{
 cl_object T0;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 {
  cl_object v2aux;
  v2aux = ECL_NIL;
  if (ECL_ATOM(v1type)) {
   goto L5;
  }
  T0 = ecl_car(v1type);
  if ((T0)==(ECL_SYM("VALUES",899))) {
   goto L3;
  }
  goto L4;
L5:;
L4:;
  value0 = v1type;
  cl_env_copy->nvalues = 1;
  return value0;
L3:;
  v2aux = ecl_cdr(v1type);
  if (!(v2aux==ECL_NIL)){
   goto L7;
  }
  value0 = ECL_SYM("NULL",607);
  cl_env_copy->nvalues = 1;
  return value0;
L7:;
  {
   cl_object v3;
   v2aux = ecl_car(v2aux);
   v3 = v2aux;
   if (!((v3)==(ECL_SYM("&OPTIONAL",13)))){
    goto L17;
   }
   goto L14;
L17:;
   goto L15;
L15:;
   if (!((v3)==(ECL_SYM("&REST",14)))){
    goto L21;
   }
   goto L14;
L21:;
   goto L19;
L19:;
   if (!((v3)==(ECL_SYM("&ALLOW-OTHER-KEYS",8)))){
    goto L10;
   }
   goto L11;
L14:;
  }
L11:;
  v2aux = L3093do_values_type_to_n_types(v1type, ecl_make_int8_t(1));
  if (Null(v2aux)){
   goto L26;
  }
  value0 = ecl_car(v2aux);
  cl_env_copy->nvalues = 1;
  return value0;
L26:;
  value0 = ECL_SYM("NULL",607);
  cl_env_copy->nvalues = 1;
  return value0;
L10:;
  value0 = v2aux;
  cl_env_copy->nvalues = 1;
  return value0;
 }
}
static cl_object LC3088values_type_primary_type_va(cl_narg narg, cl_object v3type, ...)
{
 if (ecl_unlikely(narg!=1)) FEwrong_num_arguments(VV[44]);
 {
  return LC3088values_type_primary_type(v3type);
 }
}
/* local function VALUES-TYPE-TO-N-TYPES                                      */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object LC3091values_type_to_n_types(cl_object v1type, cl_object v2length)
{
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 if (!(ecl_plusp(v2length))){
  goto L2;
 }
 value0 = L3093do_values_type_to_n_types(v1type, v2length);
 return value0;
L2:;
 value0 = ECL_NIL;
 cl_env_copy->nvalues = 1;
 return value0;
}
static cl_object LC3091values_type_to_n_types_va(cl_narg narg, cl_object v3type, cl_object v4length, ...)
{
 if (ecl_unlikely(narg!=2)) FEwrong_num_arguments(VV[53]);
 {
  return LC3091values_type_to_n_types(v3type, v4length);
 }
}
/* local function VALUES-TYPE-OR                                              */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object LC3096values_type_or(cl_object v1t1, cl_object v2t2)
{
 cl_object T0, T1, T2, T3;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 if ((v2t2)==(ECL_T)) {
  goto L4;
 }
 if (!(ecl_equalp(v2t2,VV[70]))){
  goto L2;
 }
 goto L3;
L4:;
L3:;
 value0 = v2t2;
 cl_env_copy->nvalues = 1;
 return value0;
L2:;
 if ((v1t1)==(ECL_T)) {
  goto L8;
 }
 if (!(ecl_equalp(v1t1,VV[70]))){
  goto L6;
 }
 goto L7;
L8:;
L7:;
 value0 = v1t1;
 cl_env_copy->nvalues = 1;
 return value0;
L6:;
 if (v1t1!=ECL_NIL) {
  goto L10;
 }
 value0 = v2t2;
 cl_env_copy->nvalues = 1;
 return value0;
L10:;
 if (v2t2!=ECL_NIL) {
  goto L12;
 }
 value0 = v1t1;
 cl_env_copy->nvalues = 1;
 return value0;
L12:;
 {
  cl_object v3;                                   /*  REQ1                    */
  cl_object v4;                                   /*  OPT1                    */
  cl_object v5;                                   /*  REST1                   */
  value0 = L3094split_values_type(v1t1);
  {
   const int v6 = cl_env_copy->nvalues;
   v3 = value0;
   cl_object v7;
   v7 = (v6<=1)? ECL_NIL : cl_env_copy->values[1];
   v4 = v7;
   v7 = (v6<=2)? ECL_NIL : cl_env_copy->values[2];
   v5 = v7;
  }
  {
   cl_object v6;                                  /*  REQ2                    */
   cl_object v7;                                  /*  OPT2                    */
   cl_object v8;                                  /*  REST2                   */
   value0 = L3094split_values_type(v2t2);
   {
    const int v9 = cl_env_copy->nvalues;
    v6 = value0;
    cl_object v10;
    v10 = (v9<=1)? ECL_NIL : cl_env_copy->values[1];
    v7 = v10;
    v10 = (v9<=2)? ECL_NIL : cl_env_copy->values[2];
    v8 = v10;
   }
   {
    cl_object v9req;
    cl_object v10opt;
    cl_object v11rest;
    v9req = ECL_NIL;
    v10opt = ECL_NIL;
    v11rest = ECL_NIL;
    {
     cl_object v12;
     cl_object v13t1;
     cl_object v14;
     {
      cl_object v15;
      v15 = v3;
      if (ecl_unlikely(!ECL_LISTP(v15))) FEtype_error_list(v15);
      value0 = ECL_NIL;
      cl_env_copy->nvalues = 0;
      v12 = v15;
     }
     v13t1 = ECL_NIL;
     v14 = v12;
L25:;
     if (!(ecl_endp(v14))){
      goto L27;
     }
     goto L26;
L27:;
     v13t1 = ECL_CONS_CAR(v14);
     {
      cl_object v15;
      v15 = ECL_CONS_CDR(v14);
      if (ecl_unlikely(!ECL_LISTP(v15))) FEtype_error_list(v15);
      value0 = ECL_NIL;
      cl_env_copy->nvalues = 0;
      v14 = v15;
     }
     if (Null(v6)){
      goto L36;
     }
     {
      cl_object v15;
      v15 = v6;
      {
       cl_object v16;
       v16 = v15;
       {
        bool v17;
        v17 = ECL_LISTP(v16);
        if (ecl_unlikely(!(v17)))
         FEwrong_type_argument(VV[37],v16);
        value0 = ECL_NIL;
        cl_env_copy->nvalues = 0;
       }
      }
      if (Null(v15)){
       goto L44;
      }
      {
       cl_object v16;
       v16 = ECL_CONS_CDR(v15);
       v6 = v16;
       v15 = ECL_CONS_CAR(v15);
      }
L44:;
      T0 = v15;
     }
     T1 = L3103type_or(v13t1, T0);
     v9req = CONS(T1,v9req);
     goto L35;
L36:;
     if (Null(v7)){
      goto L50;
     }
     {
      cl_object v15;
      v15 = v7;
      {
       cl_object v16;
       v16 = v15;
       {
        bool v17;
        v17 = ECL_LISTP(v16);
        if (ecl_unlikely(!(v17)))
         FEwrong_type_argument(VV[37],v16);
        value0 = ECL_NIL;
        cl_env_copy->nvalues = 0;
       }
      }
      if (Null(v15)){
       goto L58;
      }
      {
       cl_object v16;
       v16 = ECL_CONS_CDR(v15);
       v7 = v16;
       v15 = ECL_CONS_CAR(v15);
      }
L58:;
      T0 = v15;
     }
     T1 = L3103type_or(v13t1, T0);
     v10opt = CONS(T1,v10opt);
     goto L35;
L50:;
     if (Null(v8)){
      goto L64;
     }
     T0 = ecl_car(v8);
     T1 = L3103type_or(v13t1, T0);
     v10opt = CONS(T1,v10opt);
     goto L35;
L64:;
     v10opt = CONS(v13t1,v10opt);
L35:;
     goto L25;
L26:;
    }
    {
     cl_object v12;
     cl_object v13t1;
     cl_object v14;
     {
      cl_object v15;
      v15 = v4;
      if (ecl_unlikely(!ECL_LISTP(v15))) FEtype_error_list(v15);
      value0 = ECL_NIL;
      cl_env_copy->nvalues = 0;
      v12 = v15;
     }
     v13t1 = ECL_NIL;
     v14 = v12;
L75:;
     if (!(ecl_endp(v14))){
      goto L77;
     }
     goto L76;
L77:;
     v13t1 = ECL_CONS_CAR(v14);
     {
      cl_object v15;
      v15 = ECL_CONS_CDR(v14);
      if (ecl_unlikely(!ECL_LISTP(v15))) FEtype_error_list(v15);
      value0 = ECL_NIL;
      cl_env_copy->nvalues = 0;
      v14 = v15;
     }
     if (Null(v6)){
      goto L86;
     }
     {
      cl_object v15;
      v15 = v6;
      {
       cl_object v16;
       v16 = v15;
       {
        bool v17;
        v17 = ECL_LISTP(v16);
        if (ecl_unlikely(!(v17)))
         FEwrong_type_argument(VV[37],v16);
        value0 = ECL_NIL;
        cl_env_copy->nvalues = 0;
       }
      }
      if (Null(v15)){
       goto L94;
      }
      {
       cl_object v16;
       v16 = ECL_CONS_CDR(v15);
       v6 = v16;
       v15 = ECL_CONS_CAR(v15);
      }
L94:;
      T0 = v15;
     }
     T1 = L3103type_or(v13t1, T0);
     v10opt = CONS(T1,v10opt);
     goto L85;
L86:;
     if (Null(v7)){
      goto L100;
     }
     {
      cl_object v15;
      v15 = v7;
      {
       cl_object v16;
       v16 = v15;
       {
        bool v17;
        v17 = ECL_LISTP(v16);
        if (ecl_unlikely(!(v17)))
         FEwrong_type_argument(VV[37],v16);
        value0 = ECL_NIL;
        cl_env_copy->nvalues = 0;
       }
      }
      if (Null(v15)){
       goto L108;
      }
      {
       cl_object v16;
       v16 = ECL_CONS_CDR(v15);
       v7 = v16;
       v15 = ECL_CONS_CAR(v15);
      }
L108:;
      T0 = v15;
     }
     T1 = L3103type_or(v13t1, T0);
     v10opt = CONS(T1,v10opt);
     goto L85;
L100:;
     if (Null(v8)){
      goto L114;
     }
     T0 = ecl_car(v8);
     T1 = L3103type_or(v13t1, T0);
     v10opt = CONS(T1,v10opt);
     goto L85;
L114:;
     v10opt = CONS(v13t1,v10opt);
L85:;
     goto L75;
L76:;
    }
    {
     cl_object v12t1;
     if (Null(v5)){
      goto L121;
     }
     v12t1 = ecl_car(v5);
     goto L120;
L121:;
     v12t1 = ECL_T;
L120:;
     {
      cl_object v13;
      cl_object v14t2;
      cl_object v15;
      {
       cl_object v16;
       v16 = v6;
       if (ecl_unlikely(!ECL_LISTP(v16))) FEtype_error_list(v16);
       value0 = ECL_NIL;
       cl_env_copy->nvalues = 0;
       v13 = v16;
      }
      v14t2 = ECL_NIL;
      v15 = v13;
L129:;
      if (!(ecl_endp(v15))){
       goto L131;
      }
      goto L130;
L131:;
      v14t2 = ECL_CONS_CAR(v15);
      {
       cl_object v16;
       v16 = ECL_CONS_CDR(v15);
       if (ecl_unlikely(!ECL_LISTP(v16))) FEtype_error_list(v16);
       value0 = ECL_NIL;
       cl_env_copy->nvalues = 0;
       v15 = v16;
      }
      T0 = L3103type_or(v12t1, v14t2);
      v10opt = CONS(T0,v10opt);
      goto L129;
L130:;
     }
     {
      cl_object v13;
      cl_object v14t2;
      cl_object v15;
      {
       cl_object v16;
       v16 = v7;
       if (ecl_unlikely(!ECL_LISTP(v16))) FEtype_error_list(v16);
       value0 = ECL_NIL;
       cl_env_copy->nvalues = 0;
       v13 = v16;
      }
      v14t2 = ECL_NIL;
      v15 = v13;
L148:;
      if (!(ecl_endp(v15))){
       goto L150;
      }
      goto L149;
L150:;
      v14t2 = ECL_CONS_CAR(v15);
      {
       cl_object v16;
       v16 = ECL_CONS_CDR(v15);
       if (ecl_unlikely(!ECL_LISTP(v16))) FEtype_error_list(v16);
       value0 = ECL_NIL;
       cl_env_copy->nvalues = 0;
       v15 = v16;
      }
      T0 = L3103type_or(v12t1, v14t2);
      v10opt = CONS(T0,v10opt);
      goto L148;
L149:;
     }
     if (Null(v8)){
      goto L161;
     }
     T0 = ecl_car(v8);
     T1 = L3103type_or(v12t1, T0);
     v11rest = ecl_list1(T1);
     goto L119;
L161:;
     v11rest = v5;
    }
L119:;
    T0 = cl_nreverse(v9req);
    if (Null(v10opt)){
     goto L167;
    }
    T2 = cl_nreverse(v10opt);
    T1 = CONS(ECL_SYM("&OPTIONAL",13),T2);
    goto L165;
L167:;
    T1 = ECL_NIL;
    goto L165;
L165:;
    if (Null(v11rest)){
     goto L171;
    }
    T2 = CONS(ECL_SYM("&OPTIONAL",13),v11rest);
    goto L169;
L171:;
    T2 = ECL_NIL;
    goto L169;
L169:;
    T3 = cl_append(3, T0, T1, T2);
    value0 = CONS(ECL_SYM("VALUES",899),T3);
    cl_env_copy->nvalues = 1;
    return value0;
   }
  }
 }
}
static cl_object LC3096values_type_or_va(cl_narg narg, cl_object v3t1, cl_object v4t2, ...)
{
 if (ecl_unlikely(narg!=2)) FEwrong_num_arguments(VV[69]);
 {
  return LC3096values_type_or(v3t1, v4t2);
 }
}
/* local function VALUES-TYPE-AND                                             */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object LC3099values_type_and(cl_object v1t1, cl_object v2t2)
{
 cl_object T0, T1, T2, T3;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 if ((v2t2)==(ECL_T)) {
  goto L4;
 }
 if (!(ecl_equalp(v2t2,VV[70]))){
  goto L2;
 }
 goto L3;
L4:;
L3:;
 value0 = v1t1;
 cl_env_copy->nvalues = 1;
 return value0;
L2:;
 if ((v1t1)==(ECL_T)) {
  goto L8;
 }
 if (!(ecl_equalp(v1t1,VV[70]))){
  goto L6;
 }
 goto L7;
L8:;
L7:;
 value0 = v2t2;
 cl_env_copy->nvalues = 1;
 return value0;
L6:;
 if (v1t1==ECL_NIL) {
  goto L12;
 }
 if (!(v2t2==ECL_NIL)){
  goto L10;
 }
 goto L11;
L12:;
L11:;
 value0 = ECL_NIL;
 cl_env_copy->nvalues = 1;
 return value0;
L10:;
 {
  cl_object v3;                                   /*  REQ1                    */
  cl_object v4;                                   /*  OPT1                    */
  cl_object v5;                                   /*  REST1                   */
  value0 = L3094split_values_type(v1t1);
  {
   const int v6 = cl_env_copy->nvalues;
   v3 = value0;
   cl_object v7;
   v7 = (v6<=1)? ECL_NIL : cl_env_copy->values[1];
   v4 = v7;
   v7 = (v6<=2)? ECL_NIL : cl_env_copy->values[2];
   v5 = v7;
  }
  {
   cl_object v6;                                  /*  REQ2                    */
   cl_object v7;                                  /*  OPT2                    */
   cl_object v8;                                  /*  REST2                   */
   value0 = L3094split_values_type(v2t2);
   {
    const int v9 = cl_env_copy->nvalues;
    v6 = value0;
    cl_object v10;
    v10 = (v9<=1)? ECL_NIL : cl_env_copy->values[1];
    v7 = v10;
    v10 = (v9<=2)? ECL_NIL : cl_env_copy->values[2];
    v8 = v10;
   }
   {
    cl_object v9req;
    cl_object v10opt;
    cl_object v11rest;
    v9req = ECL_NIL;
    v10opt = ECL_NIL;
    v11rest = ECL_NIL;
    {
     cl_object v12;
     cl_object v13t1;
     cl_object v14;
     {
      cl_object v15;
      v15 = v3;
      if (ecl_unlikely(!ECL_LISTP(v15))) FEtype_error_list(v15);
      value0 = ECL_NIL;
      cl_env_copy->nvalues = 0;
      v12 = v15;
     }
     v13t1 = ECL_NIL;
     v14 = v12;
L25:;
     if (!(ecl_endp(v14))){
      goto L27;
     }
     goto L26;
L27:;
     v13t1 = ECL_CONS_CAR(v14);
     {
      cl_object v15;
      v15 = ECL_CONS_CDR(v14);
      if (ecl_unlikely(!ECL_LISTP(v15))) FEtype_error_list(v15);
      value0 = ECL_NIL;
      cl_env_copy->nvalues = 0;
      v14 = v15;
     }
     if (Null(v6)){
      goto L36;
     }
     {
      cl_object v15;
      v15 = v6;
      {
       cl_object v16;
       v16 = v15;
       {
        bool v17;
        v17 = ECL_LISTP(v16);
        if (ecl_unlikely(!(v17)))
         FEwrong_type_argument(VV[37],v16);
        value0 = ECL_NIL;
        cl_env_copy->nvalues = 0;
       }
      }
      if (Null(v15)){
       goto L44;
      }
      {
       cl_object v16;
       v16 = ECL_CONS_CDR(v15);
       v6 = v16;
       v15 = ECL_CONS_CAR(v15);
      }
L44:;
      T0 = v15;
     }
     T1 = L3085type_and(v13t1, T0);
     v9req = CONS(T1,v9req);
     goto L35;
L36:;
     if (Null(v7)){
      goto L50;
     }
     {
      cl_object v15;
      v15 = v7;
      {
       cl_object v16;
       v16 = v15;
       {
        bool v17;
        v17 = ECL_LISTP(v16);
        if (ecl_unlikely(!(v17)))
         FEwrong_type_argument(VV[37],v16);
        value0 = ECL_NIL;
        cl_env_copy->nvalues = 0;
       }
      }
      if (Null(v15)){
       goto L58;
      }
      {
       cl_object v16;
       v16 = ECL_CONS_CDR(v15);
       v7 = v16;
       v15 = ECL_CONS_CAR(v15);
      }
L58:;
      T0 = v15;
     }
     T1 = L3085type_and(v13t1, T0);
     v9req = CONS(T1,v9req);
     goto L35;
L50:;
     if (Null(v8)){
      goto L64;
     }
     T0 = ecl_car(v8);
     T1 = L3085type_and(v13t1, T0);
     v9req = CONS(T1,v9req);
     goto L35;
L64:;
     v4 = ECL_NIL;
     v5 = ECL_NIL;
     goto L19;
L35:;
     goto L25;
L26:;
    }
L19:;
    {
     cl_object v12;
     cl_object v13t1;
     cl_object v14;
     {
      cl_object v15;
      v15 = v4;
      if (ecl_unlikely(!ECL_LISTP(v15))) FEtype_error_list(v15);
      value0 = ECL_NIL;
      cl_env_copy->nvalues = 0;
      v12 = v15;
     }
     v13t1 = ECL_NIL;
     v14 = v12;
L78:;
     if (!(ecl_endp(v14))){
      goto L80;
     }
     goto L79;
L80:;
     v13t1 = ECL_CONS_CAR(v14);
     {
      cl_object v15;
      v15 = ECL_CONS_CDR(v14);
      if (ecl_unlikely(!ECL_LISTP(v15))) FEtype_error_list(v15);
      value0 = ECL_NIL;
      cl_env_copy->nvalues = 0;
      v14 = v15;
     }
     if (Null(v6)){
      goto L89;
     }
     {
      cl_object v15;
      v15 = v6;
      {
       cl_object v16;
       v16 = v15;
       {
        bool v17;
        v17 = ECL_LISTP(v16);
        if (ecl_unlikely(!(v17)))
         FEwrong_type_argument(VV[37],v16);
        value0 = ECL_NIL;
        cl_env_copy->nvalues = 0;
       }
      }
      if (Null(v15)){
       goto L97;
      }
      {
       cl_object v16;
       v16 = ECL_CONS_CDR(v15);
       v6 = v16;
       v15 = ECL_CONS_CAR(v15);
      }
L97:;
      T0 = v15;
     }
     T1 = L3085type_and(v13t1, T0);
     v9req = CONS(T1,v9req);
     goto L88;
L89:;
     if (Null(v7)){
      goto L103;
     }
     {
      cl_object v15;
      v15 = v7;
      {
       cl_object v16;
       v16 = v15;
       {
        bool v17;
        v17 = ECL_LISTP(v16);
        if (ecl_unlikely(!(v17)))
         FEwrong_type_argument(VV[37],v16);
        value0 = ECL_NIL;
        cl_env_copy->nvalues = 0;
       }
      }
      if (Null(v15)){
       goto L111;
      }
      {
       cl_object v16;
       v16 = ECL_CONS_CDR(v15);
       v7 = v16;
       v15 = ECL_CONS_CAR(v15);
      }
L111:;
      T0 = v15;
     }
     T1 = L3085type_and(v13t1, T0);
     v10opt = CONS(T1,v10opt);
     goto L88;
L103:;
     if (Null(v8)){
      goto L117;
     }
     T0 = ecl_car(v8);
     T1 = L3085type_and(v13t1, T0);
     v10opt = CONS(T1,v10opt);
     goto L88;
L117:;
     v4 = ECL_NIL;
     v5 = ECL_NIL;
     goto L72;
L88:;
     goto L78;
L79:;
    }
L72:;
    if (Null(v5)){
     goto L125;
    }
    {
     cl_object v12t1;
     v12t1 = ecl_car(v5);
     {
      cl_object v13;
      cl_object v14t2;
      cl_object v15;
      {
       cl_object v16;
       v16 = v6;
       if (ecl_unlikely(!ECL_LISTP(v16))) FEtype_error_list(v16);
       value0 = ECL_NIL;
       cl_env_copy->nvalues = 0;
       v13 = v16;
      }
      v14t2 = ECL_NIL;
      v15 = v13;
L134:;
      if (!(ecl_endp(v15))){
       goto L136;
      }
      goto L135;
L136:;
      v14t2 = ECL_CONS_CAR(v15);
      {
       cl_object v16;
       v16 = ECL_CONS_CDR(v15);
       if (ecl_unlikely(!ECL_LISTP(v16))) FEtype_error_list(v16);
       value0 = ECL_NIL;
       cl_env_copy->nvalues = 0;
       v15 = v16;
      }
      T0 = L3085type_and(v12t1, v14t2);
      v9req = CONS(T0,v9req);
      goto L134;
L135:;
     }
     {
      cl_object v13;
      cl_object v14t2;
      cl_object v15;
      {
       cl_object v16;
       v16 = v7;
       if (ecl_unlikely(!ECL_LISTP(v16))) FEtype_error_list(v16);
       value0 = ECL_NIL;
       cl_env_copy->nvalues = 0;
       v13 = v16;
      }
      v14t2 = ECL_NIL;
      v15 = v13;
L153:;
      if (!(ecl_endp(v15))){
       goto L155;
      }
      goto L154;
L155:;
      v14t2 = ECL_CONS_CAR(v15);
      {
       cl_object v16;
       v16 = ECL_CONS_CDR(v15);
       if (ecl_unlikely(!ECL_LISTP(v16))) FEtype_error_list(v16);
       value0 = ECL_NIL;
       cl_env_copy->nvalues = 0;
       v15 = v16;
      }
      T0 = L3085type_and(v12t1, v14t2);
      v10opt = CONS(T0,v10opt);
      goto L153;
L154:;
     }
     if (Null(v8)){
      goto L125;
     }
     T0 = ecl_car(v8);
     T1 = L3085type_and(v12t1, T0);
     v11rest = ecl_list1(T1);
    }
L125:;
    T0 = cl_nreverse(v9req);
    if (Null(v10opt)){
     goto L170;
    }
    T2 = cl_nreverse(v10opt);
    T1 = CONS(ECL_SYM("&OPTIONAL",13),T2);
    goto L168;
L170:;
    T1 = ECL_NIL;
    goto L168;
L168:;
    if (Null(v11rest)){
     goto L174;
    }
    T2 = CONS(ECL_SYM("&OPTIONAL",13),v11rest);
    goto L172;
L174:;
    T2 = ECL_NIL;
    goto L172;
L172:;
    T3 = cl_append(3, T0, T1, T2);
    value0 = CONS(ECL_SYM("VALUES",899),T3);
    cl_env_copy->nvalues = 1;
    return value0;
   }
  }
 }
}
static cl_object LC3099values_type_and_va(cl_narg narg, cl_object v3t1, cl_object v4t2, ...)
{
 if (ecl_unlikely(narg!=2)) FEwrong_num_arguments(VV[76]);
 {
  return LC3099values_type_and(v3t1, v4t2);
 }
}
/* local function TYPE-OR                                                     */
/* optimize speed 1, debug 1, space 1, safety 2                               */
static cl_object LC3102type_or(cl_object v1t1, cl_object v2t2)
{
 cl_object T0;
 cl_object env0 = ECL_NIL;
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 ecl_cs_check(cl_env_copy,value0);
L1:;
 if ((v1t1)==(v2t2)) {
  goto L4;
 }
 if (!((v2t2)==(ECL_SYM("*",20)))){
  goto L2;
 }
 goto L3;
L4:;
L3:;
 value0 = v1t1;
 cl_env_copy->nvalues = 1;
 return value0;
L2:;
 if (!((v1t1)==(ECL_SYM("*",20)))){
  goto L6;
 }
 value0 = v2t2;
 cl_env_copy->nvalues = 1;
 return value0;
L6:;
 {
  cl_object v3;
  cl_object v4;
  cl_object v5;
  v3 = ecl_cmp_symbol_value(cl_env_copy,VV[23]);
  v4 = ecl_cmp_symbol_value(cl_env_copy,VV[24]);
  v5 = ecl_cmp_symbol_value(cl_env_copy,VV[25]);
  ecl_bds_bind(cl_env_copy,VV[23],v3);            /*  *HIGHEST-TYPE-TAG*      */
  ecl_bds_bind(cl_env_copy,VV[26],ECL_T);         /*  *SAVE-TYPES-DATABASE*   */
  ecl_bds_bind(cl_env_copy,VV[24],v4);            /*  *MEMBER-TYPES*          */
  ecl_bds_bind(cl_env_copy,VV[25],v5);            /*  *ELEMENTARY-TYPES*      */
  {
   cl_object v6;
   cl_object v7;
   cl_object v8tag1;
   cl_object v9tag2;
   v6 = (cl_env_copy->function=(VV[27]->symbol.gfdef))->cfun.entry(2, v1t1, ecl_cmp_symbol_value(cl_env_copy,VV[3])) /*  SAFE-CANONICAL-TYPE */;
   v7 = (cl_env_copy->function=(VV[27]->symbol.gfdef))->cfun.entry(2, v2t2, ecl_cmp_symbol_value(cl_env_copy,VV[3])) /*  SAFE-CANONICAL-TYPE */;
   v8tag1 = v6;
   v9tag2 = v7;
   if (!(ecl_numberp(v8tag1))){
    goto L15;
   }
   if (!(ecl_numberp(v9tag2))){
    goto L15;
   }
   v8tag1 = (cl_env_copy->function=(VV[27]->symbol.gfdef))->cfun.entry(2, v1t1, ecl_cmp_symbol_value(cl_env_copy,VV[3])) /*  SAFE-CANONICAL-TYPE */;
   v9tag2 = (cl_env_copy->function=(VV[27]->symbol.gfdef))->cfun.entry(2, v2t2, ecl_cmp_symbol_value(cl_env_copy,VV[3])) /*  SAFE-CANONICAL-TYPE */;
   T0 = ecl_boole(ECL_BOOLANDC2,(v8tag1),(v9tag2));
   if (!(ecl_zerop(T0))){
    goto L22;
   }
   value0 = v2t2;
   cl_env_copy->nvalues = 1;
   ecl_bds_unwind_n(cl_env_copy,4);
   return value0;
L22:;
   T0 = ecl_boole(ECL_BOOLANDC2,(v9tag2),(v8tag1));
   if (!(ecl_zerop(T0))){
    goto L24;
   }
   value0 = v1t1;
   cl_env_copy->nvalues = 1;
   ecl_bds_unwind_n(cl_env_copy,4);
   return value0;
L24:;
   value0 = cl_list(3, ECL_SYM("OR",616), v1t1, v2t2);
   ecl_bds_unwind_n(cl_env_copy,4);
   return value0;
L15:;
   if (!((v8tag1)==(ECL_SYM("CONS",253)))){
    goto L26;
   }
   (cl_env_copy->function=ecl_fdefinition(VV[28]))->cfun.entry(2, VV[29], v1t1) /*  CMPWARN */;
   value0 = ECL_T;
   cl_env_copy->nvalues = 1;
   ecl_bds_unwind_n(cl_env_copy,4);
   return value0;
L26:;
   if (!((v9tag2)==(ECL_SYM("CONS",253)))){
    goto L29;
   }
   (cl_env_copy->function=ecl_fdefinition(VV[28]))->cfun.entry(2, VV[29], v2t2) /*  CMPWARN */;
   value0 = ECL_T;
   cl_env_copy->nvalues = 1;
   ecl_bds_unwind_n(cl_env_copy,4);
   return value0;
L29:;
   if (!(v8tag1==ECL_NIL)){
    goto L32;
   }
   (cl_env_copy->function=ecl_fdefinition(VV[30]))->cfun.entry(2, VV[81], v1t1) /*  CMPNOTE */;
   value0 = ECL_T;
   cl_env_copy->nvalues = 1;
   ecl_bds_unwind_n(cl_env_copy,4);
   return value0;
L32:;
   (cl_env_copy->function=ecl_fdefinition(VV[30]))->cfun.entry(2, VV[81], v2t2) /*  CMPNOTE */;
   value0 = ECL_T;
   cl_env_copy->nvalues = 1;
   ecl_bds_unwind_n(cl_env_copy,4);
   return value0;
  }
 }
}
static cl_object LC3102type_or_va(cl_narg narg, cl_object v10t1, cl_object v11t2, ...)
{
 if (ecl_unlikely(narg!=2)) FEwrong_num_arguments(VV[71]);
 {
  return LC3102type_or(v10t1, v11t2);
 }
}
#include "cmp/cmptype-arith.data"
#ifdef __cplusplus
extern "C"
#endif

ECL_DLLEXPORT void _eclV9elzdkpTg5i9_8dN0M881(cl_object flag)
{
 const cl_env_ptr cl_env_copy = ecl_process_env();
 cl_object value0;
 cl_object *VVtemp;
 if (flag != OBJNULL){
 Cblock = flag;
 #ifndef ECL_DYNAMIC_VV
 flag->cblock.data = VV;
 #endif
 flag->cblock.data_size = VM;
 flag->cblock.temp_data_size = VMtemp;
 flag->cblock.data_text = compiler_data_text;
 flag->cblock.cfuns_size = compiler_cfuns_size;
 flag->cblock.cfuns = compiler_cfuns;
 flag->cblock.source = ecl_make_constant_base_string("SRC:CMP;CMPTYPE-ARITH.LSP.NEWEST",-1);
 return;}
 #ifdef ECL_DYNAMIC_VV
 VV = Cblock->cblock.data;
 #endif
 Cblock->cblock.data_text = (const cl_object *)"@EcLtAg:_eclV9elzdkpTg5i9_8dN0M881@";
 VVtemp = Cblock->cblock.temp_data;
 ECL_DEFINE_SETF_FUNCTIONS
 {
  cl_object T0;
  cl_object volatile env0 = ECL_NIL;
/* MAKE-LOAD-FORMs                                                            */
/* TOP-LEVEL-FORMs                                                            */
  si_select_package(VVtemp[0]);
  si_do_deftype(3, VV[0], VVtemp[1], ECL_T);
  ecl_cmp_defun(VV[90]);                          /*  MEMBER-TYPE             */
  ecl_cmp_defun(VV[91]);                          /*  OBJECT-TYPE             */
  ecl_cmp_defun(VV[92]);                          /*  VALID-TYPE-SPECIFIER    */
  ecl_cmp_defun(VV[93]);                          /*  KNOWN-TYPE-P            */
  ecl_cmp_defun(VV[94]);                          /*  TRIVIAL-TYPE-P          */
  si_Xmake_special(VV[18]);
  if (ecl_boundp(cl_env_copy,VV[18])) {
   goto L19;
  }
  T0 = si_make_vector(ECL_T, ecl_make_fixnum(1024), ECL_NIL, ECL_NIL, ECL_NIL, ecl_make_int8_t(0));
  ecl_cmp_setq(cl_env_copy,VV[18],T0);
L19:;
  ecl_cmp_defun(VV[95]);                          /*  TYPE-AND-EMPTY-CACHE    */
  ecl_cmp_defun(VV[96]);                          /*  TYPE-AND                */
  ecl_cmp_defun(VV[97]);                          /*  VALUES-NUMBER-FROM-TYPE */
  si_Xmake_special(VV[41]);
  if (ecl_boundp(cl_env_copy,VV[41])) {
   goto L35;
  }
  T0 = si_make_vector(ECL_T, ecl_make_fixnum(1024), ECL_NIL, ECL_NIL, ECL_NIL, ecl_make_int8_t(0));
  ecl_cmp_setq(cl_env_copy,VV[41],T0);
L35:;
  ecl_cmp_defun(VV[98]);                          /*  VALUES-TYPE-PRIMARY-TYPE-EMPTY-CACHE */
  ecl_cmp_defun(VV[99]);                          /*  VALUES-TYPE-PRIMARY-TYPE */
  si_Xmake_special(VV[50]);
  if (ecl_boundp(cl_env_copy,VV[50])) {
   goto L48;
  }
  T0 = si_make_vector(ECL_T, ecl_make_fixnum(1024), ECL_NIL, ECL_NIL, ECL_NIL, ecl_make_int8_t(0));
  ecl_cmp_setq(cl_env_copy,VV[50],T0);
L48:;
  ecl_cmp_defun(VV[100]);                         /*  VALUES-TYPE-TO-N-TYPES-EMPTY-CACHE */
  ecl_cmp_defun(VV[101]);                         /*  VALUES-TYPE-TO-N-TYPES  */
  (void)0; /* No entry created for DO-VALUES-TYPE-TO-N-TYPES */
  ecl_cmp_defun(VV[102]);                         /*  SPLIT-VALUES-TYPE       */
  si_Xmake_special(VV[66]);
  if (ecl_boundp(cl_env_copy,VV[66])) {
   goto L67;
  }
  T0 = si_make_vector(ECL_T, ecl_make_fixnum(1024), ECL_NIL, ECL_NIL, ECL_NIL, ecl_make_int8_t(0));
  ecl_cmp_setq(cl_env_copy,VV[66],T0);
L67:;
  ecl_cmp_defun(VV[103]);                         /*  VALUES-TYPE-OR-EMPTY-CACHE */
  ecl_cmp_defun(VV[104]);                         /*  VALUES-TYPE-OR          */
  si_Xmake_special(VV[73]);
  if (ecl_boundp(cl_env_copy,VV[73])) {
   goto L80;
  }
  T0 = si_make_vector(ECL_T, ecl_make_fixnum(1024), ECL_NIL, ECL_NIL, ECL_NIL, ecl_make_int8_t(0));
  ecl_cmp_setq(cl_env_copy,VV[73],T0);
L80:;
  ecl_cmp_defun(VV[105]);                         /*  VALUES-TYPE-AND-EMPTY-CACHE */
  ecl_cmp_defun(VV[106]);                         /*  VALUES-TYPE-AND         */
  si_Xmake_special(VV[78]);
  if (ecl_boundp(cl_env_copy,VV[78])) {
   goto L93;
  }
  T0 = si_make_vector(ECL_T, ecl_make_fixnum(1024), ECL_NIL, ECL_NIL, ECL_NIL, ecl_make_int8_t(0));
  ecl_cmp_setq(cl_env_copy,VV[78],T0);
L93:;
  ecl_cmp_defun(VV[107]);                         /*  TYPE-OR-EMPTY-CACHE     */
  ecl_cmp_defun(VV[108]);                         /*  TYPE-OR                 */
  ecl_cmp_defun(VV[109]);                         /*  TYPE>=                  */
  ecl_cmp_defun(VV[110]);                         /*  TYPE-FALSE-P            */
  ecl_cmp_defun(VV[111]);                         /*  TYPE-TRUE-P             */
 }
}
