Input: syntax objects stages: 1. resolve 2. interpret resolve fixes up bindings so that interpret has less work to do