X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fdocs%2Fusers_guide%2Fglasgow_exts.sgml;h=db91ac0e6ca9706c4829651fe78488b30e6e836c;hb=32c4b4b2e71ab2f44a567addefb40f3d4b0fecb8;hp=2a7f379bfa8db15a3c4d5849efabf9739175eaa0;hpb=daacf054782f0a9c0187c0e3b64e7c05bd173f5d;p=ghc-hetmet.git
diff --git a/ghc/docs/users_guide/glasgow_exts.sgml b/ghc/docs/users_guide/glasgow_exts.sgml
index 2a7f379..db91ac0 100644
--- a/ghc/docs/users_guide/glasgow_exts.sgml
+++ b/ghc/docs/users_guide/glasgow_exts.sgml
@@ -1597,9 +1597,9 @@ declarations
instance context2 => C type2 where ...
+"overlap" if type1 and type2 unify.
-"overlap" if type1 and type2 unify
-
+
However, if you give the command line option
-fallow-overlapping-instances
option then overlapping instance declarations are permitted.
@@ -3105,17 +3105,24 @@ where
S is a type constructor,
- t1...tk are types,
+ The t1...tk are types,
- vk+1...vn are type variables which do not occur in any of
+ The vk+1...vn are type variables which do not occur in any of
the ti, and
- the ci are partial applications of
+ The ci are partial applications of
classes of the form C t1'...tj', where the arity of C
is exactly j+1. That is, C lacks exactly one type argument.
+
+ None of the ci is Read, Show,
+ Typeable, or Data. These classes
+ should not "look through" the type or its constructor. You can still
+ derive these classes for a newtype, but it happens in the usual way, not
+ via this new mechanism.
+
Then, for each ci, the derived instance
declaration is: