#ifndef _MENTENON_H
#define _MENTENON_H

#include "mentalEntity.h"

namespace smo {

/*
 * MentalPhenomena are content of the mind that specifically represents
 * phenomena. I.e: perceptual data, whether structural or implicative. All
 * Menten are Mentities, but not all Mentities are Menten.
 */

struct MentalPhenomenon
: public MentalEntity
{
public:
	MentalPhenomenon(const MentalEntity::Id id)
	: MentalEntity(id)
	{}
};

typedef MentalPhenomenon Mentenon;

class ImplexedMentalPhenomenon
: public MentalPhenomenon
{
};

typedef ImplexedMentalPhenomenon Implexon;

class ArtificedMentalPhenomenon
: public MentalPhenomenon
{
};

typedef ArtificedMentalPhenomenon Artifenon;

} // namespace smo

#endif // _MENTENON_H
