Type-argument defaulting is handled elsewhere in the compiler. This is a small drive-by improvement, so I didn't change the handling of 'array' or 'promise'; they still manually create `any[]` and `Promise<any>`, respectively.