Oh, and by the way, is it enough then to create an instance of Applicative or Monad to automatically get an instance of the respective superclasses? And the generalization for any superclass/subclass? Would be great... If not why so?