diff options
Diffstat (limited to 'src/Haddock/Backends')
| -rw-r--r-- | src/Haddock/Backends/Xhtml/Decl.hs | 13 | 
1 files changed, 10 insertions, 3 deletions
| diff --git a/src/Haddock/Backends/Xhtml/Decl.hs b/src/Haddock/Backends/Xhtml/Decl.hs index 5cc86d48..42f06280 100644 --- a/src/Haddock/Backends/Xhtml/Decl.hs +++ b/src/Haddock/Backends/Xhtml/Decl.hs @@ -1,3 +1,4 @@ +{-# LANGUAGE TransformListComp #-}  -----------------------------------------------------------------------------  -- |  -- Module      :  Haddock.Backends.Html.Decl @@ -34,6 +35,7 @@ import           Data.Monoid           ( mempty )  import           Text.XHtml hiding     ( name, title, p, quote )  import GHC +import GHC.Exts  import Name @@ -158,15 +160,20 @@ ppTypeOrFunSig summary links loc docnames typ (doc, argDocs) (pref1, pref2, sep)        = [(leader <+> ppType unicode qual t, argDoc n, [])]  ppFixities :: [(DocName, Fixity)] -> Qualification -> Html -ppFixities fs qual = vcat $ map ppFix fs +ppFixities fs qual = vcat $ map ppFix uniq_fs    where -    ppFix (n, Fixity p d) = toHtml (ppDir d) <+> toHtml (show p) -                            <+> ppDocName qual Infix False n +    ppFix (ns, p, d) = toHtml d <+> toHtml (show p) <+> ppNames ns      ppDir InfixR = "infixr"      ppDir InfixL = "infixl"      ppDir InfixN = "infix" +    ppNames = concatHtml . intersperse (stringToHtml ", ") . map (ppDocName qual Infix False) + +    uniq_fs = [ (n, the p, the d') | (n, Fixity p d) <- fs +                                   , let d' = ppDir d +                                   , then group by Down (p,d') using groupWith ] +  ppTyVars :: LHsTyVarBndrs DocName -> [Html]  ppTyVars tvs = map ppTyName (tyvarNames tvs) | 
