I have an Applicative (which is not a Monad) and I have another Applicative which with additional constraints provides parallel apply for my initial type. It seems that this is the purpose of Parallel class - to define such a relation between types.
If I understand it correctly Parallel requires me to provide Monad instance for my "non parallel type". Why is this the case? Wouldn't it be enough to just require an Applicative instance?