Fix if-then-else, make errors clearer, implement macros-ish.