   #if defined(sdcardsupport)
   else if (streamtype == SDSTREAM) pfun = (pfun_t)SDwrite;
   #endif
-  else error(PSTR("unknown stream type"));
+  else error2(0, PSTR("unknown stream type"));
   return pfun;
 }
 


object *fn_oneplus (object *args, object *env) {
  (void) env;
  int result = integer(first(args));
  #if defined(checkoverflow)
  if (result == INT_MAX) error3(ONEPLUS, PSTR("arithmetic overflow"));
  #endif
  return number(result + 1);
}

object *fn_oneminus (object *args, object *env) {
  (void) env;
  int result = integer(first(args));
  #if defined(checkoverflow)
  if (result == INT_MIN) error3(ONEMINUS, PSTR("arithmetic overflow"));
  #endif
  return number(result - 1);
}

object *fn_abs (object *args, object *env) {
  (void) env;
  int result = integer(first(args));
  #if defined(checkoverflow)
  if (result == INT_MIN) error3(ABS, PSTR("arithmetic overflow"));
  #endif
  return number(abs(result));
}

object *fn_random (object *args, object *env) {
  (void) env;
  int arg = integer(first(args));
  return number(random(arg));
}

object *fn_maxfn (object *args, object *env) {
  (void) env;
  int result = integer(first(args));
  args = cdr(args);
  while (args != NULL) {
    int next = integer(car(args));
    if (next > result) result = next;
    args = cdr(args);
  }

    }
  } else if (list1 != NULL) {
    while (list1 != NULL) {
      if (improperp(list1)) error(MAPCAR, notproper2, result);
      object *result = apply(MAPCAR, function, cons(car(list1),NULL), env);
      object *obj = cons(result,NULL);
      cdr(tail) = obj;
      tail = obj;
