Avoid matching on MkTypedTerm.

This is the first step towards making TypedTerm abstract in order to
easy changing its representation.
Generalize smart constructors to TypedTerm.

This avoids calling MkTypedTerm directly and is the second step towards
making TypedTerm more abstract.
Export TypedTerm abstractly.
Remove unnecessary comment.
Don't evaluate unchecked terms.

This deletes some calls to nbe on the arguments of a call to
typecheckPull.

It is not type-safe to evaluate potentially ill-typed terms. It is not
efficient (to the extent of changing termination behavior) to typecheck
the normal form of a term instead of typechecking the term itself. I
don't know why these calls to nbe were there in the first place.

This increases the exposure of existing bugs where well-typed terms are
compared syntactically instead of comparing up to beta-equivalence.
Remove unit tests about equivalence.

I plan to change equivalence so that it is defined on TypedTerm, but
unit tests on TypedTerm are annoying: For quickcheck properties, we
would need an Arbitrary instance, and for tests, we would need to
annotate the type by hand.

We should cover equivalence with system testing instead, by adding more
examples.
Change argument type of eval to TypedTerm.

This avoids evaluating potentially ill-typed terms by accident, and
saves us a lot of calls to strip.
Generalize TypedTerm to AnnotatedTerm.

This will allow to move TypedTerm to a different module without having
to move the AnnotatedTerm machinery.
Move TypedTerm to separate module.

This avoids cyclic module dependencies when using Value in TypedTerm in
the next commit.
Use same environment for typing and evaluation.
Use environment monad for eval.
Improve pts-variable-name-at-point.

Guard against the case that (symbol-at-point) returns nil.
Remove PTS.Dynamics.Normalisation.

The code in this module was never used and probably never worked.
Convert Binding to record.
Remove commented out instance Ord Term.
Move lookup(Type|Value) to PTS.Dynamics.Binding.

To be reused outside of PTS.Statics.Typing.
Reuse lookupValue in eval.
Remove unused helper functions.
Name the state type for processFile etc.
Abstract over state operations.