Is it statically typed?
I guess static type checking is probably more work on its own than writing an entire dynamically typed language.
BTW: I think I found a typo: "MATCH2("+=", PERCENTEQUAL);" — should be "%=" ??
As such, the "array" type is just an opaque type exposed via the C binding API. Given that there are no generics at the moment, this array API works with "any" values (similar to "any" in e.g. TypeScript).