The problem with instance_types.h is that it requires pulling in practically the whole compiler headers, so most clients that only want this for the simpler cmp functions can use it without that because of a nasty ifdef down below.
When including cmpfunc.h, make sure these files are included first:
include "utilities/ascConfig.h"
include "instance_enum.h"
include "compiler.h"
and possibly, or if CmpIntIndex is undefined,
include "instance_types.h"
#include "compiler.h"
Include dependency graph for cmpfunc.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.
Defines | |
| #define | CmpParents CmpRealPtrs |
| #define | CmpRelations CmpRealPtrs |
| #define | CmpLogRelations CmpRealPtrs |
| #define | CmpWhens CmpRealPtrs |
Functions | |
| ASC_DLLSPEC int | CmpSymchar (symchar *s1, symchar *s2) |
| int | CmpPtrs (const void *p1, const void *p2) |
| ASC_DLLSPEC int | CmpRealPtrs (const void *p1, const void *p2) |
| int | CmpParentsF (CONST struct Instance *i1, CONST struct Instance *i2) |
| int | CmpRelationsF (CONST struct Instance *i1, CONST struct Instance *i2) |
| int | CmpLogRelationsF (CONST struct Instance *i1, CONST struct Instance *i2) |
| int | CmpWhensF (CONST struct Instance *i1, CONST struct Instance *i2) |
| int | CmpPtrsReverse (void *p1, void *p2) |
1.5.1