Environment and AST
Removing booleans, I'll use Church encoding