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: