When a dynamic type implements an interface and derives from a type
which implements the same interface, the g_type_module_add_interface
function does not actually work: no interface will be added to the
dynamic type in this case.
The bug is in the GTypeModule class implementation in gobject,
the actual type system has no such limitation. It is reasonably
straightforward to hack around the problem in GOB.