Since we rely on the metalanguage for typechecking and hence
type generalization, we have to use `let' of the metalanguage.

It is quite challenging to show terms. Yet, in contrast to the GADT-based
approach (EvalTaglessI.hs), we are able to do that, without
extending our language with auxiliary syntactic forms.
Incidentally, showing of terms is just another way of _evaluating_
them, to strings.