#include "mymemory.h"
#include <inttypes.h>
+#include "classes.h"
+#include "astnode.h"
-class CSolver;
-struct SATEncoder;
-typedef struct SATEncoder SATEncoder;
-class Boolean;
class BooleanOrder;
class BooleanVar;
-class BooleanLogic;
+
class BooleanPredicate;
class ASTNode;
-class Set;
-class MutableSet;
+
+
class ElementFunction;
class ElementSet;
class ElementConst;
-class Element;
class FunctionOperator;
class FunctionTable;
-class Function;
-class Predicate;
+
+
class PredicateTable;
class PredicateOperator;
-class Table;
-class Order;
-class OrderPair;
-
-struct IncrementalSolver;
-typedef struct IncrementalSolver IncrementalSolver;
+class OrderPair;
-struct OrderElement;
-typedef struct OrderElement OrderElement;
+class OrderElement;
+class IntegerEncodingRecord;
+class Transform;
+class Pass;
+class Transformer;
+class AnalysisData;
class ElementEncoding;
class FunctionEncoding;
class OrderEncoding;
-struct TableEntry;
-typedef struct TableEntry TableEntry;
+class OrderGraph;
+class OrderNode;
+class OrderEdge;
-struct OrderGraph;
-typedef struct OrderGraph OrderGraph;
+class AutoTuner;
+class SearchTuner;
+class TunableSetting;
-struct OrderNode;
-typedef struct OrderNode OrderNode;
+class TunableDesc;
-struct OrderEdge;
-typedef struct OrderEdge OrderEdge;
+class OrderResolver;
+class DecomposeOrderResolver;
-struct OrderEncoder;
-typedef struct OrderEncoder OrderEncoder;
+class EncodingGraph;
+class EncodingNode;
+class EncodingEdge;
-struct Tuner;
-typedef struct Tuner Tuner;
-struct TunableDesc;
-typedef struct TunableDesc TunableDesc;
+struct IncrementalSolver;
+typedef struct IncrementalSolver IncrementalSolver;
+struct TableEntry;
+typedef struct TableEntry TableEntry;
typedef int TunableParam;
-
-typedef unsigned int uint;
-typedef long int int64;
-typedef uint64_t VarType;
#endif