  is it OK? But if so, we need do something else for generic such as `Array<String>`...