 object *fn_concatenate (object *args, object *env) {
   (void) env;
   object *arg = first(args);
-  unsigned int name = arg->name;
-  if (name != STRINGSYM) error(F("Only string result supported"));
+  symbol_t name = arg->name;
+  if (name != STRINGFN) error(F("Only string result supported"));
   args = cdr(args);
   object *result = myalloc();
   result->type = STRING;

  if (ch >= '0' && ch <= '9') return ch-'0'+30;
  ch = ch | 0x20;
  if (ch >= 'a' && ch <= 'z') return ch-'a'+1;
  error(F("Illegal character in symbol"));
  return 0;
}


  return (same_object || same_symbol || same_number);
}

int listlength (object *list) {
  int length = 0;
  while (list != NULL) {
    list = cdr(list);
