- relation objects that connect operators and inverses to transform expressions
*/
struct ScalarRelation {
int arity;
set<Operator> operations;
}
struct Operator {
string name, symbol;
ScalarRelation & relation;
vector<int> input_idxs;
vector<int> output_idxs;
};
struct OperatorExpression : Expression {
Operator & operator;
vector<Expression> inputs;
};
/* :D */