Cleanup:
 * Use SpanEmpty instead of reusing annotations when creating new AST nodes in Simplifier
 * Prefer pattern matching to explicit checking or guards