Add a note saying what Haddock relies on about Instance.is_dfun
authorDavid Waern <david.waern@gmail.com>
Tue, 24 Nov 2009 21:03:08 +0000 (21:03 +0000)
committerDavid Waern <david.waern@gmail.com>
Tue, 24 Nov 2009 21:03:08 +0000 (21:03 +0000)
compiler/types/InstEnv.lhs

index b3d8dcc..49b49b8 100644 (file)
@@ -59,7 +59,7 @@ data Instance
                -- INVARIANT: is_dfun Id has type 
                --      forall is_tvs. (...) => is_cls is_tys
 
-            , is_dfun :: DFunId
+            , is_dfun :: DFunId -- See Note [Haddock assumptions]
             , is_flag :: OverlapFlag   -- See detailed comments with
                                        -- the decl of BasicTypes.OverlapFlag
     }
@@ -99,7 +99,20 @@ However, note that:
    (This is so that we can use the matching substitution to
     instantiate the dfun's context.)
 
+Note [Haddock assumptions]
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+For normal user-written instances, Haddock relies on
 
+ * the SrcSpan of
+ * the Name of
+ * the is_dfun of
+ * an Instance
+
+being equal to
+
+  * the SrcSpan of
+  * the instance head type of
+  * the InstDecl used to construct the Instance.
 
 \begin{code}
 instanceDFunId :: Instance -> DFunId