Fri May 17 14:12:15 EDT 2013

Compile time vectors

Maybe it's good to allow state nodes to be compile time vectors.  This
requires an extension in ai-array.

The trouble with that is the type needs to be known at input.
Auto-lifting could be used.

It is getting dangerously complicated.  This is the constructor
commutation problem I ran into in haskell, i.e. generalized transpose:
foo of bar to bar of foo.

It would actually help to have a proper type system to annotate the
nodes.  Something that runs "backwards".

How to construct an annotated semantics?
A program is a sequencer of primitives.
Maybe the primitives should be extended to take a context?
They already do for semantics, but not node-specific.
I.e. adding context requires the introduction of an identity.
Every primitive node is unique.
Currently, the isomorphism between the output and the primitive node is implicit.

What does a type checking transformation look like?

I'm thinking, everything points in the direction of automatic lifting.