My program needs a list such as [IO 3, IO "f", IO 'z'] :: Show s => [IO s]. Is there any way to achieve this without wrapping all the values in existentially quantified types?