Why are you complicating things? Struct and Unions are different namespaces for a reason.
typedef struct GtkLabel GtkLabel;
works just fine. typedef struct GtkLabel GtkLabel;
works just fine.https://gitlab.gnome.org/GNOME/gtk/-/blob/main/gtk/gtklabel....