Unified builtins2

This is not entirely correct, but I think it might works in practice. The idea is that if it is matching, this rule does not add anything to the constraint, so the pattern would have been unfolded in the previous step (it cannot have been in the RHS of the semantic rule). To make this work, I am unfolding after applying a rule. I might need to unfold before the execution starts as well, we'll see.