Flip direction of newtype coercions, fix some comments
[ghc-hetmet.git] / compiler / typecheck / TcDeriv.lhs
index b777968..2563b09 100644 (file)
@@ -42,8 +42,7 @@ import NameSet                ( duDefs )
 import Type            ( splitKindFunTys )
 import TyCon           ( tyConTyVars, tyConDataCons, tyConArity, tyConHasGenerics,
                          tyConStupidTheta, isProductTyCon, isDataTyCon, newTyConRhs,
-                         isEnumerationTyCon, isRecursiveTyCon, TyCon, isNewTyCon,
-                          newTyConCo
+                         isEnumerationTyCon, isRecursiveTyCon, TyCon, isNewTyCon
                        )
 import TcType          ( TcType, ThetaType, mkTyVarTys, mkTyConApp, tcTyConAppTyCon,
                          isUnLiftedType, mkClassPred, tyVarsOfType,
@@ -333,8 +332,9 @@ not just use the Num one.  The instance we want is something like:
      instance (Num a, Show (Foo a), Eq (Foo a)) => Num (Foo a) where
        (+) = ((+)@a)
        ...etc...
-There's no 'corece' needed because after the type checker newtypes
-are transparent.
+There may be a coercion needed which we get from the tycon for the newtype
+when the dict is constructed in TcInstDcls.tcInstDecl2
+
 
 \begin{code}
 makeDerivEqns :: OverlapFlag
@@ -464,7 +464,7 @@ makeDerivEqns overlap_flag tycl_decls
                -- If there are no tyvars, there's no need
                -- to abstract over the dictionaries we need
        dict_tvs = deriv_tvs ++ tc_tvs
-       dict_args | null dict_tvs = []
+       dict_args -- | null dict_tvs = []
                  | otherwise     = rep_pred : sc_theta
 
                -- Finally! Here's where we build the dictionary Id