Introduce a 'bind' function for constructing C ASTs.
Normalize the AST during construction.
Capture some invariants in the C AST type.

The RHS of a let binding cannot be another let binding.
Return is now only allowed in the final position.
Only globally-bound functions can be called.
Distinguish global functions from variables in the C AST types.
Pull out local variables as a separate type.
Name the type of C bindings (x = e).
Introduce direct-mapping types for `string', `bytes' and `float array'.