Add information about type parameters into generated GType.
Motivation
Currently GLib.Array and GLib.Array are of type G_TYPE_ARRAY. And typeof(GLib.Array<int>).is_a(typeof(GLib.Array<MyObjectType>))
is true. It causes troubles when checking types, in reflection for example. It is impossible to either distinguish types or cast such types to some common parent. Gee.Traversable allows to get the value of Type element_type property and find information about type of the element in the collection. With this property it is possible to separate Gee.Traversable object from Gee.Traversable object. However in that case object is required and type information does not contain any information about type parameters. GLib definition of GType, as far as I know, does not allow to store additional information regarding type parameters. It would be nice to add this opportunity there, but it requires bigger changes and discussion within GLib team (I doubt this is going to happen).
Suggestion
CLR (.Net) aware of generics and it is possible to construct information about generic type in runtime like
typeof(MyType<>).MakeGenericType(typeof(float))
and later instantiate this type. JVM is not aware about generics, so there is type erasure on compilation and Type for corresponding types are different. However it is still possible to check is type a generic type and what type parameters was used. GLib is not aware of generics, but like CLR, creates one type for all generic type parameters (MyType, MyType<float?> and MyType are all of type MY_CLASS).
Use C++ like approach. It won't require changing anything in GLib itself. Every declaration of MyType with concrete type should cause generation of GLib type for it. Not MY_TYPE, but MY_TYPE__G_TYPE_INT__. Code generator should be changed, I think quite a lot, to support it.