#ifndef _INTEGER_REF_H
#define _INTEGER_REF_H

class ANY;

/*
 *
 * Non-expanded forms of basic type
*/

class INTEGER_REF : public virtual ANY {
public:
	INTEGER val;
	INTEGER_REF(); 
	virtual void set_value( INTEGER); 
	virtual INTEGER item (); 
	virtual STRING *out(); 
	virtual void print( ANY *);

	virtual INTEGER_REF* _Clone (int, int, INTEGER_REF*); 
	virtual INTEGER_REF* _localClone (int, int); 
	virtual void _Copy ( int, int, INTEGER_REF*); 
	BOOLEAN _Equal ( int, int, INTEGER_REF*); 
	void*   _rev_cvt ( int _type);
	BOOLEAN is_equal (INTEGER_REF*); 
	BOOLEAN equal (ANY*, INTEGER_REF*); 
	void copy ( INTEGER_REF*);
	INTEGER_REF* clone ( INTEGER_REF*);
	BOOLEAN deep_equal ( INTEGER_REF*, INTEGER_REF*);
	void deep_copy ( INTEGER_REF*);
	INTEGER_REF* deep_clone ( INTEGER_REF*);
	BOOLEAN _INFIX_LEQ ( INTEGER_REF*);
#ifndef _BOOLEAN_REF_H
	INTEGER_REF* _INFIX_ADD ( INTEGER_REF*);
	INTEGER_REF* _INFIX_SUB ( INTEGER_REF*);
	INTEGER_REF* _INFIX_MUL ( INTEGER_REF*);
	INTEGER_REF* _INFIX_DIV ( INTEGER_REF*);
#endif
   	BOOLEAN _Conforms_to ( int other_id);
};

INTEGER_REF* _ert_clone_INTEGER ( INTEGER);
INTEGER_REF* _ert_clone_INTEGER_REF ( INTEGER_REF *v);
INTEGER_REF* _INTEGER_REF_chk ( INTEGER_REF*, char *);
INTEGER_REF* _bibt_INTEGER_INTEGER_REF ( INTEGER);


#endif /* _INTEGER_REF_H */
