We need them when inferring types and checking whether two expressions
are definitionally equal or not.
Remark: they are temporary objects, and should never be included in the
blast state object.
We had to reimplement the expr API: replace, abstract, instantiate.
Remark: blast expressions do not use metavariables and local constants,
but the new mref and lref expressions.