Why do we need Control.Monad.Instances?