Should boost::reflect::mirror_interface be true to its name and not add other operations such as fused parameter lists and instead create a boost::reflect::fused_interface? Unless it is found to cause conflicts, the extra function of mirror_interface is probably better than the extra complications of switching between fused/unfused interfaces.