Implement various ideas for building a more clever Rete structure:
ASAP trimming of variables not used later
Clever node reuse
Find if a stub join also happens to join alternate stubs with the same underlying Rete node, and then consider the "free accidental" stub in further joins.
Suggested order of join preference:
trivial joins (stub a = stub b)
high selectivity filters
supressed by joincandidate if already checked on other side
apply first to narrower stubs
aggregator quasijoins, let-expressions (?)
true joins
except cartesians
TBD: ranking based on what constraints the join will enable
Added the task of clever node reuse after the discussions at the latest meeting. Potential source of good test case: the thesis about GPU vs. EIQ performance supervised by @abelhegedus.
Implement various ideas for building a more clever Rete structure: