@:multiType(T) abstract Vector(Array) { function new(); public inline static function ofArray(a:Array):Vector { return new Vector(); } @:to static function toIntVector(t:Array) return null; @:to static function toObjectVector(t:Array) return null; }