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