not `static` inline, so we keep an implementation around if needed (someone might have called it from assembly)