aboutsummaryrefslogtreecommitdiff
path: root/src/Haddock/Interface/AttachInstances.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Haddock/Interface/AttachInstances.hs')
-rw-r--r--src/Haddock/Interface/AttachInstances.hs15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/Haddock/Interface/AttachInstances.hs b/src/Haddock/Interface/AttachInstances.hs
index 88512c1a..60ae4661 100644
--- a/src/Haddock/Interface/AttachInstances.hs
+++ b/src/Haddock/Interface/AttachInstances.hs
@@ -73,6 +73,10 @@ attachToExportItem expInfo iface ifaceMap instIfaceMap export =
let fam_insts = [ (synifyFamInst i, n)
| i <- sortBy (comparing instFam) fam_instances
, let n = instLookup instDocMap (getName i) iface ifaceMap instIfaceMap
+ , not $ isNameHidden expInfo (fi_fam i)
+ , not $ any (isTypeHidden expInfo) (fi_tys i)
+ -- Should we check for hidden RHS as well?
+ -- Ideally, in that case the RHS should simply not show up
]
cls_insts = [ (synifyInstHead i, instLookup instDocMap n iface ifaceMap instIfaceMap)
| let is = [ (instanceHead' i, getName i) | i <- cls_instances ]
@@ -199,11 +203,11 @@ isInstanceHidden expInfo cls tys =
instClassHidden = isNameHidden expInfo $ getName cls
instTypeHidden :: Bool
- instTypeHidden = any typeHidden tys
-
- nameHidden :: Name -> Bool
- nameHidden = isNameHidden expInfo
+ instTypeHidden = any (isTypeHidden expInfo) tys
+isTypeHidden :: ExportInfo -> Type -> Bool
+isTypeHidden expInfo = typeHidden
+ where
typeHidden :: Type -> Bool
typeHidden t =
case t of
@@ -213,3 +217,6 @@ isInstanceHidden expInfo cls tys =
FunTy t1 t2 -> typeHidden t1 || typeHidden t2
ForAllTy _ ty -> typeHidden ty
LitTy _ -> False
+
+ nameHidden :: Name -> Bool
+ nameHidden = isNameHidden expInfo