Thu May 9 14:56:44 EDT 2013

Abstract array references

What about making all references abstract?

I.e. a node can be a compile-time transformation of another node.

   (r123 (thunk))

If it is represented as a  i -> j -> k function

Const: it can take a function and produce another function that
ignores the current loop index.

This is also the main reason why loop indices cannot be bound in the
first pass, because indexing operations might be composed.

So that's it: a "transposer" decouples the real type from the
presented type, and produces a list of indices from a list of inputs.

This seems to be the right way to go.  However, there's a conflict
between implicit and explicit indexing.  What if a node is explicitly
indexed, but moves inside a new loop nesting.  How to add the other

Maybe it needs some more fermentation.

The questions is: what is a node?  Is it a grid, or a grid point, or
another subset of a grid for that matter?

Focus on dereferencing of nodes.  This always happens in a context.