1. I don't want to implement arithmetic. So instead, my 'numbers'
that are the results of evaluation are going to be expressions like
'1 + 3 * 4'

2. Well, I'm going to have to implement <. I still don't want to
implement arithmetic. So, since the main proof I want to make is type
preservation, I will make < non-deterministic, to return true or false
as its evil little heart desires.

This will make it harder to write terminating programs in this
language, but it is still the case that any correct evaluation could
be an evaluation in this scheme, so any proof (i.e., type
preservation) about all evaluations will still be true of all correct
evaluations.

3. 4/22/97: There's some non-determinism in my judgments that implement 
unit equivalence. Does this matter?

4. 4/22/97: Hmm. My unit equality algorithm is terminating (I think.)
But the equational axioms of associativity, commutativity, identity,
and inverses are easier to use for type preservation. Would it be
possible to define equality by those algorithms, and then to use my
algorithm as a search procedure to construct a judgment of equality
using those axioms, instead of just a 'yes or no' answer of whether
they're equal?
