Partial changes for derived newtype instances
[ghc-hetmet.git] / compiler / typecheck / TcDeriv.lhs
index 65c425d..0a8a498 100644 (file)
@@ -350,6 +350,10 @@ makeDerivEqns overlap_flag tycl_decls
         mk_eqn_help gla_exts new_or_data tycon deriv_tvs clas tys
 
     ------------------------------------------------------------------
+    -- data/newtype T a = ... deriving( C t1 t2 )
+    --   leads to a call to mk_eqn_help with
+    --         tycon = T, deriv_tvs = ftv(t1,t2), clas = C, tys = [t1,t2]
+
     mk_eqn_help gla_exts DataType tycon deriv_tvs clas tys
       | Just err <- checkSideConditions gla_exts tycon deriv_tvs clas tys
       = bale_out (derivingThingErr clas tys tycon (tyConTyVars tycon) err)
@@ -434,7 +438,7 @@ makeDerivEqns overlap_flag tycl_decls
                -- We must pass the superclasses; the newtype might be an instance
                -- of them in a different way than the representation type
                -- E.g.         newtype Foo a = Foo a deriving( Show, Num, Eq )
-               -- Then the Show instance is not done via isomprphism; it shows
+               -- Then the Show instance is not done via isomorphism; it shows
                --      Foo 3 as "Foo 3"
                -- The Num instance is derived via isomorphism, but the Show superclass
                -- dictionary must the Show instance for Foo, *not* the Show dictionary