https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92546
--- Comment #31 from Jonathan Wakely <redi at gcc dot gnu.org> --- std::construct_at and std::destroy_at are in <bits/stl_construct.h> alongside std::_Construct and std::_Destroy. But the latter need iterator category definitions for destroying sequences. std::construct_at and std::destroy_at have no dependencies. They could be moved into <bits/move.h> or <bits/memoryfwd.h> or something smaller. This would benefit <expected> (and maybe other headers).