#define E_INVALID_REGEXP     10
#define E_OVERRIDE           11
#define E_TYPE               12
#define E_INCOMPATIBLE_TYPES 13
#define E_RANGE              14
#define E_VAR_NOT_FOUND      15
#define E_TOO_MANY_ARGUMENTS 16
#define E_TOO_FEW_ARGUMENTS  17
#define E_INVALID_FUNCTION   18
#define E_DIV_BY_ZERO        19
#define E_SYSTEM_ONLY        20
#define E_INVALID_OBJECT     21
#define E_PARSE_ERROR        22
#define E_INVALID_PAIR       23    /** to dotimes or foreach **/
#define E_UNINITIALIZED      24
#define E_CMD_NOT_FOUND      25
#define E_NOT_CONNECTED      26
#define E_BAD_SEPERATOR      27    /** in explode **/
#define E_CANNOT_PASS        28
#define E_PERM               29
#define E_BAD_FILE           30
#define E_LENGTH             31    /** string longer than USHRT_MAX **/
#define E_SEMAPHORE          32
  /** negative values should never be apparent to end-users ... indicate a
   ** bug in the server if they should ever be returned.
   **/
#define E_INVALID_ERR  -1   /* trying to set a negative ERROR */
#define E_START -666
#define E_BUG_IN_TONUM  -1000
#define E_BUG_IN_TOLIST -1001
#define E_BUG_IN_ADD    -1002
#define E_BUG_IN_TOSTR  -1003
#define E_BUG_IN_TOERR  -1004
#define E_BUG_IN_COPY   -1005
#define E_BUG_IN_PROCESS_IF -1006
#define E_UNSUPPORTED   -1007
#define E_BUG_IN_TOREAL -1008
#define E_DEAD_VALUE  -2000  /* trying to re-use a value that's been snarfed */
#define E_STACK_UN    -2001