Optimization functions in dahu.model.compiler.Optimizations should be usable for both:
- whole AST optimisation with hylo
- incremental optimization while constructing the AST (in SatisfactionProblem)
Right now we use the first option but the second has some advantages, especially regarding temporal locality.