Ah, my second question was why you coerce `f` to returning `()`, because it seems unfortunate to `fail!()` explicitly below when you could rely on the return value of `sess.fatal_with_diagnostic_code` to return `!`.