struct CSolver;
typedef struct CSolver CSolver;
+struct SATEncoder;
+typedef struct SATEncoder SATEncoder;
-struct Constraint;
-typedef struct Constraint Constraint;
+typedef struct BooleanOrder BooleanOrder;
+typedef struct BooleanVar BooleanVar;
+typedef struct BooleanLogic BooleanLogic;
+typedef struct BooleanPredicate BooleanPredicate;
+
+struct ASTNode;
+typedef struct ASTNode ASTNode;
struct Boolean;
typedef struct Boolean Boolean;
struct Set;
typedef struct Set Set;
-
typedef struct Set MutableSet;
+typedef struct ElementFunction ElementFunction;
+typedef struct ElementSet ElementSet;
+
struct Element;
typedef struct Element Element;
+typedef struct FunctionOperator FunctionOperator;
+typedef struct FunctionTable FunctionTable;
+
struct Function;
typedef struct Function Function;
struct Predicate;
typedef struct Predicate Predicate;
+struct PredicateTable;
+typedef struct PredicateTable PredicateTable;
+
+struct PredicateOperator;
+typedef struct PredicateOperator PredicateOperator;
+
struct Table;
typedef struct Table Table;
struct Order;
typedef struct Order Order;
-struct ElementEncoder;
-typedef struct ElementEncoder ElementEncoder;
+struct OrderPair;
+typedef struct OrderPair OrderPair;
+
+struct ElementEncoding;
+typedef struct ElementEncoding ElementEncoding;
+
+struct FunctionEncoding;
+typedef struct FunctionEncoding FunctionEncoding;
+
+struct OrderEncoding;
+typedef struct OrderEncoding OrderEncoding;
-struct FunctionEncoder;
-typedef struct FunctionEncoder FunctionEncoder;
+struct TableEntry;
+typedef struct TableEntry TableEntry;
typedef unsigned int uint;
typedef uint64_t VarType;