[project @ 2004-09-09 07:07:43 by panne]
[ghc-hetmet.git] / ghc / compiler / typecheck / TcDeriv.lhs
index 938d55c..82a6d26 100644 (file)
@@ -49,7 +49,7 @@ import Var            ( TyVar, tyVarKind, idType, varName )
 import VarSet          ( mkVarSet, subVarSet )
 import PrelNames
 import SrcLoc          ( srcLocSpan, Located(..) )
-import Util            ( zipWithEqual, sortLt, notNull )
+import Util            ( zipWithEqual, sortLe, notNull )
 import ListSetOps      ( removeDups,  assocMaybe )
 import Outputable
 import Bag
@@ -529,9 +529,10 @@ mkDataTypeEqn tycon clas
        --        data T a b = ... deriving( Typeable )
        -- gives
        --        instance Typeable2 T where ...
+       -- Notice that:
        -- 1. There are no constraints in the instance
        -- 2. There are no type variables either
-       -- 2. The actual class we want to generate isn't necessarily
+       -- 3. The actual class we want to generate isn't necessarily
        --      Typeable; it depends on the arity of the type
     do { real_clas <- tcLookupClass (typeableClassNames !! tyConArity tycon)
        ; dfun_name <- new_dfun_name real_clas tycon
@@ -713,7 +714,7 @@ solveDerivEqns orig_eqns
       = addSrcSpan (srcLocSpan (getSrcLoc tc))         $
        addErrCtxt (derivCtxt (Just clas) tc)   $
        tcSimplifyDeriv tyvars deriv_rhs        `thenM` \ theta ->
-       returnM (sortLt (<) theta)      -- Canonicalise before returning the soluction
+       returnM (sortLe (<=) theta)     -- Canonicalise before returning the soluction
 
 mk_deriv_dfun (dfun_name, clas, tycon, tyvars, _) theta
   = mkDictFunId dfun_name tyvars theta