/****************OSL***************\
About this file:
   $$ is a C Header file for the module "Generic objects".
   $$ defines Object, Class, Attribute descriptors.
\**********************************/

/*** Includes & Defines ***/

#ifndef GObjects_H
#define GObjects_H

#include "Identifier.h"


/**************************** Objects Types *****************************/

typedef struct Clad	Clad ;		/* Class, Attributes & Data */
typedef struct Attr	Attr ;		/* Attribute */
typedef Identifier	AttrId ;		/* Identifier */

struct Clad {
  Clad *	Class ;
  Attr *	Attributes ;
  void *	Data ;
} ;

struct Attr
{
  Attr *	Next ;
  AttrId	ID ;
  Clad *	Val ;
} ;

Clad * Operate (Clad * Function, Clad * Object) ;

#endif /* GObjects.h */
