"One reason why it needs to know the types is so that it can calculate sizes." . . . .