Wed Oct 26 16:40:01 EDT 2011

Fixing some of the overlapping instances cruft

The trouble is with two ways of specifiying primitives:

- CompileVar: for Compile.hs to implement primitive data representation.

- TMLprim / LoopVar / LoopVars: for limiting inputs to certain syntax
  elements of Loop to primitive data.

These should be merged somehow, or derived from the same root.

Let's just delete LoopVar / LoopFun and start over.

The problem seems to be that for termFun to work I need to have an

CompileVar (Code t)

But the language's constraints are about about collections of (r t).

Something isn't quite right there..

This should go beter:

instance (TMLprim t) => TypeOf (Code t)
instance (TMLprim t, TypeOf (Code t)) => CompileVar (Code t)

That cleared up some errors, though now there is the problem of
representing multiple-arity functions.  termFun uses both currying and