#ifndef __THESYMBOLS__HH
#define __THESYMBOLS__HH

#include "symbol.hh"
#include "const.hh"

#include <list>
#include <set>
#include <bitset>

using namespace std;

typedef Symbol<1>              Cat;
typedef bitset<MAXCATS>        CatSet;

typedef Symbol<2>              Role;
typedef list<Role>             RoleList;
typedef list<Role>::iterator   RoleListIter;
typedef bitset<MAXTYPES>       RoleSet;
typedef set<Role>              Roles;
typedef Roles::iterator        RolesIter;

typedef Symbol<3>              Constr;
typedef list<Constr>           ConstrList;
typedef list<Constr>::iterator ConstrListIter;

typedef Symbol<4>              LongRel;
typedef set<LongRel>           LongRels;

typedef Symbol<5>              Flag;
typedef bitset<MAXFLAGS>       FlagSet;

typedef Symbol<6>              Prop;
typedef bitset<MAXPROPS>       PropSet;

#endif
