VariableName compilation now handles the bindings
Indexes can now be arbitrary Expressions
Replaced itertools.chain with funcy.cat