Some methods here are duplicated wrt `ApplyReifier`. After the `Hole` refactoring the contract of `CorrespondsTo` will become the same both in apply and unapply reifiers, therefore we should be able to factor out the common logic.