Currently array definitions only allow struct identifiers as their type, not primitive type identifiers. For example, map int colors[256] at 0 throws a syntax error but map Color colors[256] at 0 does not. The workaround is to define a struct with a single member matching the primitive type desired, but that's not ideal. As far as I can remember there's nothing actually preventing this from being allowed, just an issue with the syntax validation only allowing one type of child AST node.