Fix a small completeness bug.

If we perform x @ ?a - x @ int, then x @ ?a is _removed_ from the environment to
perform the subtraction, but we failed to figure out that picking a = int means
it should be put back after the subtraction, since it _has become_ duplicable.
Fix two bugs in the surface printer and the derivation printer.