Translate define syntax sugar.
Use de Bruijn index for local variables.
Local environments are represented as list of list, not list of a-list.
Global environment is not changed.
Cleanup code.
Add syntax check.