• Simon Peyton Jones's avatar
    [project @ 2001-03-13 14:58:25 by simonpj] · 788faebb
    Simon Peyton Jones authored
    	Nuke ClassContext
    This commit tidies up a long-standing inconsistency in GHC.
    The context of a class or instance decl used to be restricted
    to predicates of the form
    	C t1 .. tn
    	type ClassContext = [(Class,[Type])]
    but everywhere else in the compiler we used
    	type ThetaType = [PredType]
    where PredType can be any sort of constraint (= predicate).
    The inconsistency actually led to a crash, when compiling
    	class (?x::Int) => C a where {}
    I've tidied all this up by nuking ClassContext altogether, and using
    PredType throughout.  Lots of modified files, but all in
    more-or-less trivial ways.
    I've also added a check that the context of a class or instance
    decl doesn't include a non-inheritable predicate like (?x::Int).
    Other things
     * rename constructor 'Class' from type TypeRep.Pred to 'ClassP'
       (makes it easier to grep for)
     * rename constructor HsPClass  => HsClassP
    		      HsPIParam => HsIParam