#ifndef _BOOLEAN_REF_H
#define _BOOLEAN_REF_H

class ANY;

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

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

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

BOOLEAN_REF* _ert_clone_BOOLEAN ( BOOLEAN);
BOOLEAN_REF* _ert_clone_BOOLEAN_REF ( BOOLEAN_REF *v);
BOOLEAN_REF* _BOOLEAN_REF_chk ( BOOLEAN_REF*, char *);
BOOLEAN_REF* _bibt_BOOLEAN_BOOLEAN_REF ( BOOLEAN);


#endif /* _BOOLEAN_REF_H */
