/* Prototypes for functions defined in
data.c
 */

extern int Qnil;

extern int Qt;

extern int Qquote;

extern int Qlambda;

extern int Qsubr;

extern int Qunbound;

extern int Qerror_conditions;

extern int Qerror_message;

extern int Qtop_level;

extern int Qerror;

extern int Qquit;

extern int Qwrong_type_argument;

extern int Qargs_out_of_range;

extern int Qvoid_variable;

extern int Qvoid_function;

extern int Qcyclic_function_indirection;

extern int Qsetting_constant;

extern int Qinvalid_read_syntax;

extern int Qinvalid_function;

extern int Qwrong_number_of_arguments;

extern int Qno_catch;

extern int Qend_of_file;

extern int Qarith_error;

extern int Qmark_inactive;

extern int Qbeginning_of_buffer;

extern int Qend_of_buffer;

extern int Qbuffer_read_only;

extern int Qintegerp;

extern int Qnatnump;

extern int Qwholenump;

extern int Qsymbolp;

extern int Qlistp;

extern int Qconsp;

extern int Qstringp;

extern int Qarrayp;

extern int Qsequencep;

extern int Qbufferp;

extern int Qchar_or_string_p;

extern int Qmarkerp;

extern int Qinteger_or_marker_p;

extern int Qvectorp;

extern int Qbuffer_or_string_p;

extern int Qboundp;

extern int Qfboundp;

extern int Qcdr;

extern int Qrange_error;

extern int Qdomain_error;

extern int Qsingularity_error;

extern int Qoverflow_error;

extern int Qunderflow_error;

int wrong_type_argument(register int predicate,
                        register int value);

int pure_write_error(void);

void args_out_of_range(int a1,
                       int a2);

void args_out_of_range_3(int a1,
                         int a2,
                         int a3);

int make_number(int num);

extern int sign_extend_temp;

int sign_extend_lisp_int(int num);

extern struct Lisp_Subr Seq;

int Feq(int , int );

extern struct Lisp_Subr Snull;

int Fnull(int );

extern struct Lisp_Subr Sconsp;

int Fconsp(int );

extern struct Lisp_Subr Satom;

int Fatom(int );

extern struct Lisp_Subr Slistp;

int Flistp(int );

extern struct Lisp_Subr Snlistp;

int Fnlistp(int );

extern struct Lisp_Subr Ssymbolp;

int Fsymbolp(int );

extern struct Lisp_Subr Svectorp;

int Fvectorp(int );

extern struct Lisp_Subr Sstringp;

int Fstringp(int );

extern struct Lisp_Subr Sarrayp;

int Farrayp(int );

extern struct Lisp_Subr Ssequencep;

int Fsequencep(int );

extern struct Lisp_Subr Sbufferp;

int Fbufferp(int );

extern struct Lisp_Subr Smarkerp;

int Fmarkerp(int );

extern struct Lisp_Subr Ssubrp;

int Fsubrp(int );

extern struct Lisp_Subr Sbyte_code_function_p;

int Fbyte_code_function_p(int );

extern struct Lisp_Subr Schar_or_string_p;

int Fchar_or_string_p(int );

extern struct Lisp_Subr Sintegerp;

int Fintegerp(int );

extern struct Lisp_Subr Sinteger_or_marker_p;

int Finteger_or_marker_p(int );

extern struct Lisp_Subr Snatnump;

int Fnatnump(int );

extern struct Lisp_Subr Snumberp;

int Fnumberp(int );

extern struct Lisp_Subr Snumber_or_marker_p;

int Fnumber_or_marker_p(int );

extern struct Lisp_Subr Scar;

int Fcar(int );

extern struct Lisp_Subr Scar_safe;

int Fcar_safe(int );

extern struct Lisp_Subr Scdr;

int Fcdr(int );

extern struct Lisp_Subr Scdr_safe;

int Fcdr_safe(int );

extern struct Lisp_Subr Ssetcar;

int Fsetcar(int , int );

extern struct Lisp_Subr Ssetcdr;

int Fsetcdr(int , int );

extern struct Lisp_Subr Sboundp;

int Fboundp(int );

extern struct Lisp_Subr Sfboundp;

int Ffboundp(int );

extern struct Lisp_Subr Smakunbound;

