MultiParamTypeClasses-
Implies: ConstrainedClassMethodsSince: 6.8.1 Allow the definition of typeclasses with more than one parameter.
Multi-parameter type classes are permitted, with extension MultiParamTypeClasses. For example:
class Collection c a where
union :: c a -> c a -> c a
...etc.