X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=docs%2Fusers_guide%2Fseparate_compilation.xml;h=bc3afcab6342807034f052804756e9287cb39ea5;hp=1bdb0c5344d716cf7ef2410950a16c8f1d514c0c;hb=e42d6cb48df657053029aff833de1151cf7349bf;hpb=a0dc836466030979d0881577bd75abd316aa2f8b
diff --git a/docs/users_guide/separate_compilation.xml b/docs/users_guide/separate_compilation.xml
index 1bdb0c5..bc3afca 100644
--- a/docs/users_guide/separate_compilation.xml
+++ b/docs/users_guide/separate_compilation.xml
@@ -1169,7 +1169,8 @@ just in case they contain an instance declaration that matters to M. This would
be a disaster in practice, so GHC tries to be clever.
In particular, if an instance declaration is in the same module as the definition
-of any type or class mentioned in the head of the instance declaration, then
+of any type or class mentioned in the head of the instance declaration
+(the part after the “=>”; see ), then
GHC has to visit that interface file anyway. Example:
module A where
@@ -1208,7 +1209,7 @@ functional dependency:
class E x y | y -> x where ...
Then in some importing module M, the constraint (E a Int) should be "improved" by setting
-a = Int, even though there is no explicit mention
+a = T, even though there is no explicit mention
of T in M.
These considerations lead to the following definition of an orphan module:
@@ -1232,7 +1233,7 @@ These considerations lead to the following definition of an orphan module:
- Only the instance head (the part after the “=>”)
+ Only the instance head
counts. In the example above, it is not good enough for C's declaration
to be in module A; it must be the declaration of D or T.