Why can T not be a struct?