Tue Dec 2 13:35:16 EST 2014

Grid types explained (again) - Where is my morphism?

The `traditional' way of typing in a functional language is to
deconstruct containers, i.e. a type (C t) will yield values of t that
can be individually presented to a mapped or folded function.

In RAI, the loop operator "unpacks" values, but their types are kept
as grids.  Some magic happens whichs lifts all operations and values
from scalars to grids of dimension d to dimension d+1.

This is done in order to make it simpler to construct state associated
to causal sequence processors.

Somehow this representation encodes the morphism between (abstract)
causal stream operators and programs implementing those in terms of
iterated functions.

But it is weird and inconsistent in the way I word it.  However it
works fine to express what I want, which is to track the coordinates
and dimensionality associated to each (named) node, in order to add
hidden nodes to contain state.

I find myself swimming in confusion about how to make this more
concrete or formal.  It feels that I discovered something that already
exists, but in a slightly different form and I don't recognize it.

So what is wrong with this picture?

Why are there two sides to this: scalars (there is an "unpack"
operation as in:)