Hi Timotej,
It seems you can merge r and s. This solution seems to rely on features
that are very specific to the set of effects you want to model, but I
couldn't pinpoint what these are.
newtype ST2 r w a = ST2 { unwrapST2 :: ST r a }
Li-yao