Thu Aug 20 12:56:12 EDT 2015

Code vector representation

Basically:  (Int, Int -> Comp (Code t))

This doesn't fit in a Term, or does it?

It would create a mutual dependency.  A solution would be to hide it
in a dictionary in the monad, and use variables.

Let's move Term.hs into Code.hs

The fundamental conflict arises from things that produce vectors: the
"value" needs to be accessible.  So either they need to be kept out of
Let expressions, or the state should have a dictionary to be able to

The latter seems clunky, so let's put it in Term first.

It's not in Term.
It's Code itself that should have an array type.