That's not a list of Show, that's a list of a single type that instantiates Show.
The difference being that in your code you can only put in a single type at a time, eg [Int] or [String], but not both Int and String under the common Show interface type.