[Better error messages for invalid class declarations
Einar Karttunen <ekarttun@cs.helsinki.fi>**20050520111300
 Check whether the typeclass has one valid parameter. 
 Reject classes with zero or multiple parameters with
 a clear error message.
 
 Renamer is not the best place to do this, but it must
 be done before kind inference, so there are not very
 many alternatives.
] hunk ./FrontEnd/Rename.hs 363
+    doesClassMakeSense hsQualType'
hunk ./FrontEnd/Rename.hs 391
-
+doesClassMakeSense :: HsQualType -> ScopeSM ()
+doesClassMakeSense (HsQualType _ type_) =
+ case type_ of
+  (HsTyApp (HsTyCon _) (HsTyVar _)) -> return ()
+  (HsTyApp (HsTyApp _ _) _)         -> failRename "Multiparameter typeclasses not supported"
+  (HsTyCon _)                       -> failRename "Typeclass with no parameters"
+  _                                 -> failRename $ "Invalid type in class declaration: "++show type_