Sorlok, I'll be honest, I was more interested in overloading var for array so we can test array lengths and also to return arrays of pixel data from background functions, like background_getpixels is what I wanted to do. Studio added some of these functions which I'd also like to have. It is much easier for heightmaps and stuff, and the old way of drawing to the screen then draw_getpixel one at a time was soooooooo slow. But currently regular arrays don't even work in the parser, and to overload var we'd also have to overload std::array which I tried and failed at.
The major challenge with pushing more variable types onto variant is the semantics of other operators (like add, subtract) when differing types are involved.
The other major question is more a design issue: do we want to mirror GM:S's array syntax 100%, for example, or do it in some other way (maybe introduce a different variant type internally?) Consider the following:
var i = 10;
var p = /* some pointer */;
var s = "hi";
var a = /* some array */;
var u = i + p + s + a;
If GM supports this last line, you're just begging for hard-to-debug games.