Thu Aug 6 23:10:28 EDT 2015

Applicative remarks

- Keep representation applicative: Sig -> Sig -> ...
- Be careful about representation issues:  (r a, r b) <-> r (a, b)
- Use un currying for code generation:  a -> b -> c   ->   (a,b)->c

For code gen, currying isn't necessary.  The trick is the generation
if Sig m i, which boils down to generating something like "in[n]",
together with a (fake, ignored) state.