X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Ftypes%2FInstEnv.lhs;h=7327992540cfc29a65e8b861074568d547cd6fda;hb=5289f5d85610f71625a439747a09384876655eb5;hp=b3d8dccc536d300798ec5f6276d460db40d405a6;hpb=72462499b891d5779c19f3bda03f96e24f9554ae;p=ghc-hetmet.git diff --git a/compiler/types/InstEnv.lhs b/compiler/types/InstEnv.lhs index b3d8dcc..7327992 100644 --- a/compiler/types/InstEnv.lhs +++ b/compiler/types/InstEnv.lhs @@ -45,7 +45,6 @@ import Data.Maybe ( isJust, isNothing ) %************************************************************************ \begin{code} -type DFunId = Id data Instance = Instance { is_cls :: Name -- Class name @@ -59,7 +58,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 +98,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 @@ -528,7 +540,7 @@ insert_overlapping new_item (item:items) \begin{code} instanceBindFun :: TyVar -> BindFlag instanceBindFun tv | isTcTyVar tv && isExistentialTyVar tv = Skolem - | otherwise = BindMe + | otherwise = BindMe -- Note [Binding when looking up instances] \end{code}