This simple operation, which is not in the list of linker_operations by default, moves all global declarations into modules based on their language. This means you can mix declarations of different languages (e.g: IDL and C++), and if one references the other (perhaps due to NameMapper) it will look like: IDL::Fresco::WidgetKit instead of just Fresco::WidgetKit. It will also prevent clashes if you have both an IDL Fresco::WidgetKit and a C++ Fresco::WidgetKit.