int Fmakunbound(int );

extern struct Lisp_Subr Sfmakunbound;

int Ffmakunbound(int );

extern struct Lisp_Subr Ssymbol_function;

int Fsymbol_function(int );

extern struct Lisp_Subr Ssymbol_plist;

int Fsymbol_plist(int );

extern struct Lisp_Subr Ssymbol_name;

int Fsymbol_name(int );

extern struct Lisp_Subr Sfset;

int Ffset(int , int );

extern struct Lisp_Subr Sdefalias;

int Fdefalias(int , int );

extern struct Lisp_Subr Sdefine_function;

int Fdefine_function(int , int );

extern struct Lisp_Subr Ssetplist;

int Fsetplist(int , int );

int do_symval_forwarding(register int valcontents);

void store_symval_forwarding(int sym,
                             register int valcontents,
                             register int newval);

int swap_in_symval_forwarding(int sym,
                              int valcontents);

int find_symbol_value(int sym);

extern struct Lisp_Subr Ssymbol_value;

int Fsymbol_value(int );

extern struct Lisp_Subr Sset;

int Fset(int , int );

int default_value(int sym);

extern struct Lisp_Subr Sdefault_boundp;

int Fdefault_boundp(int );

extern struct Lisp_Subr Sdefault_value;

int Fdefault_value(int );

extern struct Lisp_Subr Sset_default;

int Fset_default(int , int );

extern struct Lisp_Subr Ssetq_default;

int Fsetq_default(int );

extern struct Lisp_Subr Smake_variable_buffer_local;

int Fmake_variable_buffer_local(int );

extern struct Lisp_Subr Smake_local_variable;

int Fmake_local_variable(int );

extern struct Lisp_Subr Skill_local_variable;

int Fkill_local_variable(int );

int indirect_function(register int object);

extern struct Lisp_Subr Sindirect_function;

int Findirect_function(int );

extern struct Lisp_Subr Saref;

int Faref(int , int );

extern struct Lisp_Subr Saset;

int Faset(int , int , int );

int Farray_length(register int array);

int arithcompare(int num1,
                 int num2,
                 enum comparison comparison);

extern struct Lisp_Subr Seqlsign;

int Feqlsign(int , int );

extern struct Lisp_Subr Slss;

int Flss(int , int );

extern struct Lisp_Subr Sgtr;

int Fgtr(int , int );

extern struct Lisp_Subr Sleq;

int Fleq(int , int );

extern struct Lisp_Subr Sgeq;

int Fgeq(int , int );

extern struct Lisp_Subr Sneq;

int Fneq(int , int );

extern struct Lisp_Subr Szerop;

int Fzerop(int );

int long_to_cons(unsigned long i);

unsigned long cons_to_long(int c);

extern struct Lisp_Subr Snumber_to_string;

int Fnumber_to_string(int );

extern struct Lisp_Subr Sstring_to_number;

int Fstring_to_number(int );

int arith_driver(enum arithop code,
                 int nargs,
                 register int * args);

extern struct Lisp_Subr Splus;

int Fplus(int , int * );

extern struct Lisp_Subr Sminus;

int Fminus(int , int * );

extern struct Lisp_Subr Stimes;

int Ftimes(int , int * );

extern struct Lisp_Subr Squo;

int Fquo(int , int * );

extern struct Lisp_Subr Srem;

int Frem(int , int );

extern struct Lisp_Subr Smod;

int Fmod(int , int );

extern struct Lisp_Subr Smax;

int Fmax(int , int * );

extern struct Lisp_Subr Smin;

int Fmin(int , int * );

extern struct Lisp_Subr Slogand;

int Flogand(int , int * );

extern struct Lisp_Subr Slogior;

int Flogior(int , int * );

extern struct Lisp_Subr Slogxor;

int Flogxor(int , int * );

extern struct Lisp_Subr Sash;

int Fash(int , int );

extern struct Lisp_Subr Slsh;

int Flsh(int , int );

extern struct Lisp_Subr Sadd1;

int Fadd1(int );

extern struct Lisp_Subr Ssub1;

int Fsub1(int );

extern struct Lisp_Subr Slognot;

int Flognot(int );

void syms_of_data(void);

void arith_error(int signo);

int init_data(void);

