bfe6ec9b77
Also includes a drive-by refactor of `utils::generate_impl_text_inner`, since that's what drove this change