typedef struct GlobalReferenceListStruct {
	ObjPtr obj;
	struct GlobalReferenceListStruct *next;
} *GlobalReferenceListPtr;

ObjPtr MarkList();

#ifdef PROTO
int CountReferenceList();
int CountObjectList();
void AddToGlobalList(ObjPtr obj);
void AddToReferenceList(ObjPtr obj);
int RemoveFromReferenceList(ObjPtr obj);
void TrashDay();
int MarkObject(ObjPtr thingp);
void MarkVarTree(VarsPtr nodep);
void DeleteWithPrejudiceVarNode(VarsPtr nodep);
void DisposeListWithPersonalDislike(ObjPtr list);
void DeleteWithPrejudice(ObjPtr obj);
#else
int CountReferenceList();
int CountObjectList();
void AddToGlobalList();
void AddToReferenceList();
int RemoveFromReferenceList();
void TrashDay();
int MarkObject();
void MarkVarTree();
void DeleteWithPrejudiceVarNode();
void DisposeListWithPersonalDislike();
void DeleteWithPrejudice();
#endif

extern int TrashDayFlag;
