This is an insanely big commit. Everything up to intermediate representations of expressions seem to be working.