Думаю это можно было бы на уровне биндов решить, или кастомного поля над классом который говорит что це gtype
мало сказать, что это gtype. нужно сказать, что он еще поддерживает интерфейс. в условиях D - это наследование прибиндженого интерфейса + С регистрация методов