cpp: move across the top-level backend types